Plone 3 + suport LDAP sobre Debian Lenny (5.0)

Objectiu:

L’objectiu d’aquest tutorial és la d’instal·lar el gestor de continguts (CMS) Plone 3 sobre un Debian 5.0 amb suport per a l’autenticació d’usuaris mitjançant un servidor LDAP.

El gestor de paquets de Debian porta tota la configuració necessària per instal·lar-ho mitjançant l’eina apt-get o aptitude, però després de provar-ho he trobat errors que m’han decantat cap a una instal·lació manual.

Instal·lació de l’entorn Zope/Plone:

El primer que ens farà falta és disposar d’un entorn Debian (5.0). La instal·lació d’aquest pas la podeu trobar en aquest tutorial: Debian Lenny 5.0

A continuació anirem a la pàgina de Plone i ens descarregarem la versió disponible per a Linux. En el moment d’escriure aquesta entrada la versió disponible era la 3.2.1r4. L’arxiu que ens interessa és el unified installer.

$ cd /usr/src
$ wget http://launchpad.net/plone/3.2/3.2.1/+download/Plone-3.2.1r4-UnifiedInstaller.tgz
$ tar zxf Plone-3.2.1r4-UnifiedInstaller.tgz
$ cd Plone-3.2.1r4-UnifiedInstaller

En aquest punt ens trobem en l’arrel del paquet d’instal·lació. En aquesta carpeta hi trobarem un arxiu que s’anomena README.txt. Aquest conté la informació necessària per dur a terme la instal·lació. Se’n recomana la lectura.

Veurem que Plone té tota una sèrie de requeriments que instal·larem mitjançant apt-get:

$ apt-get install build-essential libz1 libjpeg62 libjpeg-progs python2.4 python2.4-imaging python2.4-dev python-ldap libssl-dev zlib1g-dev libjpeg62-dev libreadline5-dev readline-common libxml2-dev wv xpdf

Un cop instal·lats els requeriments comprovarem que la instal·lació de python és correcta i que el modul ldap es pot importar:

$ /usr/bin/python2.4
Python 2.4.6 (#2, Dec 20 2008, 15:43:33)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ldap
>>> (CTRL+D)

Si la importació de ldap dona error s’haurà de repassar el proces d’instal·lació.

En aquest punt ja podem instal·lar Plone 3. Des de l’arrel del paquet descarregat fem:

$ ./install.sh --with-python=/usr/bin/python2.4 --password=admin standalone

En aquesta comanda especifiquem dos valors:

–with-python: aquesta opció li diu al Zope que utilitzi el python del sistema en comptes del que porta incorporat. Això és important ja que el mòdul ldap l’hem instal·lat via apt-get, si no ho posem Zope utilitzarà el seu propi python sense suport ldap.

–password: aquest paràmetre és totalment opcional, jo el poso per comoditat. Si no es posa la contrasenya es genera automàticament i s’emmagatzemarà en un arxiu a l’arrel del Zope.

Un cop finalitzat el procés ja disposem d’una instal·lació de Zope/Plone funcional. Podem arrencar la nostra instància amb:

$ /usr/local/Plone/zinstance/bin/plonectl start

En un moment podrem accedir via web a: http://ip_del_servidor:8080/Plone i veurem la nostra pàgina.

Configuració LDAP:

En aquest punt encara no disposem d’autenticació via LDAP dels usuaris. Com a molt podem entrar amb l’usuari admin creat a la instal·lació i prou. El suport LDAP per a Plone s’aconsegueix mitjançant un Product que podem descarregar de la plana de plone.org:

$ cd /usr/src
$ wget http://plone.org/products/ploneldap/releases/1.0/PloneLDAP-bundle-1.0.tar.gz
$ tar zxf PloneLDAP-bundle-1.0.tar.gz
$ mv LDAPMultiPlugins LDAPUserFolder PloneLDAP /usr/local/Plone/zinstance/products
$ /usr/local/Plone/zinstance/bin/plonectl restart

En aquest moment ja estan instal·lats els plugins per a LDAP a la nostra instància, només queda configurar-los. Per fer-ho anirem a la ZMI (Zope Management Interface http://ip_del_servidor:8080/Plone/manage) i anirem a /Plone/acl_users. En aquesta part de la configuració, a la part superior dreta hi ha un desplegable amb els plugins que podem afegir al sistema d’autenticació del Plone. Segons les nostres necessitats podem afegir el plugin Plone Active Directory Plugin o Plone Ldap Plugin si connectem amb un Active Directory de MS o amb un LDAP normal i corrent.

Un cop feta la sel·lecció accedirem a la pàgina de la configuració. En aquesta plana apareixen un munt de possibilitats que seran diferents per a cada instal·lació de LDAP pel que es difícil intentar cobrir-les totes. Simplement s’han d’emplenar els camps amb la informació del nostre LDAP.

NOTA: S’ha de prendre cura amb el paràmetre User Object Classes que no apareix en la pàgina de configuració inicial però sí després en la verificació de la configuració. Molt sovint l’autenticació falla per que aquest paràmetre, per defecte, cerca una classe que no existeix al DTI.

Ja gairebé està. Només falta seleccionar per a quins mòduls volem utilitzar el plugin LDAP (/Plone/acl_users/ID_LDAP). Evidentment Authentication estarà seleccionat, la resta depen de l’ús que en volguem fer.

Finalment s’ha d’ordenar l’accés als plugins (/Plone/acl_users/plugins). Per a cada un dels valors que apareixen en aquesta llista que haguem seleccionat com a mòdul a utilitzar amb LDAP, aquest s’hauria de posar el primer de la llista.

Un cop dut a terme aquest procés, i un cop reiniciat el servidor Zope/Plone ja hauriem de poder accedir amb usuaris del directori LDAP.

El plugin LDAP permet moltes més configuracions, com ara assignar rols per defecte a usuaris d’un grup, afegir usuaris o grups a l’LDAP… però tot això ja depen dels casos i es deixa a la discreció del lector/administrador.

Conclusió:

Si treballem en un entorn on tenim un directori LDAP disponible és molt recomanable instal·lar el plugin LDAP per evitar una gestió d’usuaris innecessària.

Documentació:

Tot i que la pàgina de Plone té una estructura una mica caòtica, és possible trobar molta informació útil. A part d’això, per a la pròpia gestió del Plone el llibre gratuït disponible per a descarrega a la pàgina de Plone A User’s Guide to Plone 3.0 és molt recomanable.