验证和授权是应用程序服务器安全性的核心概念。以下主题讨论了与验证和授权相关的内容:
验证是一个实体(用户、应用程序或组件)用来确定另一个实体是否是其声明的实体的方法。实体使用安全凭证对其自身进行验证。凭证可以是一个用户名和密码、一个数字证书或其他凭证。
通常,验证表示用户使用用户名和密码登录到某个应用程序;也可以指 EJB 从服务器请求资源时,提供安全凭证。通常,服务器或应用程序要求客户机进行验证;另外,客户机也可以要求服务器对其自身进行验证。如果验证是双向的,则称为双向验证。
当实体尝试对受保护的资源进行访问时,Application Server 将使用为该资源配置的验证机制来决定是否授予访问权。例如,用户可以在 Web 浏览器中输入用户名和密码,如果应用程序顺利完成了对那些凭证的检验,则表示该用户已通过验证。在此会话余下的时间内,该用户将始终与这个经过验证的安全身份相关联。
Application Server 支持四种类型的验证,如表 0-33 所示。应用程序在其部署描述符中指定所使用的验证类型。有关使用 deploytool
来配置应用程序的验证方法的更多信息,请参见位于以下 URL 的 The J2EE 1.4 Tutorial:
单点登录允许一个虚拟服务器实例中的多个应用程序共享用户验证状态。使用单点登录,登录到一个应用程序的用户也会隐式登录到需要相同验证信息的其他应用程序。
单点登录以组为基础。其部署描述符定义了相同的组并使用相同的验证方法(基本、表单、摘要或证书)的所有 Web 应用程序均共享单点登录。
对于为 Application Server 定义的虚拟服务器,默认情况下已启用单点登录。有关禁用单点登录的信息,请参见配置单点登录 (SSO)。
用户通过验证后,授权级别将决定该用户可以执行哪些操作。用户的授权以其角色为基础。例如,人力资源应用程序可以授权管理者查看所有雇员的个人信息,但只允许雇员查看自己的个人信息。有关角色的更多信息,请参见了解用户、组、角色和区域。
JACC(Java 容器授权合同)属于 J2EE 1.4 规范,它为可插拔授权提供者定义了接口。这使得管理员可以设置第三方插件模块来执行授权。
默认情况下,Application Server 提供一个符合 JACC 规范的基于文件的简单授权引擎。还可以指定其他第三方 JACC 提供者。
JACC 提供者使用 Java 验证和授权服务 (JAAS) API。JAAS 允许服务验证并强制对用户进行访问控制。JAAS 实现了 Java 技术版本的标准可插拔验证模块 (PAM) 框架。
Application Server 可以通过审计模块提供对所有验证和授权决策的审计跟踪。Application Server 提供了一个默认的审计模块,还提供了自定义审计模块的功能。有关开发自定义审计模块的信息,请参见 Application Server Developer's Guide。有关 Developer’s Guide 的链接,请参见详细信息。
消息安全性使服务器可以在消息层执行 Web 服务调用和响应的端对端验证。Application Server 使用 SOAP 层上的消息安全性提供者来实现消息安全性。消息安全性提供者提供了请求和响应消息所需的验证类型等信息。支持的验证类型包括:
该版本附带了两个消息安全性提供者。可以将消息安全性提供者配置为用于 SOAP 层的验证。可以配置的提供者包括 ClientProvider
和 ServerProvider
。
以(可插入)验证模块的形式将消息层安全性支持集成到 Application Server 及其客户机容器中。默认情况下,Application Server 中的消息层安全性处于禁用状态。
可以为整个 Application Server 或者为特定的应用程序或方法配置消息层安全性。消息安全性概述讨论了在 Application Server 级别配置消息安全性。Developer’s Guide 的 Securing Applications 一章讨论了在应用程序级别配置消息安全性。
另请参见: