Archivo de configuración LDAP (ldapentry.xml)

El archivo WCServer_enterprise_archive/xml/ldap/ldapentry.xml se utiliza cuando HCL Commerce se configura para utilizar un servidor LDAP como repositorio de perfil maestro para usuarios y organizaciones. HCL Commerce interactúa con el servidor LDAP utilizando el repositorio federado de WebSphere Application Server. El depósito federado se implementa utilizando Virtual Member Manager (VMM).

El archivo ldapentry.xml proporciona la correlación entre atributos de HCL Commerce y atributos VMM, para sincronizar datos entre la base de datos de HCL Commerce y LDAP. Esta correlación proporciona una correlación predeterminada para los atributos utilizados con mayor frecuencia. Los atributos se pueden personalizar. Para obtener más información, consulte Lista de atributos que se pueden sincronizar con LDAP.
Nota: Asegúrese de comprobar el archivo wc-server.xml para verificar qué archivo ldapentry se utiliza:
  • Microsoft Active Directory: utiliza, típicamente, ldapentry_ad.xml
  • Otros servidores LDAP: utiliza, típicamente, ldapentry.xml

Datos de ejemplo en el archivo 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>

El formato del archivo ldapentry.xml es el siguiente:
entry
El elemento entry identifica para qué tipo de miembro son las correlaciones. Los valores válidos son User, Organization u OrganizationalUnit.
ldapsetting - ldaprdn - rdnName
Especifica qué atributo LDAP es el atributo RDN
ldapsetting - ldaprdn - keyAttrName
Especifica qué atributo de HCL Commerce se correlaciona con el atributo RDN.
ldapsetting - ldaprdn - keyObjName
Especifica el bean de acceso de HCL Commerce que contiene el atributo keyAttrName.
ldapsetting - ldapocs - objClass
Esta opción ya no se utiliza. Se ha movido al archivo wimconfig.xml.
ldapsetting - ldapbase - defaultBase
Esta opción ya no se utiliza. Se ha movido al archivo wimconfig.xml.
ldapsetting - ldapbase - searchBase
Esta opción ya no se utiliza. Se ha movido al archivo wimconfig.xml.
map -objectAttribute - attrName
Un nombre del atributo HCL Commerce. Para obtener más información, consulte Lista de atributos que se pueden sincronizar con LDAP.
map -ldapAttribute - name
Nombre del atributo VMM que se debe correlacionar con el atributo de HCL Commerce especificado en attrName. El nombre del atributo VMM suele ser el mismo que el nombre del atributo LDAP. En los casos en los que es diferente, la correlación está definida en el elemento attributeConfiguration del archivo wimconfig.xml.
map -ldapAttribute - flow
Especifica cómo se lee el valor de atributo de LDAP y se escribe en LDAP. Los valores válidos son:
ldapToWcs
El valor fluye de LDAP únicamente a la base de datos de HCL Commerce. Se utiliza durante la autenticación y en operaciones get.
wcsToLdap
El valor fluye de la base de datos de HCL Commerce a LDAP únicamente. Este valor se aplica al crear o actualizar un miembro en HCL Commerce.
bothDirections
El valor fluye en ambas direcciones, entre la base de datos de HCL Commerce y LDAP.
Si se utiliza HCL Commerce para crear o actualizar a un usuario o a una organización mediante los mandatos de miembro, por ejemplo, UserRegistrationAddCmd o OrgEntityUpdateCmd, el flujo de datos es de HCL Commerce a LDAP. En una solicitud read o get, por ejemplo, en la hora de conexión o cuando se llena un bean de datos, el flujo de datos es de LDAP a HCL Commerce, porque LDAP se considera el maestro del registro. No obstante, los datos sólo se transfieren si la actualización del registro en LDAP ha sido más reciente que la última sincronización con HCL Commerce. Esta última hora de sincronización se almacena en la tabla WMMMAP.
ldapOnly
El valor sólo existe en LDAP, no en la base de datos de HCL Commerce. Estos atributos serán accesibles desde las API siguientes:
  • UserSyncBean.getProperty(String propertyName)
  • OrganizationSyncBean.getProperty(String propertyName)
Esto a su vez estará a disposición de los beans de datos siguiente:
  • UserRegistrationDataBean.getAttribute(String attributeName)
  • OrgEntityDataBean.getAttribute(String attributeName)
A su vez, los servicios GetPerson y GetOrganization llenarán los SDO de Person y Organization con estos atributos cuando utilicen el perfil de acceso IBM_All:
  • /Person/Attributes
  • /Organization/Attributes
map -ldapAttribute - operation
Especifica cómo debe modificarse el valor de atributo para LDAP. Los valores válidos son replace o add. El valor replace actualiza la información de usuario actual con la nueva información proporcionada (por ejemplo, sustituir un número de teléfono existente por uno nuevo). Un valor "add" incluye otra entrada para el usuario (por ejemplo añadir un nuevo número de teléfono a la información de usuario actual, realizar una lista de números de teléfono para el usuario).
map - objectSeparator - attrSeparator
Carácter separador utilizado al almacenar o recuperar varios atributos de HCL Commerce en o desde un solo atributo de LDAP. No se da soporte a la duplicación de atributos con varios valores.

La sincronización de atributos LDAP de varios valores en la tabla MBRATTRVAL

La tabla MBRATTRVAL se utiliza para almacenar atributos de miembros personalizados. La tabla puede almacenar varios valores (filas) para un único atributo y usuario. LDAP puede gestionar atributos de varios valores.

Por ejemplo:

<map>
     <objectAttribute attrName="JobFunction_10001_r_n"/>
     <ldapAttribute name="telephoneNumber" operation="replace" flow="bothDirections"/>
</map>

Correlación original:

<!--
<map>
     <objectAttribute attrName="phone1"/>
     <ldapAttribute name="telephoneNumber" operation="add" flow="bothDirections"/>
</map>
-->
El atributo VMM telephoneNumber se correlaciona con el atributo JobFunction_10001_r_n HCL Commerce. Este atributo de HCL Commerce, basado en el convenio de denominación, es un atributo de miembro personalizado, cuyos valores se almacenan en la tabla MBRATTRVAL. Tenga en cuenta que el nombre de atributo de miembro finaliza en _n para indicar que tiene varios valores.

Si existen varios valores en la tabla MBRATTRVAL, se sincronizan a través de varios valores en LDAP. A la inversa, si existen varios valores en LDAP, se sincronizan con varias filas en la tabla MBRATTRVAL.

El URL siguiente es un ejemplo de cómo añadir o actualizar dos valores JobFunction para el usuario actual:
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
Observe que hay dos instancias de actualizaciones de JobFunction en la serie del URL. La primera es JobFunction_10101_r_1 para el gestor y la segunda es JobFunction_10101_r_2 para el asistente.

La sincronización de atributos LDAP de varios valores en la tabla MBRATTRVAL

Con la sincronización de un atributo LDAP de un solo valor con la tabla MBRATTRVAL, el atributo de un solo valor debe definirse como un atributo de varios valores. Por ejemplo, para un atributo LDAP partyID con un solo valor en LDAP:
  1. En el archivo XML ldapentry, la correlación sería
    <map>
    <objectAttribute attrName="partyID_10001_r_1"/>
    <ldapAttribute name="partyID" operation="replace" flow="wcsToLdap"/>
    </map> 
  2. En el archivo wimxmlextension.xml de WebSphere Application Server, establezca el parámetro multiValued en true para 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>
  3. Establezca el valor de atributo en el URL con el formato siguiente:
    partyID_10001_r_1=newParty
    .