[英]python-ldap and Microsoft Active Directory: connect and delete user
[英]Python-ldap can connect to active directory from python console but not application
我正在嘗試使用Python-ldap庫連接到活動目錄。 我有以下綁定代碼:
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
在python控制台中導入並運行此程序效果很好。 我可以使用此綁定搜索,創建用戶等。
嘗試在Django應用程序中使用此類會返回:
SERVER_DOWN: {'info': 'SSLHandshake() failed: misc. bad certificate (-9825)', 'errno': 2, 'desc': "Can't contact LDAP server"}
所有代碼都在同一開發環境中運行。 為什么它會在一種情況下起作用而不在另一種情況下起作用?
能夠弄清楚。 我在python-ldap庫隨附的演示中找到了這一點。
# Force libldap to create a new SSL context (must be last TLS option!)
l.set_option(ldap.OPT_X_TLS_NEWCTX,0)
必須創建一個新的SSL上下文,並且該選項可以做到這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.