独立定制注册表
A独立自定义注册表是一个客户实现的注册表,它实现了UserRegistry产品提供的 Java™ 接口。 实际上,客户实现的注册表可支持关系数据库和平面文件等中的任何帐户存储库类型。 自定义用户注册表提供了相当大的灵活性,可将产品安全性适应于各种环境,在这些环境中,操作环境中已经存在某种形式的注册表或存储库(联合存储库、独立轻量级目录访问协议 (LDAP) 注册表或本地操作系统注册表除外)。
WebSphere® Application Server安全性提供了一种使用各种基于本地操作系统的注册表和各种基于独立轻量级目录访问协议 (LDAP) 的注册表的实现。 但是,可能存在这种情况:用户和组数据在其他存储库或定制用户注册表(例如数据库)中,而将此信息移至本地操作系统注册表或独立 LDAP 注册表实现是不可行的。 对于这些情况, WebSphere Application Server安全性提供了一个服务提供商接口(SPI),您可以实现该接口来与您当前的注册表进行交互。 自定义注册表功能支持任何未由WebSphere Application Server。
SPI 是 UserRegistry 接口。 UserRegistry 接口是一组进行授权时所需的方法。 这些方法使用密码或证书来认证各个用户,并收集关于该用户的信息(称为特权属性)。 此接口还包括获取用户和组信息的方法,以便可授予这些方法对资源的访问权。 当在此接口中实现这些方法时,您必须确定如何将 UserRegistry 接口操作的信息映射至注册表中的信息。
此接口有一组实现的方法,以便产品安全性能够与所有与安全性相关的任务的注册表进行交互。 提供的本地操作系统注册表和 LDAP 注册表也实现了此接口。 定制用户注册表有时称为可插入的用户注册表或简称为用户注册表。 期望定制用户注册表实现是线程安全的。
构建定制注册表的操作是通过软件实现的。 实现不依赖于其他WebSphere Application Server资源(例如数据源)以供其运行。
确保自定义注册表的实现不依赖于任何WebSphere Application Server组件,比如数据源,企业 Bean 等等。 没有这种依赖关系,因为安全性在大多数其他之前初始化和启用WebSphere Application Server启动过程中的组件。 如果前一次实现已使用这些组件,那么进行消除依赖项的更改。
- 用户安全性名称
该用户名与本地操作系统注册表中的用户名类似。
- WAS_UseDisplayName
- 这是用户注册表的一个定制属性。 此属性定义 getCallerPrincipal()、getUserPrincipal() 和 RemoteUser() 方法的返回值。 以下显示了 WAS_UseDisplayName 可接受的值:
false:这是缺省值。 将返回安全性名称。true:将返回显示名称。 此设置要求将定制属性 com.ibm.websphere.security.useLoggedSecurityName 设置为 true。
- 唯一用户标识
- 此标识表示 UserRegistry 接口所必需的唯一用户标识。 唯一 ID 类似于 Windows 系统中的系统 ID (SID)、 Linux®和 UNIX 系统,以及轻量级目录身份验证协议 (LDAP) 中的可分辨名称 (DN)。 此标识也称为 uniqueUserId。 此唯一标识用于对受保护资源进行权限判定。
- 用户的显示名
此名称是描述用户的可选字符串。 实现可以仅仅为了提供信息而使用显示名;这些名称既不必存在也不必是唯一的。 用户界面可以使用显示名显示有关用户的更多信息。
- 组安全性名称
- 此名称表示安全组组,它也被称为 groupSecurityName、groupName 和 group name。
- 唯一组标识
- 此唯一标识是组的标识。 此名称也被称为 uniqueGroupId 标识。
- 组的显示名
- 此显示名是描述组的可选字符串。
主题为UserRegistry界面描述接口中需要实现的每个方法。 提供了每个方法的说明和它们在样本中的使用情况以及 V4 界面中的任何更改。 相关参考部分提供了其他自定义用户注册表文档的链接,包括基于文件的注册表示例。 提供的样本非常简单,意在让 您熟悉该功能部件。 请不要在实际生产环境中使用此样本。