validación centralizada con ldap y php -...

22
Validación centralizada con LDAP y PHP Virginia Villanueva Velásquez

Upload: vuongkiet

Post on 05-Feb-2018

221 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Validación centralizada con LDAP y PHP - TUXPUCdownloads.tuxpuc.pucp.edu.pe/.../LW2007-LDAP_PHP.pdf · Validación centralizada con LDAP y PHP ... Características de un servidor

Validación centralizada con LDAP y PHP

Virginia Villanueva Velásquez

Page 2: Validación centralizada con LDAP y PHP - TUXPUCdownloads.tuxpuc.pucp.edu.pe/.../LW2007-LDAP_PHP.pdf · Validación centralizada con LDAP y PHP ... Características de un servidor

LDAP (Lightweight Directory Access Protocol)

Page 3: Validación centralizada con LDAP y PHP - TUXPUCdownloads.tuxpuc.pucp.edu.pe/.../LW2007-LDAP_PHP.pdf · Validación centralizada con LDAP y PHP ... Características de un servidor

Descripción

Protocolo de tipo cliente-servidor para acceder a un servicio de directorio.

Basado en el estándar X.500. Soporta TCP/IP. Necesario para el acceso a

Internet. Permite centralizar toda la información en un

solo lugar.

Page 4: Validación centralizada con LDAP y PHP - TUXPUCdownloads.tuxpuc.pucp.edu.pe/.../LW2007-LDAP_PHP.pdf · Validación centralizada con LDAP y PHP ... Características de un servidor

Características de un directorio LDAP

Es una clase especial de base de datos. Contiene información estructurada en forma

de árbol. Se realizan lecturas mas que escrituras. Proporcionan una respuesta rápida.

Page 5: Validación centralizada con LDAP y PHP - TUXPUCdownloads.tuxpuc.pucp.edu.pe/.../LW2007-LDAP_PHP.pdf · Validación centralizada con LDAP y PHP ... Características de un servidor

Muy rápido en la lectura de registros Fácil integración

Permite replicar el servidor de forma

sencilla y económica

Dispone de modelos de

nombres globales

Funciona sobre TCP/IP y SSL

Usa un sistema jerárquico de

almacenamiento de información

Mayoría de aplicaciones

tienen soporte para LDAP

Fáciles de instalar, mantener

y automatizar a nivel de servidor

Permite atributos multi-valor

LDAP

Características de un servidor LDAP

Page 6: Validación centralizada con LDAP y PHP - TUXPUCdownloads.tuxpuc.pucp.edu.pe/.../LW2007-LDAP_PHP.pdf · Validación centralizada con LDAP y PHP ... Características de un servidor

Usos Prácticos

- Directorios de información

- Sistemas de autenticación/autorización centralizada

- Sistemas de correo electrónico

- Sistemas de alojamiento de páginas web y FTP - Servidores de certificados públicos y llaves de seguridad

- Autenticación única ó “single sign-on” para la personalización de aplicaciones

- Perfiles de usuarios centralizados.

- Libretas de direcciones compartidas

LDAP

Page 7: Validación centralizada con LDAP y PHP - TUXPUCdownloads.tuxpuc.pucp.edu.pe/.../LW2007-LDAP_PHP.pdf · Validación centralizada con LDAP y PHP ... Características de un servidor

Definición de términos:

Es una colección de atributos que tienen un único y global Nombre Distintivo (DN)

Se utiliza para referirse a una entrada sin ambigüedades

Administración de LDAP

Entradas

DN

Page 8: Validación centralizada con LDAP y PHP - TUXPUCdownloads.tuxpuc.pucp.edu.pe/.../LW2007-LDAP_PHP.pdf · Validación centralizada con LDAP y PHP ... Características de un servidor

Son datos de un directorio y se presentan en pares acompañados de su valor

Atributos

Formato que se usa para Importar y exportar informaciónDe directorios entre servidores.Por sus siglas: LDAP DIRECTORY INTERCHANGE FORMAT

La colección de atributos que pueden usarse para definir una entrada

LDIF

Objetos

Administración de LDAP

Page 9: Validación centralizada con LDAP y PHP - TUXPUCdownloads.tuxpuc.pucp.edu.pe/.../LW2007-LDAP_PHP.pdf · Validación centralizada con LDAP y PHP ... Características de un servidor

Cómo se guarda la información

Similar a la estructura de directorios de los discos duros. Referencia de un archivo en un subdirectorio: /usr/local/misapps/docs

    Equivalencia en LDAP: "distinguished name" abreviado como "dn"

Un ejemplo de dn: dn: uid=jperez,ou=usuario,dc=ejemplo,dc=com

Page 10: Validación centralizada con LDAP y PHP - TUXPUCdownloads.tuxpuc.pucp.edu.pe/.../LW2007-LDAP_PHP.pdf · Validación centralizada con LDAP y PHP ... Características de un servidor

dc=com

ou=grupoou= usuario

dc=ejemplo

uid=jperez uid=cmedina cn=admin

dn: uid=jperez,ou=usuario,dc=ejemplo,dc=com

usr

local

miapps

docs

/usr/local/misapps/docs

Page 11: Validación centralizada con LDAP y PHP - TUXPUCdownloads.tuxpuc.pucp.edu.pe/.../LW2007-LDAP_PHP.pdf · Validación centralizada con LDAP y PHP ... Características de un servidor

Servidores LDAP

LDAP

