2020年JEE的安全认证机制.doc

上传人:scccc 文档编号:11234945 上传时间:2021-07-16 格式:DOC 页数:14 大小:106KB
返回 下载 相关 举报
2020年JEE的安全认证机制.doc_第1页
第1页 / 共14页
2020年JEE的安全认证机制.doc_第2页
第2页 / 共14页
2020年JEE的安全认证机制.doc_第3页
第3页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《2020年JEE的安全认证机制.doc》由会员分享,可在线阅读,更多相关《2020年JEE的安全认证机制.doc(14页珍藏版)》请在三一文库上搜索。

1、安全生产) JEE 的安全认证机制实现 Web 应用程序的安全机制是 Web 应用程序的设计人员和编程人员必须面对的任务。在J2EE中, Web 容器支持应用程序内置的安全机制。Web 应用程序的安全机制有二种组件:认证和授权。基于 J2EE 的 Web 容器提供三种类型 的认证机制:基本认证、基于表单的认证、相互认证。由于能够对认证用户界面进行定制, 大多数的 Web 应用程序都使用基于表单的认证。 Web 容器使用在 Web 应用程序的部署描 述符中定义的安全角色对应用程序的 Web 资源的访问进行授权。 在使用基于表单的认证机制中,应用程序的设计人员和开发人员会遇到 3 类问题: 基于表

2、单的认证如何和数据库和 LDAP 等其他领域的安全机制协同工作。 (这是非常必要的, 因为许多组织已经在数据库和 LDAP 表单中实现了认证机制。 )如何在Web 应用程序的部署描述符( web.xml )中增加或删除军政府的授权角色。Web 容器在 Web 资源层次上进行授权; 应用程序则需要在单壹的 Web 资源中执行功能层 次上的授权。尽管有许多和基于表单的认证有关的文档和例子,但都没有能够阐明这壹问题。因此,大多 数的应用程序都以自己的方式襀安全机制。本篇文章说明了基于表单的认证如何和其他方面的安全机制,尤其是数据库中的安全机制协 作的问题。它仍解释了 Web 窗口如何使用安全角色执行

3、授权以及应用程序如何扩展这些安 全角色,保护 Web 资源中的功能。基于表单的认证 基于表单的认证能够使开发人员定制认证的用户界面。 web.xml 的 login-config 小节定义 了认证机制的类型、登录的 URI 和错误页面。 FORM /auth-method form-login-config /fail_login.html 登录表单必须包含输入用户姓名和口令的字段,它们必须被分别命名为 j_username 和 j_password ,表单将这二个值发送给 j_security_check 逻辑名字。下面是壹个该表单如何在 HTML 网页中实现的例子:除非所有的连接都是在 S

4、SL 上实现的,该表单能够透露用户名和口令。当受保护的 Web 资 源被访问时, Web 容器就会激活为该资源配置的认证机制。为了实现 Web 应用程序的安全, Web 容器执行下面的步骤:1 、在受保护的 Web 资源被访问时,判断用户是否被认证。2 、如果用户没有得到认证,则通过重定向到部署描述符中定义的注册页面,要求用户提供 安全信任状。3 、根据为该容器配置的安全领域,确认用户的信任状有效。4 、判断得到认证的用户是否被授权访问部署描述符( web.xml )中定义的 Web 资源。 象基本的安全认证机制那样,在 Web 应用程序的部署描述符中,基于表单的认证不指定安 全区域。也就是说

5、,它不明确地定义用来认证用户的安全区域类型,这就会在它使用什么样 的安全区域认证用户方面引起混淆。要对用户进行验证, Web 窗口需要完成下面的步骤:1 、判断该容器配置的安全区域。2 、使用该安全区域进行认证。由于数据库和 LDAP 在维护信息方面提供了更大的灵活性,因此大多数组织都会希望继续使 用它们维护安全认证和授权信息。许多 Web 窗口都支持不同类型的安全区域: 数据库、LDAP 和定制区域。例如,在 TomcatWeb 容器中, server.xml 将数据库配置为其安全区域。Tomcat 的 server.xml 的标志定义了窗口用来识别壹个用户的安全区域的类型。注意,容器对 W

