Integración LDAP

De Enciclopedia Colaborativa de la Comunidad Canaima

Tabla de contenidos

Justificación

La idea principal es dar acceso a diferentes miembros de la comunidad para agregar contenidos dentro de sitio de la proyecto, además que funcione como mecanismo simple de registro de los miembros al servidor de usuario LDAP.

Ficha técnica

  • Responsables: "Alejandro Garrido" <garridomota at gmail dot com, "Wainer Nelson" <wnelson at cnti dot gob dot ve>
  • Entorno de pruebas: Plone 3.3.5 con Instalador Unificado en CANAIMA GNU/Linux. Se instalo localmente un servidor LDAP, usando una copia del LDAP de Canaima

Caso de uso

Este caso de uso de LDAP con Plone esta basado en lo siguiente:

Requisitos previos

Primero que todo debes cumplir con las siguientes dependencias:

# aptitude install python-ldap libsasl2-dev libldap2-dev

Instalar y configurar productos LDAP en Plone

Se entiende que esta usando el modo de instalación del instalador unificado para Plone 3.3.5

Debe editar el archivo de Buildout con el usuario de esta instalación, para modo de la demostración se mostrará como un usuario normal, para esto ejecute el siguiente comando:

$ vim $HOME/Plone/zinstance/buildout.cfg

Luego se debe agregar los paquetes necesarios para habilitar el Cache en Plone, con el siguiente comando:

[buildout]
...
eggs =
    Plone
...
    plone.app.ldap < 1.3
    vs.genericsetup.ldap
...
zcml =
...
    plone.app.ldap
...
[instance]
...
zcml = 
...
    collective.genericsetup.ldap
...

Guarde los cambios y debe iniciar de nuevo el proceso de descargas e instalación de estos productos específicos, para esto ejecute el siguiente comando:

$ $HOME/Plone/zinstance/bin/buildout -vN

Al finalizar el proceso de instalación inicie la instancia del servicio de Zope, para esto ejecute el siguiente comando:

$ $HOME/Plone/zinstance/bin/instance fg

Habilitar producto en sitio Plone

Luego de realizar los pasos anteriores debe ir a Configuración del sitio > Productos Adicionales de su instancia Plone en http:/IP:PUERTO/NombreDeSitio/prefs_install_products_form y seleccione la casilla a la izquierda en el producto llamado LDAP support haga clic en el botón Instalar.

Si todo sale bien tiene habilitado los módulos para la instancia Plone.

Configurar LDAP con Plone

Debe ir a la Configuración del sitio están allí del lado izquierdo deben aparecer una columna con varias opciones, entonces desplace la página hacia abajo y casi al final debe aparecer Configuración de Productos Adicionales y allí hace clic en la opción llamada LDAP Connection.

Luego defina los valores en las pestañas Global settings', LDAP schema, LDAP servers y Caches.

Pestaña Global settings

  • El LDAP server type puede ser LDAP o Active Directory. We use the former.
  • El rDN attribute (relativo al distinguished name) es usado como la primera parte del DN para los usuarios inicialmente creados a través de Plone. Eso es muy comúnmente usado como el atributo usado por el ID del usuario. Nosotros optamos por usar el atributo "uid" aquí.
  • El User ID attribute da el atributo usado por los IDs de usuarios en Plone. Nosotros optamos por usar el usar el atributo "uid" aquí.
  • El Login name attribute es usado durante la autenticación. Es común usar el mismo atributo del ID del usuario. Otra ves, nosotros optamos por usar el usar el atributo "uid" aquí.
  • El campo LDAP object classes da la clase de objeto estructural de LDAP, y cualquier clases de adicionales (separadas por comas) aplicadas a los nuevos usuarios creados a través de Plone. Nosotros usamos pilotPerson,uidObject, las cuales significa que nosotros tendremos un simple objeto de usuario con un UID.
  • El Bind DN es el DN usado por Plone para acceder al repositorio LDAP. Nosotros usaremos el root DN, cn=admin,dc=canaima,dc=softwarelibre,dc=gob,dc=ve.
  • El Bind password es la contraseña listada debajo del valor "rootdn" (Bind DN) desde la configuración principal del slapd. Nosotros definimos esta contraseña en el valor "rootpw" archivo ubicado en /etc/ldap/slapd.conf, entonces coloque esa contraseña descrita allí en ese campo de texto.
  • El Base DN for users da la ubicación de los usuarios en el repositorio LDAP. Recordemos que hemos creado los usuarios, en la unidad organizativa (organizational unit LDAP) llamada Gente. Entonces, usted debe ingresar ou=Gente,dc=canaima,dc=softwarelibre,dc=gob,dc=ve aquí.
  • La opción Search scope for users define donde los usuarios serán directamente encontradas por debajo del OU solamente, o en una sub-unidad organizacional. Para nuestro caso, hay varios grupos o unidades organizacionales definidas en nuestro LDAP, asi que la opción subárbol es la opción más común.
  • El Base DN for groups le dice a Plone donde están los grupos a buscar en el repositorio. Aquí nosotros agregaremos ou=Grupos,dc=canaima,dc=softwarelibre,dc=gob,dc=ve.
  • La opción Search scope for groups es similar a la alcance de Search scope for users. Una vez más, elegimos subárbol.

