ユーザー・レジストリーの統合
ユーザー・レジストリーの統合は、user および group の情報が複数のレジストリーに分散している場合に使用されます。例えば、このような情報は、2 つの異なる LDAP にあったり、同じ LDAP の 2 つのサブツリーにあったり、ファイル内にあったり、ユーザーが 1 つのシステムに属していたりする場合があります。情報は、カスタム・ユーザー・データ・リポジトリー内にある場合もあります。統合レジストリーでは、連続した情報ストアによって統合した形で、分散したユーザー情報を検索および使用できます。統合レジストリーにより、Liberty でのユーザーの認証および許可に統合ビューを使用できます。
注: クイック・スタート・セキュリティー (quickStartSecurity) は、他のユーザー・レジストリー
(LDAP、基本、SAF、カスタムの各レジストリー) と統合できません。
ユーザー・レジストリー統合の仕組み
デフォルトでは、LDAP レジストリーは統合されます。複数の LDAP レジストリーが server.xml で構成されている場合、レジストリーは自動的に統合され、追加の構成は不要です。2 つの別個の LDAP であっても、同じ LDAP 内の 2 つのサブツリーであっても構いません。基本レジストリー、SAF レジストリー、またはカスタム・レジストリーの 1 つ以上とともに 1 つ以上の LDAP レジストリーが構成されている場合、それらのレジストリーも追加構成なしで統合されます。以下の例では、基本レジストリーと 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>
2 つの基本レジストリーを統合する場合、または 1 つの基本レジストリーを SAF またはカスタム・レジストリーと統合する場合、以下の例に示すように、appSecurity-2.0 フィーチャーに加えて federatedRegistry-1.0 を組み込みます。
<feature>appSecurity-2.0</feature>
<feature>federatedRegistry-1.0</feature>
以下の例では、2 つの基本レジストリーの統合を示します。<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>
カスタマイズされた統合リポジトリーに基本レジストリーを追加できます。基本レジストリーの追加は、federatedRepository エレメント内で participatingBaseEntry name フィールドを定義することによって行われます。基本レジストリーの participating base entry は、基本レジストリーのレルム名に設定された組織属性です。以下の例は、2 つの基本レジストリーのカスタマイズされた統合を示します。
<federatedRepository>
<primaryRealm name="PrimaryRealm">
<participatingBaseEntry name="o=SampleBasicRealm1"/>
<participatingBaseEntry name="o=SampleBasicRealm2"/>
</primaryRealm>
</federatedRepository>
カスタム・レジストリーも、カスタマイズされた統合リポジトリーに追加できます。カスタム・レジストリーの追加は、federatedRepository エレメント内で participatingBaseEntry 名前フィールドを定義することによって行われます。カスタム・レジストリーの participating base entry は、カスタム・レジストリーのレルム名に設定される組織属性です。以下の例は、カスタマイズされた項目の統合を示しています。
<federatedRepository>
<primaryRealm name="PrimaryRealm">
<participatingBaseEntry name="o=customRegistryRealm1"/>
</primaryRealm>
</federatedRepository>
SAF 許可を有効にして SAF レジストリーを 1 つ以上の非 SAF レジストリーと統合するには、 非 SAF ユーザーを SAF ユーザー ID にマップするための分散 ID フィルターを構成する必要があります。以下の例は、 分散 ID マッピングを有効にして LDAP レジストリーと統合される SAF レジストリーを示しています。federatedReposity エレメントに primaryRealm 名が指定されているため、 LDAP ユーザーを SAF ユーザー ID にマップするために定義されるすべての RACMAP プロファイルは REGISTRY(NAME('FEDREALM') を指定する必要があります。
<server description="Federated SAF and LDAP">
<featureManager>
<feature>appSecurity-2.0</feature>
<feature>federatedRegistry-1.0</feature>
<feature>zosSecurity-1.0</feature>
<feature>ldapRegistry-3.0</feature>
</featureManager> <federatedRepository>
<primaryRealm name="FEDREALM">
</primaryRealm>
</federatedRepository>
<!-- SAF user registry -->
<safRegistry id="saf" realm="SAFREALM" />
<safAuthorization id="saf" racRouteLog="ASIS" />
<safCredentials unauthenticatedUser="WSGUEST"
profilePrefix="BBGZDFLT" mapDistributedIdentities="true" />
<safRoleMapper profilePattern="%profilePrefix%.%resource%.%role%"
toUpperCase="false" />
<ldapRegistry id="LDAP1" realm="LDAPREALM"
ldapType="IBM Tivoli Directory Server"
host="LDAP1HOST.ibm.com" port="389"
baseDN="o=ibm,c=us"
searchTimeout="8m"
ignoreCase="true"
bindDN="uid=ldapadm,cn=users,o=ibm,c=us"
bindPassword="ldapadmpw"
sslEnabled="false">
<idsFilters
userFilter="(&(uid=%v)(objectclass=inetOrgPerson))" groupFilter="(&(cn=%v)(objectclass=groupOfUniqueNames))" userIdMap="*:uid" groupIdMap="*:cn" groupMemberIdMap="groupOfUniqueNames:uniquemember">
</idsFilters>
</ldapRegistry>
</server>