Fédération de registre d'utilisateurs
La fédération de registre d'utilisateurs est utilisée lorsque les informations user et group sont réparties sur plusieurs registres. Par exemple, les informations peuvent figurer dans deux LDAP différents, deux sous-arborescences du même LDAP, dans un fichier, ou bien les utilisateurs sont du système. Les informations peuvent même se trouver dans un référentiel de données utilisateur personnalisé. Grâce aux registres fédérés, vous pouvez rechercher et utiliser ces informations utilisateur réparties de manière unifiée avec le stockage continu d'informations. Vous pouvez utiliser la vue unifiée pour l'authentification et l'autorisation d'utilisateurs dans Liberty.
Comment les registres d'utilisateurs sont-ils fédérés ?
Les registres LDAP sont fédérés par défaut. Si plusieurs registres LDAP sont configurés dans le fichier server.xml, ils sont automatiquement fédérés et aucune configuration supplémentaire n'est requise. Il peut s'agir de deux LDAP distincts ou de deux sous-arborescences dans le même 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>
<feature>appSecurity-2.0</feature>
<feature>federatedRegistry-1.0</feature>
L'exemple
ci-après illustre la fédération de deux registres de base :<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>
<primaryRealm name="PrimaryRealm">
<participatingBaseEntry name="o=SampleBasicRealm1"/>
<participatingBaseEntry name="o=SampleBasicRealm2"/>
</primaryRealm>
</federatedRepository>
<federatedRepository>
<primaryRealm name="PrimaryRealm">
<participatingBaseEntry name="o=customRegistryRealm1"/>
</primaryRealm>
</federatedRepository>
Pour fédérer un registre SAF avec un ou plusieurs registres non SAF avec l'autorisation SAF activée, vous devez configurer des filtres d'identité distribuée pour mapper les utilisateurs non SAF à un ID d'utilisateur SAF. L'exemple suivant illustre un registre SAF qui est fédéré avec un registre LDAP et avec le mappage d'identité distribuée activé. Le nom primaryRealm est spécifié sur l'élément federatedReposity de manière à ce que tout profil RACMAP défini pour mapper les utilisateurs LDAP à un ID d'utilisateur SAF doive spécifier REGISTRY(NAME('FEDREALM'). Pour plus d'informations, voir Configuration de filtres d'identité distribuée dans la sécurité z/OS.
<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>