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.

Crear una imagen de nuestros modelos en Django

Hace un tiempo conocí la posibilidad de hacer una imagen con tus modelos de tus apps Django, el proceso es bastante simple y sirve para que veas como estarían quedando relacionados tus apps. Comencemos entonces.

Lo primero es que debes tener instalado
pip install pygraphviz
Una vez instalado debes instalar django_extensions y colocarlo en settings.py, esto puedes hacerlo con el comando
pip install django_extensions

Ahora, simplemente ejecutas
./manage.py graph_models -a -g -o mis_modelos.png

Puedes ejecutar el comando especificando cuales apps mostrar en la imagen con el siguiente comando
./manage.py graph_models app1 app2 app3 -o mis_modelos.png
models

Taller Django Capitulo Ciudad Bolívar

django-logo-positive

Taller teórico-practico acerca del framework web Django. Al finalizar el taller el participante será capaz de crear una aplicación web usando el framework, así mismo conocer las diferentes ventajas de uso.

CONTENIDO DEL TALLER:
✔ Entendiendo como trabaja Django
✔ El modelo de datos
✔ El Shell de Django
✔ Vistas (Views)
✔ Plantillas (Templates) usando bootstrap
✔ Los formularios
✔ Los archivos estáticos (STATIC_URL)
✔ Gestión de usuarios
✔ Despliegue en el servidor web (virtualenv)

COSTO: 1150 Bs P/P

DURACIÓN: 16 Horas

FECHA: 19 y 20 de diciembre

Puedes apartar tu cupo con el 50% y el otro 50% el día del taller.

CERTIFICADO, MATERIAL DE APOYO, CARPETA INCLUIDOS

Información:
TLF: 0426-2795326
Correo: contacto@grupolab42.com.ve
TWITTER: @Lab42software

Para reservar su cupo deben hacer deposito o transferencia al numero de cuenta:
0105 0064 89 1064587348 del Banco Mercantil
A nombre de: LAB42 Software C.A.
RIF: J-402775199
Una vez hecho deben enviar sus datos junto al numero de voucher o transferencia al correo contacto@grupolab42.com.ve para confirmar su reserva.