簡體   English   中英

Python-ldap可以從python控制台連接到活動目錄,但不能連接到應用程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM