Asignación de LDAP
Un repositorio de LDAP consta de varias entradas. Cada entrada representa un objeto en el directorio que se define por un nombre distintivo y puede contener uno o varios atributos. En un repositorio normal, suele haber una entrada para los usuarios y una entrada para grupos. La conexión entre usuarios y grupos puede implantarse de dos formas diferentes:
-
Los usuarios que pertenecen a un grupo se definen en un atributo especial con varios valores en la entrada Grupo.
-
Los grupos a los que pertenece el usuario se definen en un atributo especial con varios valores en la entrada Usuario.
La asignación entre los objetos de seguridad de LDAP y los objetos de seguridad base se almacena en un documento XML que puede procesarse mediante la tarea por lotes de importación de LDAP. Como parte de la configuración del sistema para la importación de LDAP, necesitará definir esta asignación. El paquete base proporciona un fichero de asignaciones de ejemplo llamado ldapdef.xml que puede utilizarse como punto de inicio y cambiarse según los requisitos de su negocio y su repositorio de LDAP concreto.
Una vez definido el documento XML de asignación, esto se configura como un parámetro en la tarea por lotes F1-LDAP.
La estructura de XML:
-
El elemento LDAPEntry asigna las entradas de LDAP a los objetos del sistema (Usuario o grupo). El fichero de asignación debe contener solamente un elemento LDAPEntry para el usuario y uno para el grupo.
-
El elemento LDAPCDXAttrMapping dentro del elemento LDAPEntry asigna los atributos en la entrada de LDAP a los atributos en el objeto del sistema.
-
El elemento LDAPEntryLinks describe los objetos enlazados a la entrada de LDAP. Cuando se asigna la entidad de usuario se necesita describir el procedimiento de recuperación de los grupos a los que pertenece el usuario. Cuando se asigna la entidad de grupo se necesita describir el procedimiento de recuperación de los usuarios que contiene el grupo.
La tabla siguiente describe los atributos que se definen para cada elemento.
Elemento |
Atributo |
Descripción |
---|---|---|
LDAPEntry |
name |
Nombre de la entrada de LDAP: - Grupo - Usuario |
baseDN |
Nombre distintivo base en LDAP para esta entrada. |
|
cdxEntity |
Nombre de la entidad del producto base a la que corresponde la entrada de LDAP: - Grupo - Usuario |
|
searchFilter |
Filtro de búsquedas de LDAP que se utiliza para ubicar las entradas de LDAP. Una cadena %searchParm% en dicho filtro se sustituye por el valor procedente del parámetro de usuario o grupo, a partir de la ejecución de la tarea por lotes F1-LDAP . |
|
Ámbito |
Configura el ámbito de la búsqueda. Los valores válidos son: - onelevel (valor usado normalmente) - subtree |
|
LDAPCDXAttrMapping |
ldapAttr |
Nombre del atributo de LDAP que se va a asignar. Tenga en cuenta que se puede hacer referencia a esto más de una vez para permitir que un elemento de LDAP se asigne a varios elementos de productos base. Por ejemplo, si una dirección de correo electrónico debe utilizarse tanto para el ID de conexión y la dirección de correo electrónico. |
cdxName |
Nombre del atributo de producto base que se va a asignar. Para Usuario, este es el elemento dentro del objeto de negocio F1-IDMUser. Para Grupo, esto puede ser el "grupo" o la "descripción". |
|
default |
El valor por defecto que se asignará al elemento referenciado en el atributo cdxName cuando se produce una de las situaciones siguientes: - El atributo LDAP contiene un valor nulo o vacío. - El atributo LDAP no existe o no se especifica. Los valores por defecto se aplican solo al crear una nueva entidad y no son entidades aplicadas o actualizadas. |
|
autoGenerate |
Configure esto como verdadero para activar la generación automática del identificador de usuario. Si esto es verdadero, el sistema definirá el identificador de usuario como la <primera inicial del nombre>+<apellido> todos los caracteres en mayúsculas hasta un máximo de 8 dígitos. Si se encuentra un usuario existente para el ID generado, un número reemplazará los ocho dígitos o se anexará al final. El sistema incrementará el número hasta que se encuentre un identificador único. |
|
transform |
Utilice este atributo para indicar si se debe producir una transformación de los datos. Valores válidos: uppercase|truncate. Tenga en cuenta que este atributo no debería utilizarse en conjunto con el atributo autoGenerate. |
|
LDAPEntryLink |
linkedToLDAPEntity |
El nombre de la entidad enlazada (Usuario o Grupo). Utilice el usuario en la descripción de la entidad Grupo. Utilice grupo en la descripción de la entidad Usuario. |
linkingLDAPAttr |
Nombre del atributo con varios valores de la entidad de LDAP que contiene la entidad enlazada. |
|
linkingSearchFilter |
Filtro de búsqueda que se aplica para recuperar la lista de objetos enlazados, por ejemplo: (&(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 sustituye en tiempo de ejecución por el valor del atributo llamada "attr" de la entidad importada. Si la entrada de LDAP que describe es un grupo y la cadena es %name%, se reemplaza por el valor del atributo "name" del grupo que se importa. Si la entrada es Usuario y la cadena es %dn%, se reemplaza por el atributo "dn" del usuario que se importa. |
|
linkingSearchScope |
Configura el ámbito de la búsqueda. Los valores válidos son: - onelevel (el valor que se utiliza normalmente) - subtree |
Asignación de ejemplo
El siguiente XML de ejemplo describe un ejemplo de asignación. En el ejemplo se hacen algunas asunciones:
-
El atributo del producto base displayProfileCodese define por defecto como "NORTHAM" cuando se añade un usuario nuevo.
-
La entrada Grupo LDAP contiene la lista de usuarios que pertenecen al grupo en al atributo departmentNumber .
-
Los grupos a los que pertenece el usuario se recuperan mediante la aplicación de un filtro de búsqueda.
<LDAPEntries>
<LDAPEntry name=" User" baseDN="ou=people,dc=example,dc=com" cdxEntity="
user" searchFilter=" (&(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=" (&(objectClass=organizationalUnit)(ou=%searchParm%))">
<LDAPCDXAttrMappings>
<LDAPCDXAttrMapping ldapAttr="name" cdxName="Group" />
<LDAPCDXAttrMapping ldapAttr="description" cdxName=" Description" default="Unknown" />
</LDAPCDXAttrMappings>
<LDAPEntryLinks>
<LDAPEntryLink linkedToLDAPEntity="User" linkingSearchFilter="
(&(objectClass=inetOrgPerson)(departmentNumber=%distinguishedName%))"
linkingSearchScope="onelevel" />
</LDAPEntryLinks>
</LDAPEntry>
</LDAPEntries>