验证是一种实体(用户、应用程序或组件)用来确定另一个实体是否是其声明的实体的方法。实体使用安全凭证对其自身进行验证。凭证可以是一个用户名和密码、一个数字证书或其他凭证。
通常,验证表示用户使用用户名和密码登录到某个应用程序;也可以指 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 定义的虚拟服务器,默认情况下已启用单点登录。