- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十二章节 用Weblogic Server JNDI和JAAS开发安全应用
JAAS 李绪成 两种类型的基于容器的安全性 说明性的安全性和可编程的安全性 验证和授权 对应用程序的保护可以分为两个层面,一是验证,二是授权。 验证指的是判断用户是否为系统中的合法用户,这可以通过验证口令、数字证书来实现。 授权指的是判断用户是否拥有访问某一资源的权限。 用户和用户组 用户对应于应用程序中的一个账号,通常具有用户名和口令。 用户组是多个用户组成的集合,通常把具有类似访问系统资源权限的一组用户定义到一个用户组中。 角色 角色是一个抽象化的逻辑概念,由应用程序开发人员定义。 用户与角色 用户和用户组是在系统中实实在在存在的,通常信息存放于数据库或文件中。 角色是逻辑概念,由应用程序开发人员定义。 通常需要把角色映射到Weblogic Server中的实际用户或用户组对应起来。 主体(Principal) 主体是被企业安全服务验证了的实体。 简单地说,系统中的用户、用户组都是主体。 主体用主体名作为它的标识,通过与主体相关的验证数据进行验证。 通常情况下主体名就是用户的登陆名,验证数据就是登陆的密码。 凭证 指的是系统中主体的验证信息,例如用户的口令、数字证书都是凭证。 说明性的安全 说明性的安全是通过安全结构描述的方式来表达应用程序的安全需求,安全结构一般包括安全角色、访问控制和验证要求等。 说明的安全性不需要开发人员编写任何安全相关的代码,一切都是通过配置描述符完成的。 编程性安全 编程的安全性在说明性的安全性的基础上,使安全敏感的应用可以通过调用应用服务器提供的API对安全做出决策。 这在说明性安全不足以满足企业的安全模型的情况下是非常有用的。 访问控制列表(ACL) 访问控制列表记录了系统中每个资源可以被哪些用户访问。 安全区 安全区是指用户、用户组和ACL的逻辑组合。 Weblogic Server中的安全区有两种类型:RDBMS安全区和文件安全区。 RDBMS安全区把Weblogic Server的安全信息映射到关系数据库。 默认情况下Weblogic Server采用文件安全区。文件安全区把Weblogic Server的安全信息存放在一个文件中,文件名为fileRealm.properties。 在Weblogic中如何添加用户和用户组 演示 创建安全的Web应用程序 身份验证 ——基本验证方式:简单、使用方便 ——表单验证方式:可以提供自定义的登陆页面及出错处理页面。 声明性安全 声明性安全使用配置描述器表达一个应用程序的安全结构,其中包括角色、访问控制和认证要求。 配置描述器将应用程序的逻辑安全要求映射为运行时表示。 创建基于表单的认证 创建登陆表单:具有Web表单的servlet或jsp页面; 创建前言页面:作为Web应用初始启动网页的Servlet或jsp页面; 创建退出页面:注销用户的servlet或jsp页面; 创建登陆失败页面:告诉用户输入了不正确的信息; 编辑Web应用程序配置信息:修改应用程序配置文件web.xml和weblogic.xml 创建基于浏览器的验证 参考实例 在Web应用中采用编程性安全 编程性安全允许动态的执行安全策略 如果角色和安全信息是高度依赖于数据的,则可以在运行时确定用户的角色,此时编程性安全是非常有用的。 编程性安全API 如果发出请求的用户已经认证,则GetRemoteUser将返回该用户的登陆名字;如果用户没有认证,则返回null。 isUserInRole判断特定的用户是否处于给定的安全角色中。 getUserPrincipal返回一个java.security.Principal对象,该对象包含当前验证的用户的名字。 编程性安全的例子 参考书上P362 使用JAAS进行安全验证 对于Web应用程序的验证可以通过说明的方式实现,甚至不用编写一行与安全性相关的代码。 对于其它类型的Java客户端程序,可以通过JAAS完成,在客户端程序中加入调用JAAS的代码。 JAAS Java Authentication Authorization Service,Java验证和授权API,是用来提供访问控制的一组API,提供了一种灵活和可伸缩的机制保护客户端或服务器端的Java程序。 JAAS强调的是通过验证谁在运行代码及当前用户的权限,保护系统免受用户的攻击。 JAAS认证的过程及实例 参考书上364页和365页 * * *
文档评论(0)