Tengo problemas con el módulo de autenticación de LDAP django-auth-ldap. Estoy utilizando el ejemplo de configuración de este sitio: http://packages.python.org/django-auth-ldap/Crear usuarios en LDAP utilizando Django
me gustaría hacer dos cosas:
1) autentificar contra LDAP: Por el momento, mi base de datos LDAP está vacía, No añadí cualquier cosa, de hecho, no sé cómo hacerlo. Sin embargo, aún puedo iniciar sesión en mi sitio basado en django con mis inicios de sesión/contraseñas anteriores almacenados en mi base de datos django. ¿Porqué es eso? En caso de no ser ignorado, ¿no debería ocurrir el proceso de inicio de sesión con el usuario/contraseñas LDAP? En otras palabras, si mi base de datos LDAP está vacía, ¿no deberían fallar todos mis inicios de sesión? Sin embargo, no es así, tengo la impresión de que django ignora por completo el módulo django-auth-ldap.
2) Sincronice LDAP con django (y no al revés) No quiero usar una base de datos de usuario existente para autenticar en contra. Quiero poder crear nuevos usuarios en Django y propagar estos usuarios a LDAP para que puedan ser compartidos por otros servicios, en mi caso, un servidor de Openfire. ¿Cómo se hace eso con django-auth-ldap?
Aquí es el copiar/pegar de mi configuración:
# Baseline configuration.
AUTH_LDAP_SERVER_URI = "127.0.0.1"
AUTH_LDAP_BIND_DN = "cn=admin,dc=nodomain"
AUTH_LDAP_BIND_PASSWORD = "admin"
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=users,dc=nodomain",
ldap.SCOPE_SUBTREE, "(uid=%(user)s)")
# Set up the basic group parameters.
AUTH_LDAP_GROUP_SEARCH = LDAPSearch("ou=django,ou=groups,dc=nodomain",
ldap.SCOPE_SUBTREE, "(objectClass=groupOfNames)"
)
AUTH_LDAP_GROUP_TYPE = GroupOfNamesType(name_attr="cn")
# Only users in this group can log in.
AUTH_LDAP_REQUIRE_GROUP = "cn=enabled,ou=django,ou=groups,dc=nodomain"
# Populate the Django user from the LDAP directory.
AUTH_LDAP_USER_ATTR_MAP = {
"first_name": "givenName",
"last_name": "sn",
"email": "mail"
}
AUTH_LDAP_PROFILE_ATTR_MAP = {
"employee_number": "employeeNumber"
}
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
"is_active": "cn=active,ou=django,ou=groups,dc=nodomain",
"is_staff": "cn=staff,ou=django,ou=groups,dc=nodomain",
"is_superuser": "cn=superuser,ou=django,ou=groups,dc=nodomain"
}
AUTH_LDAP_ALWAYS_UPDATE_USER = True
AUTH_LDAP_FIND_GROUP_PERMS = True
AUTH_LDAP_CACHE_GROUPS = True
AUTH_LDAP_GROUP_CACHE_TIMEOUT = 3600
# Keep ModelBackend around for per-user permissions and maybe a local
# superuser.
AUTHENTICATION_BACKENDS = (
'django_auth_ldap.backend.LDAPBackend',
'django.contrib.auth.backends.ModelBackend',
)
Lo siento, no saben mucho sobre LDAP, acabo de instalar esta mañana así que mi pregunta puede sonar ingenuo. Solo necesito una base de usuarios centralizada que pueda actualizar y compartir entre varios servidores.
Muchas gracias por su ayuda.