Instalar phpLDAPadmin

phpLDAPadmin

Introducción

phpLDAPadmin es un gestor web para un servidor de ldap.

Instalación

Manual

La instalación es sencilla. Hay que bajarselo, descomprimirlo, ponerlo ene l apache y configurar los datos para que acceda a nuestro servidor de ldap:

>> wget http://nfsi.dl.sourceforge.net/sourceforge/phpldapadmin/phpldapadmin-1.1.0.7.tar.gz
>> tar -zxvf phpldapadmin-1.1.0.7.tar.gz
>> sudo cp -R phpldapadmin-1.1.0.7 /var/www/html/phpldapadmin
>> sudo cp /var/www/html/phpldapadmin/config/config.php.example /var/www/html/phpldapadmin/config/config.php

Automatica

Necesitaremos tener un servidor web con php y un servidor mysql con una base de datos para el phpldapadmin. Para instalarlo en ubuntu, desde los repositorios:

>> sudo aptitude install phpldapadmin

Indicarle los datos de conexión

Editamos el fichero y nos aseguramos que rellenamos los siguientes campos que son los minimos:

$i=0;
$ldapservers = new LDAPServers;
...
$ldapservers->SetValue($i,'server','name','NOMBRE_SERVIDOR');
...
$ldapservers->SetValue($i,'server','host','IP_DEL_SERVIDOR_DONDE_ESTA_EL_LDAP');
...
$ldapservers->SetValue($i,'server','port','389');
...
$ldapservers->SetValue($i,'server','base',array('RAIZ_BASE_DE_NUESTRO_LDAP'));

Ya tendria que funcionar el phpLDAPadmin.

Configuración

Cambiar la forma de autentificarse

Por defecto la forma que usa para autentificarse con el servidor de ldap es manual (tenemos que introducir un usuario y una contraseña), pero podemos ponerla en automática. Para usar una u otra tendremos que tener el fichero de configuración como nos indica en cada apartado:

Automáticamente

Para que se conecte automáticamente al servidor de ldap, con un usuario cn=root,dc=example,c=es y contraseña passuser, tendremos que usar las siguientes líneas en el fichero de configuración (/var/www/html/phpldapadmin/config/config.php):

$ldapservers->SetValue($i,'server','auth_type','config');
$ldapservers->SetValue($i,'login','dn','cn=root,dc=example,c=es');
$ldapservers->SetValue($i,'login','pass','passuser');
$ldapservers->SetValue($i,'server','tls',false);

Manual

Para que nos pida que introduzcamos un usuario y clave del ldap para conectarnos al servidor, usaremos las siguientes líneas (recalcar que las variables dn y pass de login, tenemos que dejarlas vacías) en el fichero de configuración (/var/www/html/phpldapadmin/config/config.php):

$ldapservers->SetValue($i,'server','auth_type','cookie');
$ldapservers->SetValue($i,'login','dn','');
$ldapservers->SetValue($i,'login','pass','');
$ldapservers->SetValue($i,'server','tls',false);
$config->custom->session['blowfish'] = "cadena";

La cadena blowfish puede ser cualquier cadena (se usa para encriptar la cookie).

 Solo queremos que muestre unos determinados campos

Si lo que queremos es que no muestre todos los atributos tendremos que editar el fichero /var/www/html/phpldapadmin/config/config.php y buscar el vector hidden_attrs, descomentarlo si está comentado y poner los campos que no queramos que se muestren. Por ejemplo: Si no queremos que se muestren los campos uidNumber, gidNumber, homeDirectory y objectClass tendremos que poner la siguiente línea:

$hidden_attrs = array(
   'uidNumber','gidNumber', 'homeDirectory', 'objectClass');

Guardamos el fichero y ya esta.

Cambiar los nombres que se muestran de cada parametro