6、eb 应用程序使用该区域,应用程序的认证机制是基于表单的。授权 壹旦用户被识别后,容器就会得到认证用户的安全角色,见用户是否属于在部署描述符中的标志中定义的安全角色之壹。 如果用户不属于任何壹个安全角色, 则容 器会返回壹个错误。部署描述符( web.xml )的标志定义了被保护的 Web 资源和能够 访问这些资源的安全角色清单。AdminPages accessiblebyauthorisedusers/admin/* GET Thesearetheroleswhohaveaccess manager Web 窗口在网页层次上执行认证。 然而,商业性应用程序可能仍希望对壹个网页内的功能进 行

7、认证,这会要求在应用程序中定义壹些新的附加的和应用程序有关的安全角色。为了控制 对功能的访问,应用程序需要理解角色的权限概念。 Web 容器标准没有解决权限的问题。由于授权角色是动态的,开发人员常常会感到迷惑,即这些安全角色是否需要添加到部署描 述符中。 为了使应用程序充分利用安全支持, Web 容器只需要在部署描述符中定义的壹个角 色。因此,应用程序能够定义壹个高层次的角色,然后将所有的用户都指派给该角色。这将 使该角色中的所有用户都拥有能够访问 Web 资源的权限。另外,应用程序仍能够定义额外的角色,执行对壹种Web 资源中较低层次的功能的授权。由于应用程序已经配置有壹个包含应用程序中所有

8、用户的高层次安全角色,这些低层次的安 全角色也就不需要在部署描述符中进行定义。这使得Web 应用程序能够利用容器的授权支持,实现和指定应用程序有关的授权。我们能够在部署描述符中为所有用户定义壹个高层次的管理员角色, 保护管理类 Web 资源, 这使得管理员角色中的所有用户都能够访问管理网页。为了控制管理网页中的其他功能,我 们能够在应用程序中创建 sysadmin 或 appadmin 等新的角色。应用程序能够对这些安全角色进行扩展,使它们拥有壹定的权限。然后,应用程序能够使用 这些权限来控制对其功能的访问。尽管和特定应用程序相关的安全角色不是定义在部署描述符中的,这些角色仍然能够在isUse

9、rInRole 方法中使用,判断用户是否在这些安全角色中。优点Web 应用程序无需实现认证机制,简化 Web 应用程序的配置。Web 应用程序能够使用 getRemoteUser 、 IsUserInRole 和 getUserPrincipal 方法实现有 规划的安全。Web 应用程序能够将认证信息传播给 EJB 容器。在 Tomcat 中配置数据库安全区域1 、创建用户表。该数据库表需要有 username 和 password 二个字段。 createtableusers(usernamevarchar(20)notnull,password(20)notnull)2 、创建角色表 该表

10、维护着应用程序中角色的清单,它仅仅有 rolename 壹个字段。createtableroles(rolenamevarchar(20)notnull)3 、创建用户 - 角色关联表该表维护着壹个用户和各个角色之间的关联,壹个用户能够属于壹个或多个角色。createtableuser_roles(usernamevarchar(20)notnull,rolenamevarchar(20)notnull)4 、在表中插入数据 insertintousersvalues(user1,password) insertintorolevalues(manager) insertintouser_ro

11、lesvalues(user1,manager)5 、创建用户表。该数据库表需要有 username 和 password 二个字段。 createtableusers(usernamevarchar(20)notnull,password(20)notnull)6 、创建角色表该表维护着应用程序中角色的清单,它仅仅有 rolename 壹个字段。 createtableroles(rolenamevarchar(20)notnull)7 、创建用户 - 角色关联表 该表维护着壹个用户和各个角色之间的关联,壹个用户能够属于壹个或多个角色。createtableuser_roles(userna

12、mevarchar(20)notnull,rolenamevarchar(20)notnull)8 、在表中插入数据insertintousersvalues(user1,password)insertintorolevalues(manager) insertintouser_rolesvalues(user1,manager)9 、通过将下面的信息拷贝到文件夹的 server.xml 文件中,配置 Tomcat 。(本例使用了薄客户端驱动程序, Tomcat 使用内存区域作为缺省的安全区域。 )用环境变量替换下面的值:IPAddress 数据库服务器的 IP 地址Port 端口号Servi

13、cename 服务名字DBUsername数据库登录Password 数据库登录的口令10 、将 Oracle 的薄 客户机驱动 程序 JAR 文件或数据库的 JDBC 驱动 程序拷贝到tomcat_home/server/lib目录中。11 、用下面的安全约束配置Web 应用程序的部署描述符 web-resource-collectionProtectedArea /* DELETE GET /http-method POST /http-method PUT /http-method /web-resource-collection manager /role-name NONE Exam

14、pleForm-BasedAuthenticationArea form-login-config/jsp/login.jsp/form-login-page /jsp/error.jsp /form-error-page /form-login-config需要注意的是,中的值应当是用户 - 角色关联表中中角 色之壹。在 Tomcat 中配置例子文件1 、使用上面介绍的命令配置 Tomcat 。2 、下载 security-form-based.war 文件,且将它拷贝到 Tomcat 的 webapps 目录。3 、启动 Tomcat 服务器4、打开壹个浏览器,输入下面的地址: http:

15、/ipaddress:portno/security-form-based/protected/index.jsp5 、输入用户名和口令。在 WebLogic 中配置数据库安全区域配置 Web 应用程序的部署描述符,这壹过程和在 Tomcat 中配置非常相似。 Tomcat 和 WebLogic 的配置描述符之间的壹个差别是, WebLogic 配置描述符要求下面的小节,而 Tomcat 不需要下面的小节: Managersecurityrole manager结论 通过本篇文章,读者应该会对基于表单的认证、以及它如何和数据库安全区域配合进行认证 有个比较深刻的认识。 Web 应用程序能够利用基于表单的认证机制, 保护它的资源, 同时允 许使用以前的安全认证机制。另外,本篇文章仍描述了 J2EEWeb 提供的授权支持层次,以及在不修改 Web 应用程序的 部署描述符的情况下如何定义新的安全角色。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1