J'essaie de me connecter à un répertoire actif en utilisant la bibliothèque Python-ldap. J'ai le code bind suivant:Python-ldap peut se connecter au répertoire actif à partir de la console python mais pas de l'application
def bind_connection():
ldap_password = *******
ldap_url = 'ldaps://*******:636
ldap_login = "CN=***, CN=Users, DC=***, DC=local"
ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)
l = ldap.initialize(ldap_url)
l.set_option(ldap.OPT_REFERRALS, 0)
l.set_option(ldap.OPT_PROTOCOL_VERSION, 3)
l.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)
l.set_option(ldap.OPT_X_TLS_DEMAND, True)
l.set_option(ldap.OPT_DEBUG_LEVEL, 255)
l.simple_bind_s(ldap_login, ldap_password)
return l
Importation et l'exécution de ce dans la console python fonctionne très bien. Je peux rechercher, créer des utilisateurs, etc. avec cette liaison.
Essayer d'utiliser cette classe dans une application retourne Django:
SERVER_DOWN: {'info': 'SSLHandshake() failed: misc. bad certificate (-9825)', 'errno': 2, 'desc': "Can't contact LDAP server"}
Tout le code est exécuté à partir du même environnement de développement. Pourquoi cela fonctionnerait-il dans un cas et pas dans l'autre?
Vous pouvez définir le chemin d'accès du fichier de clés certifiées dans le code. Reportez-vous à: https://stackoverflow.com/questions/29296279/python-and-ldap-via-ssl – Roshith