[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