Fichier de configuration LDAP (ldapentry.xml)
Le fichier WCServer_enterprise_archive/xml/ldap/ldapentry.xml est utilisé lorsque HCL Commerce est configuré de manière à utiliser un serveur LDAP comme référentiel de profil maître pour les utilisateurs et les organisations. HCL Commerce intéragit avec le serveur LDAP à l'aide du référentiel fédéré de WebSphere Application Server. Le référentiel fédéré est implémenté à l'aide de VMM (Virtual Member Manager).
Le fichier ldapentry.xml assure le mappage entre les attributs HCL Commerce et les attributs VMM, afin de synchroniser les données entre la base de données HCL Commerce et LDAP. Ce fichier de mappage fournit un mappage par défaut pour les attributs les plus couramment utilisés. Les attributs peuvent être personnalisés. Pour plus d'informations, voir Liste des attributs pouvant être synchronisés avec LDAP.- Microsoft Active Directory : utilise généralement ldapentry_ad.xml
- Autres serveurs LDAP : utilise généralement ldapentry.xml
- Pour toute information sur le mappage des attributs VMM vers les attributs LDAP, voir Default LDAP configuration mapping based on LDAP server type.
- Si l'attribut VMM que vous avez spécifié n'est pas défini dans l'entité VMM que vous utilisez, vous devez le définir dans VMM. Pour plus d'informations, consultez la rubrique Using addIdMgrPropertyToEntityTypes command to add a new property to one or more existing entity types.
- Property types supported by virtual member manager, où HCL Commerce User correspond à VMM, et HCL Commerce Organizational Entity correspond à OrgContainer dans VMM.
Exemples de données dans le fichier ldapentry.xml
<?xml version="1.0"?>
<!DOCTYPE ldapentry SYSTEM "ldapentry.dtd">
<ldapentry>
<entry entryName="User">
<ldapsetting>
<ldaprdn rdnName="uid" keyAttrName="logonId" keyObjName="UserRegistry"/>
</ldapsetting>
<ldapmap>
<map>
<objectAttribute attrName="logonPassword"/>
ldapAttribute name="password" operation="replace" flow="wcsToLdap"/>
</map>
<map>
<objectAttribute attrName="lastName"/>
<objectAttribute attrName="firstName"/>
<objectSeparator attrSeparator="/"/>
<ldapAttribute name="cn" operation="replace" flow="wcsToLdap"/>
</map>
<map>
<objectAttribute attrName="lastName"/>
<ldapAttribute name="sn" operation="replace" flow="bothDirections"/>
</map>
<map>
<objectAttribute attrName="firstName"/>
<ldapAttribute name="givenName" operation="replace" flow="bothDirections"/>
</map>
<map>
<objectAttribute attrName="phone1"/>
<ldapAttribute name="homePhone" operation="add" flow="bothDirections"/>
</map>
<map>
<objectAttribute attrName="email1"/>
<ldapAttribute name="mail" operation="replace" flow="bothDirections"/>
</map>
<map>
<objectAttribute attrName="zipCode"/>
<ldapAttribute name="postalCode" operation="replace" flow="bothDirections"/>
</map>
<map>
<objectAttribute attrName="address1" size="50"/>
<objectAttribute attrName="address2" size="50"/>
<objectAttribute attrName="address3" size="50"/>
<objectSeparator attrSeparator="/"/>
<ldapAttribute name="postalAddress" operation="replace" flow="bothDirections"/>
</map>
</ldapmap>
</entry>
<entry entryName="Organization">
<ldapsetting>
<ldaprdn rdnName="o" keyAttrName="orgEntityName" keyObjName="Organization"/>
</ldapsetting>
<ldapmap>
<map>
<objectAttribute attrName="businessCategory"/>
<ldapAttribute name="businessCategory" operation="replace" flow="bothDirections"/>
</map>
<map>
<objectAttribute attrName="description"/>
<ldapAttribute name="description" operation="replace" flow="bothDirections"/>
</map>
<map>
<objectAttribute attrName="address1" size="50"/>
<objectAttribute attrName="address2" size="50"/>
<objectAttribute attrName="address3" size="50"/>
<objectSeparator attrSeparator="/"/>
<ldapAttribute name="postalAddress" operation="replace" flow="bothDirections"/>
</map>
<map>
<objectAttribute attrName="phone1"/>
<ldapAttribute name="telephoneNumber" operation="add" flow="bothDirections"/>
</map>
</ldapmap>
</entry>
<entry entryName="OrganizationalUnit">
<ldapsetting>
<ldaprdn rdnName="ou" keyAttrName="orgEntityName" keyObjName="Organization"/>
</ldapsetting>
<ldapmap>
<map>
<objectAttribute attrName="businessCategory"/>
<ldapAttribute name="businessCategory" operation="replace" flow="bothDirections"/>
</map>
<map>
<objectAttribute attrName="description"/>
<ldapAttribute name="description" operation="replace" flow="bothDirections"/>
</map>
<map>
<objectAttribute attrName="address1" size="50"/>
<objectAttribute attrName="address2" size="50"/>
<objectAttribute attrName="address3" size="50"/>
<objectSeparator attrSeparator="/"/>
<ldapAttribute name="postalAddress" operation="replace" flow="bothDirections"/>
</map>
<map>
<objectAttribute attrName="phone1"/>
<ldapAttribute name="telephoneNumber" operation="add" flow="bothDirections"/>
</map>
</ldapmap>
</entry>
</ldapentry>
- entrée
- Cet élément identifie le type de membre auquel sont destinés les mappages. Les valeurs admises sont User, Organization ou OrganizationalUnit.
- ldapsetting - ldaprdn - rdnName
- Indique quel attribut LDAP est l'attribut RDN (Nom Distinctif Relatif).
- ldapsetting - ldaprdn - keyAttrName
- Indique quel attribut HCL Commerce est mis en correspondance sur l'attribut RDN.
- ldapsetting - ldaprdn - keyObjName
- Indique le bean d'accès HCL Commerce qui contient l'attribut keyAttrName.
- ldapsetting - ldapocs - objClass
- Cette option n'est plus utilisée. Elle a été déplacée vers le fichier wimconfig.xml.
- ldapsetting - ldapbase - defaultBase
- Cette option n'est plus utilisée. Elle a été déplacée vers le fichier wimconfig.xml.
- ldapsetting - ldapbase - searchBase
- Cette option n'est plus utilisée. Elle a été déplacée vers le fichier wimconfig.xml.
- map -objectAttribute - attrName
- un nom d'attribut HCL Commerce. Pour plus d'informations, voir Liste des attributs pouvant être synchronisés avec LDAP.
- map -ldapAttribute - name
- Nom d'un attribut VMM à mettre en correspondance avec l'attribut HCL Commerce indiqué dans attrName. Le nom d'attribut VMM est généralement identique au nom d'attribut LDAP. Dans les cas où il serait différent, le mappage est défini dans l'élément attributeConfiguration du fichier wimconfig.xml.
- map -ldapAttribute - flow
- Indique comment la lecture et l'écriture de la valeur d'attribut s'effectue sur LDAP. Les valeurs admises sont les suivantes :
- ldapToWcs
- La valeur est transmise de LDAP vers la base de données HCL Commerce uniquement. Ce paramétrage est utilisé pendant l'authentification et les opérations d'extraction (get).
- wcsToLdap
- La valeur est transmise de la base de données HCL Commerce vers LDAP uniquement. Ce paramétrage s'applique lors de la création ou de la mise à jour d'un membre dans HCL Commerce.
- bothDirections
- La valeur est transmise dans les deux sens, entre la base de données HCL Commerce et LDAP.
- ldapOnly
- La valeur n'existe que sur LDAP, et non sur la base de données HCL Commerce. Ces attributs seront accessibles à partir des API suivantes :
- UserSyncBean.getProperty(String propertyName)
- OrganizationSyncBean.getProperty(String propertyName)
- UserRegistrationDataBean.getAttribute(String attributeName)
- OrgEntityDataBean.getAttribute(String attributeName)
- /Person/Attributes
- /Organization/Attributes
- map -ldapAttribute - operation
- Indique si la valeur d'attribut doit être modifiée pour LDAP. Les valeurs admises sont replace ou add. Une valeur replace met à jour les informations utilisateur en cours à l'aide des nouvelles informations fournies (par exemple, remplacement d'un numéro de téléphone existant par un nouveau numéro). Une valeur add inclut une autre entrée pour l'utilisateur (par exemple, ajout d'un nouveau numéro de téléphone aux informations utilisateur en cours, établissant ainsi une liste de numéros de téléphone pour l'utilisateur).
- map - objectSeparator - attrSeparator
- Séparateur utilisé lors du stockage ou de l'extraction de plusieurs attributs HCL Commerce sur ou à partir d'un seul attribut LDAP. La réplication des attributs à valeurs multiples n'est pas prise en charge.
Synchronisation des attributs LDAP à valeurs multiples avec la table MBRATTRVAL
La table MBRATTRVAL est utilisée pour le stockage des attributs de membre personnalisés. Elle peut stocker plusieurs valeurs (lignes) pour un attribut et un utilisateur uniques. LDAP peut traiter les attributs à valeurs multiples.
<map>
<objectAttribute attrName="JobFunction_10001_r_n"/>
<ldapAttribute name="telephoneNumber" operation="replace" flow="bothDirections"/>
</map>
Mappage d'origine :
<!--
<map>
<objectAttribute attrName="phone1"/>
<ldapAttribute name="telephoneNumber" operation="add" flow="bothDirections"/>
</map>
-->
L'attribut VMM telephoneNumber mappe vers l'attribut JobFunction_10001_r_n HCL Commerce. Cet attribut HCL Commerce, fondé sur la convention de dénomination, est un attribut de membre personnalisé dont les valeurs sont stockées dans la table MBRATTRVAL. Il est à noter que le nom d'attribut de membre se termine par _n pour indiquer qu'il comporte plusieurs valeurs.Si la table MBRATTRVAL contient plusieurs valeurs, celles-ci sont synchronisées avec plusieurs valeurs dans LDAP. A l'inverse, si LDAP contient plusieurs valeurs, celles-ci sont synchronisées avec plusieurs lignes dans la table MBRATTRVAL.
https://localhost/webapp/wcs/stores/servlet/UserRegistrationUpdate?storeId=10101&catalogId=10101&langId=-1
&editRegistration=Y&JobFunction_10101_r_1=manager&JobFunction_10101_r_2=clerk&URL=UserRegistrationForm
Notez les deux occurrences des mises à jour JobFunction dans la chaîne URL. Le premier étant JobFunction_10101_r_1 pour le gestionnaire et le second étant JobFunction_10101_r_2 pour le vendeur.Synchronisation des attributs LDAP à valeur unique avec le tableau MBRATTRVAL
partyID avec une seule valeur sur LDAP :- Dans le fichier XML ldapentry, le mappage serait
<map> <objectAttribute attrName="partyID_10001_r_1"/> <ldapAttribute name="partyID" operation="replace" flow="wcsToLdap"/> </map> - Dans le fichier wimxmlextension.xml WebSphere Application Server, définissez le paramètre multiValuedsur true pour
partyID.<wim:propertySchema nsPrefix="wim" nsURI="http://www.ibm.com/websphere/wim" dataType="string" multiValued="true" propertyName="partyID"> <wim:applicableEntityTypeNames>OrgContainer</wim:applicableEntityTypeNames> </wim:propertySchema> - Définissez la valeur d'attribut de l'URL en utilisant le format suivant :
.partyID_10001_r_1=newParty