Application Server 对以下实体强制执行其验证和授权策略:
用户:Application Server 中定义的单个身份。通常,用户是指一个人、一个软件组件(例如企业 Bean),甚至是一种服务。经过验证的用户有时称为主体。用户有时称为主题。
组:Application Server 中定义的一组用户,按照常见特性进行分类。
角色:由应用程序定义的命名授权级别。可以将角色比喻为开锁的钥匙。许多人都可以有此钥匙的复制钥匙。锁不关心谁要造访,而只关心使用的钥匙是否正确。
区域:包含用户和组信息及其关联的安全凭证的系统信息库。领域也称为安全策略域。
尽管用户和组是为整个 Application Server 指定的,但是每个应用程序都需要定义自己的角色。当封装和部署应用程序时,应用程序会指定用户/组和角色之间的映射,如下图所示。
用户是已在 Application Server 中定义的单个(或应用程序)身份。用户可以与组关联。Application Server 验证服务可以管理多个领域中的用户。
J2EE 组(或简称组)是按常见特性(例如职务或用户配置文件)分类的用户类别。例如,假定电子商务应用程序的用户属于 customer 组,但是大客户可以属于 preferred 组。将用户分组可以简化对用户量很大时的访问控制。
角色定义用户可以访问哪些应用程序和每个应用程序的哪些部分,并定义用户可以执行的操作。也就是说,角色决定用户的授权级别。
例如,假定在人事应用程序中,所有雇员均可以访问电话号码和电子邮件地址,但只有管理人员才能访问薪水信息。该应用程序至少需要定义两个角色:employee 和 manager;仅允许处于 manager 角色的用户查看薪水信息。
角色与用户组的不同之处在于,角色在应用程序中定义功能,而用户组是以某一方式相关的一组用户。例如,假定在人事应用程序中有 full-time、part-time 和 on-leave 几个组,但所有这些组中的用户仍是 employee 角色。
角色是在应用程序部署描述符中定义的。相反,组是针对整个服务器和区域而定义的。应用程序开发者或部署者在每个应用程序的部署描述符中将角色映射到一个或多个组。
领域也称为安全策略域或安全域,是服务器定义和强制执行通用安全策略的范围。在实际应用中,区域是服务器存储用户和组信息的系统信息库。
Application Server 预先配置了三个领域:file(初始默认领域)、certificate 和 admin-realm。还可以设置 ldap、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 服务器文档。
在 solaris 领域中,服务器将从 Solaris 操作系统中获取用户凭证。Solaris 9 OS 和更高版本支持此区域。有关管理 solaris 领域中的用户和组的信息,请参阅您的 Solaris 文档。
自定义区域是用户凭证的任何其他系统信息库,例如关系型数据库或第三方组件。有关更多信息,请参见管理控制台联机帮助。