Para finalizar haga clic en el botón Save.

Pestaña LDAP schema

En la pestaña LDAP schema, usted puede mapear los atributos de cuenta de usuario LDAP a las propiedades de miembros de Plone. Por defecto, el atributo uid es definido pero no mapeado a ninguna de las propiedades de Plone.

Esto hace disponible como un posible ID de usuario, nombre de inicio de sesión o un DN relativo definido en la pestaña Global settings. Similarmente la propiedad sn (surname) es definida, pero no es mapeada a una propiedad Plone. Nosotros no usaremos esto para nada, pero teniendo eso aquí significa que sera definido en el repositorio LDAP con un valor vacío cuando los usuarios son creados a través de Plone. Esto es necesario ya que la propiedad sn es obligatoria para la clase de objeto estructural pilotPerson que estamos utilizando. El atributo mail es mapeado con la propiedad email y el atributo mail es mapeado con la propiedad fullname. Estas dos ultimas propiedades son usadas frecuentemente en la interfaz de usuario de Plone y deberían siempre ser mapeados.

Eso es posible mezclar la propiedades de Plone estándar y las propiedades basadas en LDAP para el mismo usuario. Durante la búsqueda de un valor de la propiedad, el PluggableAuthService (PAS) observará en el tabla de propiedades disponibles "uno por uno", deteniéndose en la primera tabla en que se encuentre con la propiedad requerida. Con el producto LDAP support instalado, la tabla de propiedad LDAP de respaldo viene primero, seguido de la tabla de propiedades estándar de Plone. Para asignar una nueva propiedad, haga clic en Add property y rellene los datos solicitados.

Pestaña LDAP servers

Nosotros debemos configurar un o más servidores en la pestaña LDAP servers. Si múltiples servidores LDAP son definidos, ellos serán tomandos en cuenta en el orden en que aparecen cuando se intenta acceder al repositorio. Haga clic en el botón Add LDAP server e introduzca el nombre de host, tipo de conexión, y otras opciones como se solicita.

Ahora se puede probar la configuración de una sesión como usuario con administrador del LDAP o usuario de cuenta LDAP, con su respectiva contraseña. También debe ser capaz de crear usuarios y grupos en Plone, y hacer que aparezcan en el repositorio LDAP.

Pestaña Caches

Por último, usted puede definir los tiempos espera de captura en memoria caches. Si usted, como yo, quería entrada primero para ver si funciona, entonces usted llega a visitar la pestaña Caches para purgar todos las captura en memoria cache, después de hacer el mapeo de esquemas.

Los inicios de sesión se almacenan en caché según la configuración en la pestaña Caches, de modo que su LDAP no se busque constantemente.

Una vez que el mapa de esquema a lo anterior, su directorio de personas que aparecerán con los usuarios desde su repositorio LDAP, como se muestra. Si está configurando una compleja estructura de espacio, tenga en cuenta que puede mapear grupos desde su LDAP a roles locales en la pestaña Compartir desde una carpeta o cualquier tipo de contenido y debería funcionar bien.

Mapeado de Posix Groups con Roles Plone

Por definir...



  • Estatus de documento: Por concluir...

Ver también