Sun Java System Application Server Enterprise Edition 8.2 管理指南

关于验证和授权

验证和授权是应用服务器安全性的核心概念。以下主题讨论了与验证和授权相关的内容:

验证实体

验证是一种实体(用户、应用程序或组件)用来确定另一个实体是否是其声明的实体的方法。实体使用安全凭证对其自身进行验证。凭证可以是一个用户名和密码、一个数字证书或其他凭证。

通常,验证表示用户使用用户名和密码登录到某个应用程序;也可以指 EJB 从服务器请求资源时,提供安全凭证。通常,服务器或应用程序要求客户机进行验证;另外,客户机也可以要求服务器对其自身进行验证。如果验证是双向的,则称为双向验证。

当实体尝试访问受保护的资源时,Application Server 将使用为该资源配置的验证机制来决定是否授予访问权限。例如,用户可以在 Web 浏览器中输入用户名和密码,如果应用程序顺利完成了对那些凭证的检验,则表示该用户已通过验证。在此会话余下的时间内,该用户将始终与这个经过验证的安全身份相关联。

Application Server 支持四种类型的验证,如验证实体所述。应用程序在其部署描述符中指定所使用的验证类型。有关使用 deploytool 来配置应用程序验证方法的更多信息,请参见位于以下 URL 的《The J2EE 1.4 Tutorial》:http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html

表 9–1 Application Server 验证方法

验证方法

通信协议

说明

用户凭证加密

基本 

HTTP(SSL 可选) 

使用服务器的内置弹出式登录对话框。 

无,除非使用 SSL。 

基于表单 

HTTP(SSL 可选) 

应用程序提供它自己的自定义登录页面和错误页面。 

无,除非使用 SSL。 

客户机证书 

HTTPS(基于 SSL 的 HTTP) 

服务器使用公钥证书来验证客户机。 

SSL 

检验单点登录

单点登录允许一个虚拟服务器实例中的多个应用程序共享用户验证状态。使用单点登录,登录到一个应用程序的用户也会隐式登录到需要相同验证信息的其他应用程序。

单点登录以组为基础。其部署描述符定义了相同的并使用相同验证方法(基本、表单、摘要或证书)的所有 Web 应用程序共享单点登录。

对于为 Application Server 定义的虚拟服务器,默认情况下已启用单点登录。

对用户进行授权

用户通过验证后,授权级别将决定该用户可以执行哪些操作。用户的授权基于其角色。例如,人力资源应用程序可以授权管理者查看所有雇员的个人信息,但只允许雇员查看自己的个人信息。有关角色的更多信息,请参见了解用户、组、角色和区域

指定 JACC 提供者

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 中的 "Configuring an Audit Module" 一节。

配置消息安全性

消息安全性使服务器可以在消息层执行 Web 服务调用和响应的端对端验证。Application Server 使用 SOAP 层上的消息安全性提供者来实现消息安全性。消息安全性提供者提供了请求和响应消息所需的验证类型等信息。支持的验证类型包括:

该版本附带了两个消息安全性提供者。可以为 SOAP 层的验证配置消息安全性提供者。可以配置的提供者包括 ClientProviderServerProvider

对消息层安全性的支持以(可插入)验证模块的形式集成到 Application Server 及其客户机容器中。默认情况下,Application Server 中的消息层安全性处于禁用状态。

可以为整个 Application Server 或者为特定应用程序或方法配置消息层安全性。第 10 章,配置消息安全性介绍了如何配置 Application Server 级别的消息安全性。Developer's Guide"Securing Applications" 一章介绍了如何配置应用程序级别的消息安全性。