Active-Directory

針對 Active Directory 的 ldapsearch 身份驗證失敗 + 搜尋參數錯誤

  • November 10, 2021

我正在使用ldapsearchOpenLDAP 工具在我們的公司 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參數(搜尋庫)。

好吧,有幾件事可能是錯誤的:

  1. 您正在指定簡單身份驗證,但您沒有提供密碼,也沒有告訴 ldapsearch 從命令行收集密碼。使用者 John_Marshall 是否沒有密碼?如果他確實有一個,它必須以某種方式提供。指定-w <passsword>-W(在提示時輸入密碼)。
  2. 使用者真的是 binddncn=John_Marshall,dc=Americas嗎?在我們的 AD 中,舉個例子,我自己的 binddn 是“ dn: CN=Wolfgang Schulze-Zachau,CN=Users,DC=aminocom,DC=com”,即名字和姓氏之間沒有下劃線
  3. " " 的 binddncn=John_Marshall,dc=Americas是可能的,但對我來說看起來有點短。當然,這一切都取決於您的 AD 是如何配置的。您能否驗證這確實是該使用者的 DN?當您查看 AD 使用者和電腦時,導致該使用者的樹項目的完整列表是什麼?
  4. 如果您不指定過濾器,您將獲得搜尋庫中所有項目的列表。那可能是一個很長的清單。

操作編輯

正確的咒語是:

[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 ""

引用自:https://serverfault.com/questions/283863