Alguien que no tiene conocimientos de ldap cuando vea que hay que rellenar el parámetro l (ciudad) puede que no sepa que significa. Phpldapadmin tiene la posibilidad de definir el nombre que se lista para cada parámetro. Para ello tendremos que editar el fichero /var/www/html/phpldapadmin/config/config.php y añadir en el vector friendly_attrs los campos que queremos renombrar en la salida. Por ejemplo: si queremos que los campos l, st y sn aparezcan como Ciudad, Localidad y Apellidos tendremos que añadir als siguientes líneas:

$friendly_attrs = array();

$friendly_attrs['l']                      = 'Ciudad';
$friendly_attrs['st']                     = 'Localidad';
$friendly_attrs['sn']                     = 'Apellidos';

Solo nos quedará guardar los cambios y cerrar el archivo.

Definir el orden en que se listan los parametros

Hay una opcion (attrs_display_order) para definir el orden en el que se muestran los parámetros. Por ejemplo: si queremos que primero nos pregunte por el nombre, luego por los apellidos y por último el nombre completo, tendríamos que añadir la siguiente variable al archivo /var/www/html/phpldapadmin/config/config.php:

  $attrs_display_order = array(
   'sn',
   'cn',
   'displayName'
  );

Los parámetros que no pongamos en este vector  se mostraran despues de los que hallamos indiado y en orden alfabético. Guardamos el fichero para mantener los cambios.

Parametros de solo lectura

Si queremosq eu ciertos parametros no se puedan modificar, podemos hacerlo con el parámetro read_only_attrs. Por ejemplo: si queremos que el campo dni no se pueda modificar, tendremos que añadir el siguiente vector al archivo /var/www/html/phpldapadmin/config/config.php:

$read_only_attrs = array( 'dni' );

Guardamos y listo.

Entrar solo con el nombre de un parámetro único

Por defecto para autentificarnos en phpLDAPadmin tenemos que escribir el dn de nuestro usuario. El dn es el que identifica a un objeto y tiene una forma parecida a este ejemplo uid=manolo,ou=personas,o=tuempresa,c=es. Poner toda esta cadena para autentificarte no es nada comodo, pero podemos sustituir el nombre que el usuario utiliza para autentificarse por uno que sea único y más sencillo de recordar, por ejemplo el uid. Para ello tendremos que editar el fichero /var/www/html/phpldapadmin/config/config.php y descomentar y modificar la siguiente línea:

$ldapservers->SetValue($i,'login','attr','uid');

Guardamos los cambios y ya esta.

Elegir el idioma

Para indicar que lo muestre en español (es) tendremos que editar el fichero /var/www/html/phpldapadmin/config/config.php y editar la siguiente línea:

$config->custom->appearance['language'] = 'es';

Otros idiomas serian: 'ct', 'de', 'en', 'es', 'fr', 'it', 'nl', y 'ru'.

Activar el log

Para activar el log y que escriba en un fichero /tmp/pla_debug.log tendremos que editar el fichero /var/www/html/phpldapadmin/config/config.php y añadir o descomentar estas líneas:

$config->custom->debug['level'] = 255;
$config->custom->debug['syslog'] = true;
$config->custom->debug['file'] = '/tmp/pla_debug.log';

Errores

Límite de memoria de php bajo

Al instalarlo, cuando accedemos a la url nos aparece el siguiente mensaje de error:

Memory Limit low.
Your php memory limit is low - currently 16M

Solución

Tendremos que editar el fichero /etc/php.ini y buscar la siguiente línea:

memory_limit = 16M

Cambiamos el 16 por 32. Guardamos el fichero y reiniciamos el apache:

>> sudo /etc/init.d/httpd restart

Comentarios

Doc, te pasaste. Excelente tutorial, justo lo que andaba buscando. Me acabo de suscribir. Saludos desde Perú.

Bueno esta excelente el tutorial solo hace falta donde y como asignar contraseña de administrador me falta solo eso.....gracias

Hola Sergio,

No se si te referiras a como cambiar la contraseña del root del mysql, si es eso aquí tienes como cambiar la contraseña del usuario root de mysql.

Saludos

Hola

