用户注册表的联合
多个注册表中散布有 user 和 group 信息时,将使用用户注册表联合。例如,该信息可能在两个不同 LDAP 中、同一 LDAP 的两个子树中或某个文件中,或者这些用户属于某个系统。该信息甚至可能在定制用户数据存储库中。通过联合注册表,可以统一方式搜索和使用这些分布式用户信息,并不断存储这些信息。通过使用联合注册表,可在 Liberty 中使用统一视图来对用户进行认证和授权。
注: 快速启动安全性 (quickStartSecurity) 无法与其他用户注册表(例如,LDAP 注册表、基本注册表、SAF 注册表和定制注册表)联合。
如何联合用户注册表?
LDAP 注册表在缺省情况下是联合的。如果在 server.xml 中配置了多个 LDAP 注册表,那么这些注册表将自动联合,不需要附加配置。它们可以是两个独立 LDAP 或同一 LDAP 中的两个子树。如果一个或多个 LDAP 注册表配置有一个或多个基本注册表、SAF 注册表或定制注册表,那么这些注册表也会联合而不需要任何附加配置。以下示例显示与 LDAP 联合的基本注册表:
<server description="Federation">
<featureManager>
<feature>appSecurity-2.0</feature>
<feature>servlet-3.0</feature>
<feature>ldapRegistry-3.0</feature>
</featureManager>
<basicRegistry id="basic" realm="SampleBasicRealm">
<user name="admin" password="password" />
<user name="user1" password="password" />
<user name="user2" password="password" />
<group name="memberlessGroup" />
<group name="adminGroup">
<member name="admin"/>
</group>
<group name="users">
<member name="user1" />
<member name="user2" />
</group>
</basicRegistry>
<ldapRegistry id="LDAP1" realm="SampleLdapIDSRealm" host="LDAPHOST1.ibm.com" port="389" ignoreCase="true"
baseDN="o=ibm,c=us"
ldapType="IBM Tivoli Directory Server"
searchTimeout="8m"
recursiveSearch="true">
</ldapRegistry>
</server>
如果要联合两个基本注册表或将基本注册表与 SAF 注册表或定制注册表联合,那么可按以下示例中所示添加 federatedRegistry-1.0 和
appSecurity-2.0 功能部件来完成任务。
<feature>appSecurity-2.0</feature>
<feature>federatedRegistry-1.0</feature>
以下示例显示如何联合两个基本注册表:<server description="Federation">
<featureManager>
<feature>appSecurity-2.0</feature>
<feature>federatedRegistry-1.0</feature>
</featureManager>
<basicRegistry id="basic1" realm="SampleBasicRealm1">
<user name="admin" password="password" />
<user name="user1" password="password" />
<user name="user2" password="password" />
<group name="memberlessGroup" />
<group name="adminGroup">
<member name="admin"/>
</group>
<group name="users">
<member name="user1" />
<member name="user2" />
</group>
</basicRegistry>
<basicRegistry id="basic2" realm="SampleBasicRealm2">
<user name="user3" password="password123" />
<user name="user4" password="password123" />
<group name="memberlessGroup2" />
<group name="users2">
<member name="user3"/>
<member name="user4" />
</group>
</basicRegistry>
</server>