领域也称为安全策略域或安全域,是服务器定义和强制执行通用安全策略的范围。在实际应用中,区域是服务器存储用户和组信息的系统信息库。
Application Server 预先配置了三个领域:file(初始默认领域)、certificate 和 admin-realm。还可以设置 ldap、JDBC、solaris 或自定义领域。应用程序可以在其部署描述符中指定要使用的区域。如果应用程序不指定领域,Application Server 将使用其默认领域。
在 file 领域中,服务器将用户凭证存储在本地名为 keyfile 的文件中。您可以使用管理控制台来管理 file 领域中的用户。
在 certificate 领域中,服务器将用户凭证存储在证书数据库中。使用 certificate 领域时,服务器结合使用证书和 HTTPS 协议来验证 Web 客户机。有关证书的更多信息,请参见证书和 SSL 简介。
admin-realm 也是一个 FileRealm,它将管理员用户凭证存储在本地名为 admin-keyfile 的文件中。您可以使用管理控制台管理此领域中的用户,方法与管理 file 领域中的用户相同。
在 ldap 领域中,服务器将从轻量目录访问协议 (Lightweight Directory Access Protocol, LDAP) 服务器(例如 Sun Java System Directory Server)中获取用户凭证。LDAP 是一种协议,它使任何人都可以在网络(无论是公共 Internet 还是企业内联网)中查找组织、个人和其他资源(例如文件和设备)。有关管理 ldap 领域中的用户和组的信息,请参阅您的 LDAP 服务器文档。
在 JDBC 领域中,服务器将从数据库中获取用户凭证。Application Server 将使用数据库信息和配置文件中已启用的 JDBC 领域选项。
在 solaris 领域中,服务器将从 Solaris 操作系统中获取用户凭证。Solaris 9 OS 和更高版本支持此区域。有关管理 solaris 领域中的用户和组的信息,请参阅您的 Solaris 文档。
自定义区域是用户凭证的任何其他系统信息库,例如关系型数据库或第三方组件。有关更多信息,请参见管理控制台联机帮助。
Application Server 允许您在 JDBC 领域中而不是在连接池中指定用户的凭证。使用 JDBC 领域代替连接池可防止其他应用程序浏览用户凭证的数据库表。用户的凭证即该用户的名称和密码。
默认情况下,JDBC 领域中不支持以明文形式存储密码。正常情况下,不应以明文形式存储密码。
创建要在其中针对领域存储用户凭证的数据库表。
如何创建数据库表取决于您所使用的数据库。
将用户凭证添加到在步骤 1 中创建的数据库表中。
如何向数据库表添加用户凭证取决于您所使用的数据库。
创建 JDBC 领域。
可使用管理控制台 GUI 来实现此目的。有关创建 JDBC 领域的说明,请参见管理控制台 GUI 的联机帮助。
将您在步骤 3 中创建的领域指定为应用程序的领域。
要指定领域,请修改应用程序的相应部署描述符:
对于企业归档 (Enterprise Archive, EAR) 文件中的企业应用程序,请修改 sun-application.xml 文件。
对于 Web 应用程序归档 (Web Application Archive, WAR) 文件中的 Web 应用程序,请修改 web.xml 文件。
对于 EJB JAR 文件中的企业 Bean,请修改 sun-ejb-jar.xml 文件。
有关如何指定领域的更多信息,请参见《Sun Java System Application Server 9.1 Developer’s Guide》中的“How to Set a Realm for an Application or Module”。
为领域中的用户指定安全性角色。
要为用户指定安全性角色,请将 security-role-mapping 元素添加到您在步骤 4 中修改的部署描述符。
以下示例说明了将安全性角色 Employee 指定给用户 Calvin 的 security-role-mapping 元素。
<security-role-mapping> <role-name>Employee</role-name> <principal-name>Calvin</principal-name> </security-role-mapping>