簡體   English   中英

Python ldap3閱讀器調用失敗

[英]Python ldap3 reader call fails

因此,我對ldap3的初次體驗並沒有按計划進行。 我不知道為什么這不起作用...

來自http://ldap3.readthedocs.io/abstraction.html的代碼示例

s = Server('server')
c = Connection(s, user = 'username', password = 'password')
query = 'Department: Accounting'  # explained in next paragraph
person_reader = Reader(c, person, 'o=test', query)
person_reader.search()

這似乎很簡單。 但是我的代碼在Server和Connection調用中工作正常,但在Reader調用中卻吹了大塊。 這是代碼片段:

query = 'department: Security Risk'  
person_reader = Reader(c, person, 'OU=All Businesses', query)

和丑陋的結果

AttributeError Traceback (most recent call last)
in ()
1 query = 'department: Security Risk'
----> 2 person_reader = Reader(c, person, 'OU=All Businesses', query)

C:\Users########\AppData\Local\Continuum\Anaconda3\lib\site-packages\ldap3\abstract\reader.py in init(self, connection, object_def, query, base, components_in_and, sub_tree, get_operational_attributes, controls)
79 self.base = base
80 self._components_in_and = components_in_and
---> 81 self.attributes = sorted([attr.name for attr in self._definition])
82 self.get_operational_attributes = get_operational_attributes
83 self.controls = controls

C:\Users##########\AppData\Local\Continuum\Anaconda3\lib\site-packages\ldap3\abstract\reader.py in (.0)
79 self.base = base
80 self._components_in_and = components_in_and
---> 81 self.attributes = sorted([attr.name for attr in self._definition])
82 self.get_operational_attributes = get_operational_attributes
83 self.controls = controls

AttributeError: 'str' object has no attribute 'name'

每個conda清單:

ldap3                     1.0.4                    py35_0`

我在這里想念什么?

Person()的第二個參數是:

定義:Reader實例使用的ObjectDef。

參考: http : //ldap3.readthedocs.io/abstraction.html

您必須創建一個ObjectDef來傳遞,這不是用戶ID。 這是應該讀取的對象類型的定義。 您可以像這樣使用它:

person = ObjectDef(['person','user'], conn)
r = Reader(conn, person, base, query)

除了完全合格的基本DN外,我沒有將第三個參數傳遞給Person的任何經驗。 因此,如果ou = test不是注冊的baseDn,則在您的LDAP(AD)實例中可能不起作用。

因此,在將所有內容扔到牆邊且沒有任何殘留物之后,我要做每一個不帶工具的開發人員所做的事情-從頭開始,並丟棄所有已告知您的內容。 解決方案是:

刪除用戶身份驗證並匿名進行呼叫

是的,甚至以為我必須跳過安全環才能訪問該呼叫,因此無需身份驗證即可使用它。 是的,我們會很高興繼續前進。 不要沉迷於此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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