HOW TO: Integración LDAP

De Thubanpedia
Saltar a: navegación, buscar


Introducción

La plataforma permite integrarse con LDAP de manera transparente para autenticación y autorización de usuarios. Para ello cuenta con los siguientes features:

1- Login a uno o múltiples dominios LDAP.

2- Creación, actualización y eliminación automática de usuarios.

3- Sincronización de grupos de usuario.

4- Habilitar LDAP mediante SSL.

5- Configurar N URLs para un mismo dominio LDAP.

Login a un UNICO dominio LDAP

Para habilitar el login integrado con el dominio LDAP es necesario configurar los siguientes parámetros del archivo "context.properties":

- ldap.host: la URL del servidor LDAP. Por ejemplo: "ldap://vmware-2003-2:389"

- ldap.base: El nombre base del dominio. Por ejemplo: "dc\=lat,dc\=ar" En este caso utilizamos la "\" para escapar el carácter "=".

Login a múltiples dominio LDAP

Para configurar el acceso a múltiples dominios LDAP es necesario agregar configuraciones al archivo “user-application-context.xml” que se encuentra en la carpeta “context” del sistema. Este archivo se utiliza para configuraciones más avanzadas, como configuración de conectores, múltiples dominios, componentes de integración y/o migración.

En este caso, los valores ingresados en el archivo “context.properties” de ldap dejan de tener validez y se utilizan aquellos configurados en este XML.


Para habilitar múltiples dominios es necesario agregar la siguiente configuración dentro del tag beans:

<bean id="domains" class="org.apache.commons.collections.map.LinkedMap">
  <constructor-arg>
    <map>
     <entry>
       <key><value>DOM1</value></key>
       <ref bean=" DOM1Domain"/>
     </entry>
     <entry>
       <key><value> DOM2</value></key>
       <ref bean=" DOM2Domain "/>
     </entry>
     <entry>
       <key><value> DOMN</value></key>
       <ref bean=" DOMNDomain "/>
     </entry>
   </map>
 </constructor-arg>
</bean>

Y luego por cada dominio agregado se debe agregar el siguiente bean:


<bean id="DOM1Domain" class="com.latintech.thuban.services.login.ldap.LdapDefinition">
  <property name="ldapHost" value="ldap://vmware-2003-2:389"/>
  <property name="ldapBase" value="dc=lat,dc=ar"/>
  <property name="ldapName" value="LAT"/>
  <property name="ldapUserAttributeId" value="sAMAccountName"/>
  <property name="ldapUserAttributeName" value="name"/>
  <property name="ldapUserAttributeDistinguishedName" value="distinguishedName"/>
  <property name="ldapUserAttributeMemberOf" value="memberOf"/>
  <property name="ldapUserAttributeMail" value=""/>
  <property name="ldapUserAttributeArea" value=""/>
  <property name="ldapUserAttributePhone" value=""/>
</bean>


Las propiedades de este bean no explicadas hasta el momento se explican en el siguiente apartado.

Creación, actualización y eliminación automática de usuarios

Para habilitar la creación, actualización y eliminación automática de usuarios es necesario establecer el parámetro "ldap.enableUserSync= true" en el archivo "context.properties". De esta manera, cuando un usuario que no se encuentra registrado en Thuban® realice un login contra el mismo (desde cualquiera de sus aplicaciones), si el usuario existe en el dominio, será creado en el sistema junto con la información asociada (nombre, apellido, email, sector, etc). Además del parámetro que mencionamos anteriormente, es necesario configurar los siguientes parámetros en el mismo archivo "context.properties":


- "ldap.name": Con el nombre del dominio al cual se conectan los usuarios. Por ejemplo LAT.

- "ldap.user.attributeId": El atributo LDAP que identifica el nombre de login del usuario. En active directory, el campo es "sAMAccountName".

- "ldap.user.attributeName": El atributo LDAP que identifica el nombre del usuario. En active directory, el campo es "name".

- "ldap.user.attributeDistinguishedName": El atributo LDAP que identifica unívocamente el usuario. En active directory, el campo es "distinguishedName".

- "ldap.user.attributeMemberOf": El atributo LDAP utilizado para relacionar usuarios con grupos. En active directory, el campo es "memberOf".

- "ldap.user.attributeEmail": El atributo LDAP utilizado para almacenar la dirección de correo electrónico de la persona. Este campo no es obligatorio para que la integración funcione.

- "ldap.user.attributeArea": El atributo LDAP utilizado para almacenar el sector al que pertenece la persona. Este campo no es obligatorio para que la integración funcione.

- "ldap.user.attributePhone": El atributo LDAP utilizado para almacenar el teléfono del usuario. Este campo no es obligatorio para que la integración funcione.


En el caso de que se trate de múltiples dominios dichas propiedades se establecen en el archivo user-application-context.xml.

De la misma manera que la creación, la actualización de datos del usuario y eliminación (deshabilitado) se realiza cada vez que el usuario ingresa en cualquiera de las aplicaciones.

Sincronización de grupos de usuario

La sincronización de grupos permite que la pertenencia de usuarios a grupos (perfiles de Thuban®) se realice automáticamente en base a los grupos a los cuales se encuentra asignado el usuario en LDAP. Cuando el usuario realiza un login a cualquiera de las aplicaciones, el sistema recupera los grupos a los cuales pertenece en LDAP y los sincroniza contra los grupos que tiene asignados en Thuban® (Siempre modificando la asignación de grupos en Thuban®, el LDAP es siempre de sólo lectura).


Para ello, cada grupo de Thuban® que se desea que se sincronice automáticamente debe estar marcado como grupo de active directory en Thuban® Admin. Los grupos que no estén marcados de esta manera no serán tenidos en cuenta por esta funcionalidad.


Para habilitar el login integrado con el dominio LDAP es necesario configurar los siguientes parámetros del archivo "context.properties":

- "ldap.enableGroupSync": Establecer el valor true.

- "ldap.rootGroup": Nombre del grupo raíz de LDAP al cual se agregan los grupos que deben sincronizarse.


En el caso de que se trate de múltiples dominios dichas propiedades se establecen en el archivo user-application-context.xml.

Habilitar LDAP mediante SSL

Para habilitar el uso de LDAP mediante SSL se requieren realizar las siguientes tareas:

1 – Incorporar el certificado que contiene la clave pública del servidor LDAP en el keystore de certificados de la Java Runtime Edition (CACERTS). El archivo cacerts se encuentra en:

“$JAVA_HOME\jre\lib\security\cacerts”


El certificado a importar debe ser solicitado al departamento que corresponda (Tecnología, Seguridad Informática, etc). Una forma más práctica de obtenerlo es exportando el mismo desde cualquier pc que se encuentre en el dominio (Solapa Contenido en las propiedades de Internet de Internet Explorer).

Para importar el certificado se utiliza el comando “keytool” de la JDK. Por ejemplo:

keytool –import –alias nombreAlias –file certificado.cer –keystore $JAVA_HOME\jre\lib\security\cacerts


2 – Configurar la URL de acceso a ldap en context.properties como ldaps://xxxxxx:636.

3 – Reiniciar el Servidor de Aplicaciones (o los contextos de las aplicaciones).

Configurar N URLs para un mismo dominio LDAP

Comúnmente los servidores LDAP se encuentran configurados en cluster por razones de disponibilidad y poseen múltiples URLs de acceso a los mismos. Para configurar múltiples URL para un servidor LDAP se deben agregar todas las posibles URLs separadas por pipe (“|”) en la propiedad “ldap.host” (tanto en el archivo context.properties como en el archivo user-application-context.xml).