[Python-es] autenticación LDAP
Gustavo Hernández
gustavo.hernandez en etecsa.cu
Mie Jul 28 23:12:28 CEST 2010
Saludos a todos:
Es posible que el asunto, ya haya sido tratado en la lista, mi problema
es que supuestamente el simple_bind(usuario,password), debe validar la
existencia del usuario y el PASSWORD, pero no es así en mi caso. No
obstante en el proceso del search, si el nombre de usuario fue correcto
o sea existe, lo encuentra y es validado el servicio (en este caso
navegacion), en resumen puedo poner un usuario válido con cualquier
password, que lo encuentra sin problemas.
Alguna sugerencia?
Gracias por adelantado
Nota: adjunto parte del código. Se conecta sin problemas
try:
l = ldap.initialize(self.servidor_url)
l.protocol_version = ldap.VERSION2
except ldap.LDAPError, e:
self.ui.mLogin.setText ('Error en Servidor ')
self.ui.eUsuario.setFocus()
return
baseDN = "ou=people, dc=myorg, dc=tm"
searchScope = ldap.SCOPE_SUBTREE
retrieveAttributes = None
searchFilter =
"(&(uid="+str(self.ui.eUsuario.text()+")(servicio=navegacion))")
# searchFilter = "(&(uid="+str(self.usuario+"))")
try:
l.simple_bind(self.usuario,self.contrasena)
except:
self.ui.mLogin.setText ('NO EXISTE USUARIO')
self.ui.eUsuario.setFocus()
return
try:
ldap_result_id = l.search(baseDN,
searchScope,searchFilter,retrieveAttributes)
result_set = []
result = 0
while 1:
result_type, result_data = l.result(ldap_result_id, 0)
if (len(result_data) == 0):
self.ui.mLogin.setText ('SIN ACCESO AL
SERVICIO')
self.ui.eUsuario.setFocus()
break
else:
if result_type == ldap.RES_SEARCH_ENTRY:
result_set.append(result_data)
result = 1
break
except ldap.LDAPError, e:
self.ui.mLogin.setText ('Error de lectura en LDAP')
self.ui.eUsuario.setFocus()
return
------------ próxima parte ------------
An embedded and charset-unspecified text was scrubbed...
Name: no disponible
URL: <http://mail.python.org/pipermail/python-es/attachments/20100728/3ae63b2e/attachment.ksh>
Más información sobre la lista de distribución Python-es