Mapeo LDAP

Un repositorio LDAP consta de múltiples ingresos. Cada ingreso representa un objeto en el directorio que se define mediante un Nombre Distinguido y puede contener uno o más atributos. En un repositorio LDAP típico, normalmente hay un ingreso para usuarios y un ingreso para grupos. La conexión entre los usuarios y los grupos se puede implementar de dos formas diferentes:

  • Los usuarios que pertenecen a un grupo se definen en un atributo especial de múltiples valores en el ingreso de Grupo.

  • Los grupos a los cuales pertenece un usuario se definen en un atributo especial de múltiples valores en el ingreso de Usuario.

El mapeo entre objetos de seguridad LDAP y objetos de seguridad base se almacena en un documento XML que se puede procesar mediante un trabajo de lote de importación LDAP. Como parte de la configuración del sistema para importación LDAP, necesita definir este mapeo. El paquete base proporciona un archivo de mapeo de muestra denominado ldapdef.xml que se puede utilizar como punto de partida y se puede cambiar según los requisitos de negocios y el repositorio LDAP específico.

Una vez que definió el documento XML de mapeo, este se configura como un parámetro en el trabajo de lote F1-LDAP.

La estructura de XML:

  • El elemento LDAPEntry mapea las entradas LDAP a objetos del sistema (Usuario o Grupo). El archivo de mapeo debe contener un único elemento LDAPEntry para el Usuario y uno para el Grupo.

  • El elemento LDAPCDXAttrMapping con el elemento LDAPEntry mapea atributos en el ingreso LDAP a atributos del objeto del sistema.

  • El elemento LDAPEntryLinks describe objetos enlazados al ingreso LDAP. Al mapear la entidad de usuario, necesita describir cómo se recuperan los grupos a los que pertenece el usuario. Al mapear la entidad de grupo, necesita describir cómo se recuperan los usuarios incluidos en el grupo.

La siguiente tabla describe los atributos que se deben definir para cada elemento.

Elemento

Atributo

Descripción

LDAPEntry

nombre

El nombre del ingreso LDAP:

- Grupo

- Usuario

baseDN

El nombre de la base distinguida en LDAP para este ingreso.

cdxEntity

El nombre de la entidad de producto base a la cual se mapea el ingreso LDAP:

- Grupo

- Usuario

searchFilter

Un filtro de búsqueda LDAP que se usa para ubicar ingresos LDAP. Una cadena %searchParm% de ese filtro se reemplaza con el valor del parámetro de usuario o grupo de la ejecución del trabajo de lote F1-LDAP .

Scope

Define el alcance de la búsqueda. Los valores válidos son:

- onelevel (el valor normalmente utilizado)

- subárbol

LDAPCDXAttrMapping

ldapAttr

El nombre del atributo LDAP que se mapeará. Tenga en cuenta que es posible hacer referencia a esto más de una vez para permitir que un elemento LDAP se mapee a múltiples elementos del producto base. Por ejemplo, en el caso en que se deba usar una dirección de correo electrónico para la ID de Conexión y la Dirección de Correo Electrónico.

cdxName

El nombre del atributo de producto base que se mapeará.

Para Usuario, este es el elemento dentro del objeto de negocio F1-IDMUser.

Para Grupo, este es el "grupo" o la "descripción".

default

El valor por defecto que se asignará al elemento al que se hace referencia en el atributo cdxName cuando ocurra alguna de las siguientes situaciones:

- El atributo LDAP contiene un valor nulo o vacío

- El atributo LDAP no existe o no está especificado.

Los valores por defecto se aplican sólo al crear una nueva entidad y no se aplican a entidades actualizadas.

autoGenerate

Defina este atributo en true para activar la generación automática de la ID de usuario. Si se define en verdadero, el sistema definirá la ID de usuario como <primera inicial de primer nombre>+<apellido> en mayúscula y con un máximo de 8 dígitos. Si se encuentra un usuario existente para la ID generada, el octavo dígito se reemplazará por un número (o se agregará al final). El sistema incrementará el número hasta que se encuentre una ID única.

transform