Tengo un inconveniente, instale el ldap y lueho el phpldapadmin, y cuando lo abro en el navegador me sale lo siguiente:

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /usr/share/phpldapadmin/lib/server_functions.php on line 16

Tengo hecho el link al documentroot del apache, como asi tambien copie el directorio phpldapadmin al raiz web y nada.-

Alguna idea?

gracias

Hola Fabian,

¿Que version de php, mysql y phpldapadmin estas usando?

Saludos

hola: buen tuto, solo tengo una pregunta, existe la forma de que el usuario solo pueda ver su nivel en el arbol en que se encuentra sin tener acceso a los demas niveles ?

 

saludos y grax por el tutorial

Hola demonazz,

Con ldap puedes decirle que ciertos campos solo los puede ver el propietario de estos. Esto se hace a través de ACL (access control list). Aunque creo que en el phpLDAPadmin te saldran todo el arbol, pero dentro de cada uno no te saldran los datos que no quieras que vean de los demás.

Siento no serte de más ayuda.

Saludos

grax, ya estoy checando los acl, pero ahora tengo otro problema cuando quiero agregar un atributo me sale el siguiente error:

Error:Array to string conversion (E_NOTICE)

File:

add_attr_form.php line 27, caller cmd.php

Versions:

PLA: 1.1.0.4, PHP: 5.2.4-2ubuntu5.10, SAPI: apache2handler

Web server:

Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.4.6 mod_R/1.1.8 R/2.6.2 PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch

Error:

Array to string conversion (E_NOTICE)

File:

add_attr_form.php line 28, caller cmd.php

Versions:

PLA: 1.1.0.4, PHP: 5.2.4-2ubuntu5.10, SAPI: apache2handler

Web server:

Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.4.6 mod_R/1.1.8 R/2.6.2 PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch

Error:

Array to string conversion (E_NOTICE)

File:

add_attr_form.php line 31, caller cmd.php

Versions:

PLA: 1.1.0.4, PHP: 5.2.4-2ubuntu5.10, SAPI: apache2handler

Web server:

Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.4.6 mod_R/1.1.8 R/2.6.2 PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch

tendras alguna respuesta para esto.

saludos

Hola a Todos. Tengo un pequeño problema intento entrar a mi phpldapadmin como administardor y me dice contraseña es incorrecta, ya la he cambiado varias veces con el comando slappasswd, y tambien he copiado la clave encriptada que me da en el slapd.conf pero sigo sin poder entrar. Alguien me puede decir cual es mi error??? Gracias

Hola, disculpa la pregunta, es posible usar php ldap admin con mysql para crear usuarios desde una pagina web (php por ejemplo), soynuevo en esto y la verdad me surgio la duda, si es asi donde se encuentran las fuentes de informacion y donde puedo conseguir algunos ejemplos, gracias

Simplemente ¡perfecto!

Un saludo.

Hola, he tenido el mismo problema a fecha de hoy, unos cuantos días despues de tu post, pero escribo dejando ayuda a los proximos, simplemente eliminé la ruta /etc/openldap/slapd.d y asunto solucionado, ya pude hacer consulta por línea de comandos y pude logearme por web, ahora tengo otro impase y es que me dice que la base no se puede crear con PLA, y en eso estoy viendo de que se trata. Saludos.

el problema que tengo es que estoy configurando un parfil de usuario para LDAP para que los usuarios puedan camviar las contraseñas y cuando y el perfil de uduario no se conecta a las a la base  de datos del ldap que puedo hacer    soy  nuevo y todo lo estoy haciendo por  via wep no me gusta mucho los codigos 

oe el problema que tengo con el ldap es que lo estoy configurando para usuarios de correo , navegacion (Proxy), Jabber asta hay todo esta vien pero quiero que los usiarios pueda canviar sus contraseñas cada ves que quieran (es desir crear un perfil de usuario)  como lo puedo hacer

hola, muy buena guia de instalacion. Necesitaria un link a donde pudiese buscar documenacion hacerca de la aplicacion para indagar mas en las prestaciones que brinda. Saludos

Añadir nuevo comentario