針對 Active Directory 的 ldapsearch 身份驗證失敗 + 搜尋參數錯誤
我正在使用
ldapsearch
OpenLDAP 工具在我們的公司 Active Directory 中搜尋我的電子郵件和電話號碼。這個查詢是一個測試,以確保我可以對域進行身份驗證,以便我可以設置一個具有 NTLM 身份驗證的 linux wiki。我的理論是,如果我可以成功查詢 AD 以獲取資訊,那麼我離讓我的 wiki 對 AD 進行身份驗證更近了一步(我有在 ActiveDirectory 下設置 moin wiki 的說明)。問題是我似乎無法
ldapsearch
正確查詢。我在網上看到很多教程表明-D
應該是這樣的-D "Americas\John_Marshall"
;但是,ldap_bind: Invalid credentials (49)
當我使用Americas\John_Marshall
. 我唯一一次得到有意義的結果是當我使用下面的參數進行查詢時。但是,即使那樣,我也無法弄清楚如何獲取電子郵件和電話號碼。[John_Marshall@WN7-BG3YSM1 ~]$ ldapsearch -x -h 10.1.1.1 \ -b "cn=Users,dc=Americas" mail telephonenumber -D "cn=John_Marshall,dc=Americas" # extended LDIF # # LDAPv3 # base <cn=Users,dc=Americas> with scope subtree # filter: (objectclass=*) # requesting: mail telephonenumber -D cn=John_Marshall,dc=Americas # # search result search: 2 result: 32 No such object # numResponses: 1 [John_Marshall@WN7-BG3YSM1 ~]$
ldapsearch
有人可以告訴我我在上面的查詢中做錯了什麼嗎?我們的 AD ldap 伺服器是 10.1.1.1,AD 域是“Americas”。最終解決方案的步驟(實際答案在 Wolfgang 的回復中):
使用評論中的資訊和沃爾夫岡的回答,我能夠將解決方案拼湊在一起,但並不是很順利……
ldp.exe
對我不是很有用;但是,我開始嗅探 Outlook 對其進行身份驗證的伺服器,並在我的查詢中替換了該 IP 地址。突然我得到了正確的身份驗證,並使用ldapsearch -x -h <new_ip_addr> -D "Americas\John_Marshall" -W -b "dc=MyCompanyName,dc=com"
. 這個查詢的結果(基本上是我們公司大部分 LDAP 目錄的原始數據轉儲)使我能夠優化-b
參數(搜尋庫)。
好吧,有幾件事可能是錯誤的:
- 您正在指定簡單身份驗證,但您沒有提供密碼,也沒有告訴 ldapsearch 從命令行收集密碼。使用者 John_Marshall 是否沒有密碼?如果他確實有一個,它必須以某種方式提供。指定
-w <passsword>
或-W
(在提示時輸入密碼)。- 使用者真的是 binddn
cn=John_Marshall,dc=Americas
嗎?在我們的 AD 中,舉個例子,我自己的 binddn 是“dn: CN=Wolfgang Schulze-Zachau,CN=Users,DC=aminocom,DC=com
”,即名字和姓氏之間沒有下劃線- " " 的 binddn
cn=John_Marshall,dc=Americas
是可能的,但對我來說看起來有點短。當然,這一切都取決於您的 AD 是如何配置的。您能否驗證這確實是該使用者的 DN?當您查看 AD 使用者和電腦時,導致該使用者的樹項目的完整列表是什麼?- 如果您不指定過濾器,您將獲得搜尋庫中所有項目的列表。那可能是一個很長的清單。
操作編輯:
正確的咒語是:
[John_Marshall@WN7-BG3YSM1 ~]$ ldapsearch -x -h <new_ip_addr> \ -D "Americas\John_Marshall" -W \ -b "cn=John_Marshall,ou=users,ou=austin,dc=amer,dc=MyComanyName,dc=com" \ mail telephonenumber ""