Fixpack 8.5.5.2 or later

Propriétés personnalisées du gestionnaire de membre virtuel (VMM)

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é.

preFetchData

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
La valeur admise pour cette propriété contient des paires de noms de type d'entité et leur ensemble d'attributs valide correspondants. La valeur de la propriété doit être définie dans le format suivant :
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 :

Utilisez la commande setIdMgrCustomProperty afin de définir la propriété preFetchData dans le référentiel fédéré LDAP.
$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”}
L'échantillon suivant représente la configuration du référentiel LDAP avec la propriété preFetchData :
<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>
Voici plusieurs scénarios représentant le flux de contrôle basé sur les valeurs configurées pour la propriété preFetchData :
  • Scénario 1 : Connexion en tant qu'utilisateur user1 avec la valeur de propriété personnalisée preFetchData configurée comme suit : PersonAccount:sn;Group:cn

    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.

  • Scénario 2 : Extraction d'un groupe avec la valeur de propriété personnalisée preFetchData configurée comme suit : Group:cn

    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.

domainNameForAutomaticDiscoveryOfLDAPServers

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.

Vous pouvez définir le nom de domaine du LDAP pour lequel des serveurs LDAP correspondants sont définis dans le fichier de configuration DNS correspondant sous la forme d’enregistrements SRV, comme le montrent les exemples suivants :
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>}

Par exemple :
$AdminTask setIdMgrCustomProperty {-id LDAP1 -name domainNameForAutomaticDiscoveryOfLDAPServers -value “dc=ibm,dc=com”}
L'échantillon suivant représente la configuration du référentiel LDAP avec la propriété domainNameForAutomaticDiscoveryOfLDAPServers :
<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.

minimizeContextPoolThreadBlock

La propriété personnalisée minimizeContextPoolThreadBlock permet de définir le comportement de verrouillage de l'unité d'exécution lorsqu'un serveur LDAP est en panne et qu'une tentative de lecture lui est envoyée. Lorsque la valeur de la propriété est true, seul un nombre minimum d'unités d'exécution est bloqué lors de l'opération de lecture et les unités d'exécution restantes échouent immédiatement sans attente. Si la propriété est définie sur false, chaque unité d'exécution qui émet les demandes de lecture est bloquée jusqu'à ce qu'un contexte soit créé pour le LDAP demandé ou que la création du contexte rencontre un dépassement de délai. Le délai par défaut de la création du contexte est de 120 secondes.
Informations Valeur
Type de données Boolean
Par défaut Vrai

maxThreadsToBlock

La propriété maxThreadsToBlock est utilisée avec la propriété minimizeContextPoolThreadBlock. Lorsque la propriété minimizeContextPoolThreadBlock est définie sur true, maxThreadsToBlock détermine le nombre maximum d'unités d'exécution qui doit être bloqué lorsqu'une opération de lecture LDAP est exécutée.
Informations Valeur
Type de données Nombre entier
Par défaut 5

bindTimeout

La propriété personnalisée bindTimeout indique le délai nécessaire pour suivre le nombre de liaisons quick en millisecondes. Toutes les liaisons dont la durée est supérieure à celle définie sont ajoutées au journal si le journal de trace est activé.
Informations Valeur
Type de données Millisecondes
Par défaut 1000


Conditions d'utilisation | Commentaires