Utilice este atributo para indicar si se debe realizar una transformación de los datos. Valores válidos: uppercase|truncate. Tenga en cuenta que este atributo no se debe usar junto con el atributo autoGenerate.

LDAPEntryLink

linkedToLDAPEntity

El nombre de la entidad enlazada (Usuario o Grupo). Use Usuario cuando describa la entidad de Grupo. Use Grupo cuando describa la entidad de Usuario.

linkingLDAPAttr

El nombre de atributo de valor múltiple en la entidad LDAP que contiene la entidad enlazada.

linkingSearchFilter

El filtro de búsqueda que se aplicará para recuperar la lista de objetos enlazados, por ejemplo:

(&amp;(objectClass=group)(memberOf=%attr%))

El filtro de búsqueda puede contener la cadena % attr % que actúa como una cadena de sustitución y se reemplaza en el tiempo de ejecución por el valor del atributo llamado "attr" de la entidad importada. Si el ingreso LDAP que describe es un Grupo y la cadena es %name%, se reemplaza por el valor del atributo "nombre" del grupo que está importando. Si el ingreso LDAP que está describiendo es un usuario y la cadena es %dn%, se reemplaza por el atributo "dn" del Usuario que está importando.

linkingSearchScope

Define el alcance de la búsqueda. Los valores válidos son:

- onelevel (el valor normalmente utilizado)

- subárbol

Mapeo de Muestra

El siguiente XML describe un mapeo de muestra. El ejemplo supone lo siguiente:

  • El atributo de producto base displayProfileCode se fija por defecto en "NORTHAM" al agregar un nuevo usuario.

  • El ingreso de Grupo LDAP contiene la lista de usuarios que pertenecen al grupo en el atributo departmentNumber .

  • Los grupos a los cuales pertenece un usuario se recuperan aplicando un filtro de búsqueda.

<LDAPEntries>
  <LDAPEntry name=" User" baseDN="ou=people,dc=example,dc=com" cdxEntity=" 
   user" searchFilter=" (&amp;(objectClass=inetOrgPerson)(uid=%searchParm%))">
    <LDAPCDXAttrMappings>
      <LDAPCDXAttrMapping ldapAttr="uid" cdxName=" user" />
      <LDAPCDXAttrMapping ldapAttr="cn" cdxName="externalUserId" />
      <LDAPCDXAttrMapping cdxName="language" default=" ENG" />
      <LDAPCDXAttrMapping ldapAttr="givenName" cdxName="firstName"/>
      <LDAPCDXAttrMapping ldapAttr="sn" cdxName= "lastName"/>
      <LDAPCDXAttrMapping cdxName="displayProfileCode" default="NORTHAM" />
      <LDAPCDXAttrMapping cdxName="toDoEntriesAge1" default="30" />
      <LDAPCDXAttrMapping cdxName="toDoEntriesAge2" default="90" />
      <LDAPCDXAttrMapping cdxName="userEnable" default="ENBL"/>
    </LDAPCDXAttrMappings>
    <LDAPEntryLinks>
      <LDAPEntryLink linkedToLDAPEntity="Group" linkingLDAPAttr="departmentNumber" />
    </LDAPEntryLinks>
 </LDAPEntry>
  <LDAPEntry name="Group" baseDN="ou=people,dc=example,dc=com" cdxEntity=" 
   Group" searchFilter=" (&amp;(objectClass=organizationalUnit)(ou=%searchParm%))">
    <LDAPCDXAttrMappings>
      <LDAPCDXAttrMapping ldapAttr="name" cdxName="Group" />
      <LDAPCDXAttrMapping ldapAttr="description" cdxName=" Description" default="Unknown" />
    </LDAPCDXAttrMappings>
    <LDAPEntryLinks>
      <LDAPEntryLink linkedToLDAPEntity="User" linkingSearchFilter=" 
      (&amp;(objectClass=inetOrgPerson)(departmentNumber=%distinguishedName%))" 
     linkingSearchScope="onelevel" />
    </LDAPEntryLinks>
  </LDAPEntry>
</LDAPEntries>