Page 12: Validación centralizada con LDAP y PHP - TUXPUCdownloads.tuxpuc.pucp.edu.pe/.../LW2007-LDAP_PHP.pdf · Validación centralizada con LDAP y PHP ... Características de un servidor

OpenLDAP

Page 13: Validación centralizada con LDAP y PHP - TUXPUCdownloads.tuxpuc.pucp.edu.pe/.../LW2007-LDAP_PHP.pdf · Validación centralizada con LDAP y PHP ... Características de un servidor

Descripción

Implementación libre del protocolo LDAP

Disponible en la mayoría de las distribuciones de GNU/Linux

OpenLDAP se compone de varias partes:

slapd: El servidor LDAP. slurpd: El servidor de replicación.

Page 14: Validación centralizada con LDAP y PHP - TUXPUCdownloads.tuxpuc.pucp.edu.pe/.../LW2007-LDAP_PHP.pdf · Validación centralizada con LDAP y PHP ... Características de un servidor

Requisitos para la instalación

Sistemas Operativos: - Apple Mac OS X- Linux: Debian, RedHat, Suse, Fedora, Centos, …- FreeBSD- IBM AIX - Microsoft Windows 2000/NT- NetBSD- Solaris

Page 15: Validación centralizada con LDAP y PHP - TUXPUCdownloads.tuxpuc.pucp.edu.pe/.../LW2007-LDAP_PHP.pdf · Validación centralizada con LDAP y PHP ... Características de un servidor

Paquetes

OPENLDAP

OPENLDAP-CLIENTS

OPENLDAP-SERVERS

Page 16: Validación centralizada con LDAP y PHP - TUXPUCdownloads.tuxpuc.pucp.edu.pe/.../LW2007-LDAP_PHP.pdf · Validación centralizada con LDAP y PHP ... Características de un servidor

Configuración Básica

Parámetros fundamentales de /etc/openldap/slapd.conf

1. Sufijo: Base o raiz del directoriosuffix "dc=admon, dc=com"

2. Directorio de la base de datos:directory /var/lib/ldap

3. Cuenta del administrador: rootdn "cn=root, dc=admon, dc=com“

Page 17: Validación centralizada con LDAP y PHP - TUXPUCdownloads.tuxpuc.pucp.edu.pe/.../LW2007-LDAP_PHP.pdf · Validación centralizada con LDAP y PHP ... Características de un servidor

4. Contraseña del administradorrootpw <CONTRASEÑA>

5. Niveles de accesoaccess to dn=".*,ou=People,dc=admon,dc=com" attr=userPassword by self write by dn="cn=root,dc=admon,dc=com" write by * auth

Configuración Básica

Page 18: Validación centralizada con LDAP y PHP - TUXPUCdownloads.tuxpuc.pucp.edu.pe/.../LW2007-LDAP_PHP.pdf · Validación centralizada con LDAP y PHP ... Características de un servidor

LDAP y PHP

Page 19: Validación centralizada con LDAP y PHP - TUXPUCdownloads.tuxpuc.pucp.edu.pe/.../LW2007-LDAP_PHP.pdf · Validación centralizada con LDAP y PHP ... Características de un servidor

Funciones principales

1. ldap_connect() : Inicializan los parámetros de conexión2. ldap_bind() : Realiza la autenticación.3. ldap_modify() : Modifica el valor de los atributos4. ldap_mod_add() : Agrega atributos5. ldap_mod_del() : Elimina atributos6. ldap_mod_replace() : Reemplaza valores de atributos7. ldap_add() : Agrega objetos al directorio.8. ldap_compare() : Verificar pertenencia de atributos.9. ldap_search() : Busca en un árbol LDAP

Page 20: Validación centralizada con LDAP y PHP - TUXPUCdownloads.tuxpuc.pucp.edu.pe/.../LW2007-LDAP_PHP.pdf · Validación centralizada con LDAP y PHP ... Características de un servidor

Conexión desde php $servidorLdap = “ejemplo.com”;  $puertoLdap  = “389”;   

$dnManager = “cn=Manager, dc=ejemplo, dc=com”;

$passManager = “secreto”;$usuario = “prueba”;$passUsuario = “pass”;          $ds = ldap_connect($servidor_ldap, $puerto_ldap);

$ r= ldap_bind($ds,$dnManager,"$passManager");

Page 21: Validación centralizada con LDAP y PHP - TUXPUCdownloads.tuxpuc.pucp.edu.pe/.../LW2007-LDAP_PHP.pdf · Validación centralizada con LDAP y PHP ... Características de un servidor

//Buscamos al usuario con ese código $sr=ldap_search($ds, "ou=usuario,dc=ejemplo,dc=com", "uid=prueba");

$datosldap = ldap_get_entries($ds, $sr);

$dn = $datosldap[$i]["dn"];

$r=ldap_compare($ds,$dn,” userPassword”, $pass);

Page 22: Validación centralizada con LDAP y PHP - TUXPUCdownloads.tuxpuc.pucp.edu.pe/.../LW2007-LDAP_PHP.pdf · Validación centralizada con LDAP y PHP ... Características de un servidor

if ($r === -1) { $msg = “Error datos"; //Contraseña incorrecta } elseif ($r === true) { $datos[0]= $datosldap[$i]["cn"][0]; $datos[1]= $ datosldap[$i]["givenname"][0]; $datos[2]= $ datosldap[$i][“sn"][0]; $datos[4]= $ datosldap[$i]["mail"][0]; }