DJANGO + LDAP


Saludos, muchos quieren conectar su aplicación hecha con Django a un servidor LDAP usando el backend de Django es bastante simple, comencemos con un ejemplo sencillo, luego vamos ampliando los conocimientos y haciendo muchas más cosas con él.

Es necesario, previamente haber instalado python-ldap, en entornos basados en Debian/Ubuntu para poder instalarlo se debe ejecutar lo siguiente:
apt-get install libsasl2-dev python-dev libldap2-dev libssl-dev

Luego hay que instalar django-auth-ldap, para ello desde nuestro entorno virtual ejecutamos
pip install django-auth-ldap

En primer lugar modificamos nuestro settings.py y agregamos lo siguiente.
import ldap

AUTHENTICATION_BACKENDS = (
‘django_auth_ldap.backend.LDAPBackend’,
‘django.contrib.auth.backends.ModelBackend’,
)

AUTH_LDAP_SERVER_URI = ‘ldap://ldapserver’

AUTH_LDAP_BIND_DN = “cn=Users,dc=domain,dc=com”
AUTH_LDAP_BIND_PASSWORD = “password”
AUTH_LDAP_USER_DN_TEMPLATE = “cn=%(user)s,ou=People,dc=domain,dc=com”

AUTH_LDAP_CONNECTION_OPTIONS = {
ldap.OPT_REFERRALS: 0
}

Explicamos un poco las lineas:

AUTH_LDAP_SERVER_URI: Es la ruta al servidor LDAP, si esta en el local, colocar (localhost)
AUTH_LDAP_BIND_DN: Es el rootdn del servidor LDAP
AUTH_LDAP_BIND_PASSWORD: Lógicamente es el password del usuario “Manager” o root del LDAP, o uno que tenga permisos para revisar todo el roster.
AUTH_LDAP_USER_DN_TEMPLATE: Es la ruta donde está el roster del LDAP, nótese, que con cn=%(user)s" estamos buscando todos los usuarios dentro de ou=People

Con está configuración puedes hacer el login de tu aplicación contra el servidor LDAP, si deseas mostrar en el template datos referentes a los usuarios simplemente debemos ejecutar en el settings.py lo siguiente:
AUTH_LDAP_USER_ATTR_MAP = {"first_name": "givenName", "email": "mail", "username": "sn"}

Con esto estamos mostrando que la variable first_name del auth_user va a ser equivalente a givenName del LDAP, email será mail y username será el sn.

Todo va a depender de como este organizado tu directorio en el servidor LDAP.

Espero que les ayude, como siempre agradezco sus comentarios y/o sugerencias.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s