Les propriétés personnalisées permettent de configurer les paramètres avancés donnant accès à des fonctionnalités supplémentaires dans le référentiel fédéré.
La propriété personnalisée preFetchData a été ajoutée afin de permettre la prise en charge de la pré-extraction et de la mise en cache de l'ensemble d'attributs d'un utilisateur ou d'un type d'entité Groupe pour le référentiel LDAP. Grâce à cette propriété, vous pouvez définir la liste d'attributs à pré-extraire et mettre en cache de façon permanente pour un utilisateur ou un type d'entité Groupe.
Informations | Valeur |
---|---|
Type de données | String |
Valeurs admises | Chaînes contenant des paires de noms de type d'entité et leur ensemble d'attributs |
EntityType1:attribute1,attribute2;EntityType2:attribute1,attribute2
Si le format ou la valeur que vous avez défini pour les attributs ne sont pas corrects, vous voyez s'afficher une exception semblable aux exemples suivants :
com.ibm.websphere.wim.exception.WIMConfigurationException:
CWWIM1043E: Le format de la valeur de la propriété 'preFetchData' n'est pas valide. Indiquez une valeur valide, par exemple "PersonAccount:sn,mail;Group:cn,description".
com.ibm.websphere.wim.exception.WIMConfigurationException:
CWWIM5068E: Le type d'entité 'abc' n'est pas valide.
où abc est le nom du type d'entité non valide fourni dans la configuration
de la propriété preFetchData. Le message s'affiche avec le nom du type d'entité configuré. com.ibm.websphere.wim.exception.WIMConfigurationException:
CWWIM4516E La propriété 'uid1' n'est pas définie pour le type d'entité 'Groupe'.
où uid1 est le nom de la propriété non valide du type d'entité de groupe fournie dans la configuration de la propriété preFetchData.
Le message s'affiche avec les noms du type d'entité et de la propriété tels qu'ils ont été configurés. $AdminTask setIdMgrCustomProperty {-id <nom_référentiel_ldap> -name <nom_propriété> -value <valeur>}
Par exemple : $AdminTask setIdMgrCustomProperty {-id LDAP1 -name
preFetchData -value “PersonAccount:sn,cn,givenName,displayName,preferredLanguage;Group:cn,description”}<config:repositories xsi:type="config:LdapRepositoryType" adapterClassName="com.ibm.ws.wim.adapter.ldap.LdapAdapter"
id="LDAP1" isExtIdUnique="true" supportAsyncMode="false" supportExternalName="false"
supportPaging="false" supportSorting="false" supportTransactions="false" certificateFilter=""
certificateMapMode="exactdn" ldapServerType="IDS" translateRDN="false">
<config:baseEntries name="o=ldap" nameInRepository="o=ldap"/>
<config:loginProperties>uid</config:loginProperties>
<config:CustomProperties name="preFetchData" value="PersonAccount:sn,cn,givenName,displayName,preferredLanguage;Group:cn,description"/>
<config:ldapServerConfiguration primaryServerQueryTimeInterval="15" returnToPrimaryServer="true"
sslConfiguration="">
<config:ldapServers authentication="simple" bindDN="cn=root" bindPassword="{xor}LTAwK25tbA=="
connectionPool="false" connectTimeout="0" derefAliases="always" referal="ignore"
sslEnabled="false">
<config:connections host="localhost" port="389"/>
</config:ldapServers>
</config:ldapServerConfiguration>
</config:repositories>
Lorsqu'une opération est exécutée pour la première fois pour user1, l'attribut sn est aussi récupéré et mis en cache avec la propriété de connexion de l'utilisateur, bien que sn ne soit pas demandé de façon explicite dans le contexte de la requête. Concernant les groupes contenant user1 en tant que membre, l'attribut cn est mis en cache. Concernant les appels suivants, les données à extraire sont recherchées d'abord dans le cache. Ensuite, seulement dans le cas où les données ne sont pas trouvées, un appel JNDI est émis pour extraire l'attribut voulu.
Lorsqu'une recherche est lancée pour un groupe g1, le référentiel fédéré extrait et met en cache le groupe cn conformément à la configuration que vous avez définie. Si un appel ultérieur recherche les attributs cn et description, cn est ensuite extrait du cache, et un appel JNDI explicite est émis pour extraire le groupe description.
Vous pouvez utiliser cette propriété pour rechercher un serveur LDAP disponible défini dans le fichier de configuration DNS pour le le référentiel LDAP par rapport à un nom de domaine donné.
Informations | Valeur |
---|---|
Type de données | String |
Valeurs admises | Nom du domaine pour lequel les enregistrements du serveur LDAP sont définis dans le fichier de configuration DNS |
A part les configurations du serveur principal, vous pouvez aussi configurer les serveurs de basculement dans la configuration dans le référentiel fédéré LDAP. Le référentiel fédéré bascule vers le serveur de basculement en cas de panne du serveur principal. S'il existe un grand nombre de serveurs LDAP avec les utilisateurs et les groupes définis pour eux, il devient difficile de définir tous les noms de serveur LDAP dans la configuration du référentiel fédéré LDAP. La configuration est alors plus complexe et peut demander plus de temps si de nombreux nœuds sont configurés dans WebSphere Application Server et si chaque nœud est configuré avec plusieurs LDAP. Si les serveurs LDAP sont nombreux, utilisez la propriété domainNameForAutomaticDiscoveryOfLDAPServers pour rechercher dynamiquement les noms de serveur LDAP lors de l'exécution, quel que soit le serveur LDAP qui est configuré dans le référentiel LDAP.
ldap._tcp.ibm.com 86400 IN SRV 0 0 389 bigbox.ibm.com
ldap._tcp.ibm.com 86400 IN SRV 10 20 1389 smallbox1.ibm.com
Si la propriété domainNameForAutomaticDiscoveryOfLDAPServers est définie, le référentiel fédéré recherche les serveurs LDAP à partir du fichier de
configuration DNS et envoie les appels JNDI suivants à ce serveur. Vous pouvez définir la propriété domainNameForAutomaticDiscoveryOfLDAPServers à l'aide de la commande setIdMgrCustomProperty : $AdminTask setIdMgrCustomProperty {-id <nom_référentiel_ldap> -name <nom_propriété> -value <valeur>}
$AdminTask setIdMgrCustomProperty {-id LDAP1 -name domainNameForAutomaticDiscoveryOfLDAPServers -value “dc=ibm,dc=com”}
<config:repositories xsi:type="config:LdapRepositoryType" adapterClassName="com.ibm.ws.wim.adapter.ldap.LdapAdapter"
id="LDAP1" isExtIdUnique="true" supportAsyncMode="false" supportExternalName="false"
supportPaging="false" supportSorting="false" supportTransactions="false" certificateFilter=""
certificateMapMode="exactdn" ldapServerType="IDS" translateRDN="false">
<config:baseEntries name="o=ldap" nameInRepository="o=ldap"/>
<config:loginProperties>uid</config:loginProperties>
<config:CustomProperties name="domainNameForAutomaticDiscoveryOfLDAPServers" value="dc=ibm,dc=com"/>
<config:ldapServerConfiguration primaryServerQueryTimeInterval="15" returnToPrimaryServer="true"
sslConfiguration="">
<config:ldapServers authentication="simple" bindDN="cn=root" bindPassword="{xor}LTAwK25tbA=="
connectionPool="false" connectTimeout="0" derefAliases="always" referal="ignore"
sslEnabled="false">
<config:connections host="localhost" port="389"/>
</config:ldapServers>
</config:ldapServerConfiguration>
</config:repositories>
La propriété domainNameForAutomaticDiscoveryOfLDAPServers se substitue à la configuration de serveur LDAP définie dans le référentiel LDAP et extrait le nom et le numéro de port du serveur LDAP depuis le fichier de configuration DNS. L'adresse URL du référentiel LDAP fédéré suivant est générée et est utilisée pour rechercher les enregistrements du serveur LDAP : ldap:///dc=ibm,dc=com.
Lorsque JNDI reçoit l'adresse URL comme nom de domaine, le serveur LDAP est alors extrait du fichier configuration DNS. Si l'un des serveurs LDAP tombe en panne, JNDI démarre alors un autre serveur LDAP qui est défini dans le fichier de configuration DNS de ce domaine.
Informations | Valeur |
---|---|
Type de données | Boolean |
Par défaut | Vrai |
Informations | Valeur |
---|---|
Type de données | Nombre entier |
Par défaut | 5 |
Informations | Valeur |
---|---|
Type de données | Millisecondes |
Par défaut | 1000 |