如何為 Zimbra 設定外部 LDAP 身份驗證

Zimbra 中外部 LDAP 驗證有哪些變更?

外部 LDAP 驗證允許 Zimbra 使用另一個目錄(而非 Zimbra 內部 LDAP 中儲存的密碼)來驗證使用者密碼。目前的 Zimbra Daffodil (v10) 管理員指南指出,外部 LDAP 驗證是按網域配置的,並且外部方法會嘗試使用提供的使用者憑證綁定到指定的目錄。如果綁定成功,則認為密碼有效。

這不會自動將外部 LDAP 目錄轉換為 Zimbra 的帳戶資料庫。 Zimbra 仍然會將 Zimbra 特有的帳戶資料儲存在其自身的目錄中。 v10 指南明確指出,除非您單獨配置自動配置,否則使用者通常需要同時存在於 Zimbra 和外部目錄中。

有關當前產品文檔,請參閱Zimbra Daffodil v10 管理員指南和Zimbra v10 配置指南。

快速規劃清單

  • 確認您要變更的 Zimbra 域名,例如example.com:
  • 確認 Zimbra 中是否已存在相同的用戶,或單獨規劃自動配置。
  • 了解外部 LDAP 主機名稱、連接埠、TLS 方法和憑證鏈。
  • 了解 Zimbra 登入名稱如何對應到 LDAP 中的使用者 DN。
  • 如果無法直接從登入名稱建立 DN,則準備搜尋庫、搜尋篩選器和最小權限搜尋帳戶。
  • 測試時請保持 Zimbra 管理員工作階段處於開啟狀態,以便您可以快速回滾。

首先選擇正確的映射方法。

方法使用它主要設定
直接綁定-DN模板用戶 DN 遵循可預測的模式zimbraAuthLdapURL,zimbraAuthLdapBindDn
搜尋過濾器映射使用者 DN 各不相同,或使用者分佈在多個 OU 中。zimbraAuthLdapSearchBase,,zimbraAuthLdapSearchFilter搜尋綁定憑證
每個帳戶的外部DN少數帳戶需要明確映射。zimbraAuthLdapExternalDn個人帳戶

目前的 v10 配置指南仍然定義了 search-base、search-bind、search-filter 和 per-account external-DN 屬性。較早的 Zimbra 技術中心官方資料解釋了這些映射在實踐中的使用方法。由於這些資料早於 Daffodil 版本,請將其視為操作背景知識,並在進行大規模遷移之前,請根據您已安裝的版本驗證詳細資訊。請參閱Zimbra 技術中心的外部 LDAP 說明。

步驟 1:記錄目前網域身份驗證設定

zimbra以作業系統使用者身分執行管理命令。在進行任何變更之前,請先取得現有網域值:

su - zimbra

zmprov gd example.com \
  zimbraAuthMech \
  zimbraAuthLdapURL \
  zimbraAuthLdapBindDn \
  zimbraAuthLdapSearchBase \
  zimbraAuthLdapSearchFilter \
  zimbraAuthFallbackToLocal

將輸出儲存到您的更改記錄中。 v10 配置指南列出了有效的值zimbraAuthMech,包括zimbra、、ldap以及adKerberos 或自訂機制。在本指南中,目標機制為ldap。

步驟 2:在變更 Zimbra 之前,請先確認網路可達性和 TLS。

在確認基本連線正常之前,請勿追蹤身份驗證對應問題。從 Zimbra 伺服器確認 DNS 解析正常,且 LDAP 端點可存取。對於 LDAPS,您可以使用 OpenSSL 檢查憑證鏈:

openssl s_client -connect ldap.example.net:636 \
  -servername ldap.example.net -showcerts

對於使用標準 LDAP 和 StartTLS 的目錄,請使用適用於您作業系統的 LDAP 用戶端測試支援 StartTLS 的端點。如果ldapsearch已安裝,搜尋帳戶檢查可能如下所示:

ldapsearch -x -H ldap://ldap.example.net:389 -ZZ \
  -D "cn=zimbra-search,ou=svc,dc=example,dc=net" -W \
  -b "ou=people,dc=example,dc=net" \
  "(uid=alice)" dn

Zimbra v10 管理員指南指出,ldaps:端點需要 LDAP 伺服器憑證獲得 Zimbra 的信任。切勿為了通過測試而繞過證書驗證。請根據您 Zimbra 版本對應的信任庫流程,安裝對應的 CA 或憑證鏈。

步驟 3:當使用者 DN 可預測時,設定直接綁定 DN 模板

這是最簡單的模式。假設外部目錄將使用者儲存為 `users` uid=alice,ou=people,dc=example,dc=net,Zimbra 登入名為 `<login>` alice@example.com。如下配置域:

zmprov md example.com zimbraAuthMech ldap

zmprov md example.com \
  zimbraAuthLdapURL "ldaps://ldap.example.net:636"

zmprov md example.com \
  zimbraAuthLdapBindDn "uid=%u,ou=people,dc=example,dc=net"

管理員指南將其描述zimbraAuthLdapBindDn為用於確定外部綁定所用 DN 的格式字串。 Zimbra 技術中心官方文件描述了常見的替換值,例如%u用於登入的本地部分和%n完整登入名稱。

僅當 DN 模板能夠確定性地標識正確的目錄物件時才使用它。如果使用者位於不同的組織單元下,或者他們的 DN 不是從登入名稱派生而來,則應改用搜尋篩選模式。

步驟 4:當無法直接建置 DN 時,使用搜尋過濾映射。

搜尋過濾器映射功能使 Zimbra 能夠首先定位使用者條目,然後根據傳回的 DN 進行身份驗證。 v10 配置指南定義了所需的與搜尋相關的網域屬性。

典型的 OpenLDAP 式配置如下:

zmprov md example.com \
  zimbraAuthLdapSearchBase "ou=people,dc=example,dc=net"

zmprov md example.com \
  zimbraAuthLdapSearchFilter "(uid=%u)"

zmprov md example.com \
  zimbraAuthLdapSearchBindDn \
  "cn=zimbra-search,ou=svc,dc=example,dc=net"

為避免將目錄密碼直接寫入 shell 歷史記錄,請先將其讀取到臨時 shell 變數中:

read -s LDAP_BIND_PASSWORD
zmprov md example.com \
  zimbraAuthLdapSearchBindPassword "$LDAP_BIND_PASSWORD"
unset LDAP_BIND_PASSWORD

搜尋帳戶只需擁有在配置的目錄下尋找使用者所需的讀取權限,無需擁有廣泛的目錄管理權限。

對於 Active Directory,篩選器可能會使用 `<username>`sAMAccountName或 ` userPrincipalName<username>`,具體取決於您的登入約定。 Zimbra 也提供了一種外部 Active Directory 驗證機制,因此,如果 AD 特定的機制更適合您的部署,請使用該機制,而不是強制所有 AD 環境都使用通用的 LDAP 設定。

步驟 5:驗證 Zimbra 實際儲存的內容

更改後,讀取域屬性:

zmprov gd example.com \
  zimbraAuthMech \
  zimbraAuthLdapURL \
  zimbraAuthLdapBindDn \
  zimbraAuthLdapSearchBase \
  zimbraAuthLdapSearchFilter \
  zimbraAuthLdapSearchBindDn \
  zimbraAuthFallbackToLocal

檢查是否有引用錯誤、不正確的基本 DN、意外的主機名,或先前嘗試遺留的舊對映。請勿將搜尋綁定密碼列印到文件、螢幕截圖、工單或 shell 日誌中。

步驟 6:在全面推廣之前,先用一名受控用戶進行測試

選擇一個同時存在於 Zimbra 和外部目錄中的非管理員測試帳戶。故意測試以下情況:

  • 正確的外部 LDAP 密碼允許登入 Zimbra。
  • 外部 LDAP 密碼錯誤,系統拒絕。
  • 已停用或已鎖定的目錄帳戶將按照您的目錄策略運行。
  • 如果 Zimbra 帳戶不存在,則無法登入,除非已設定自動設定。
  • LDAP 伺服器或網路故障會導致預期的故障行為。

最後一個測試很重要,因為zimbraAuthFallbackToLocal它是一個獨立的領域選項。 v10 文件指出其預設值為FALSE。啟用回退功能可能對精心設計的遷移很有用,但如果舊的本機 Zimbra 密碼仍然有效,則停用或變更外部目錄中的密碼可能會立即阻止訪問,從而違背預期。請將回退視為安全策略決策,而不是通用的故障排除開關。

步驟 7:決定是否還需要自動配置

外部身份驗證和帳戶配置是不同的功能。如果希望新目錄使用者自動取得 Zimbra 帳戶,請單獨設定 Zimbra 自動設定。目前的 v10 管理員指南詳細介紹了 EAGER、LAZY 和 MANUAL 模式及其各自的zimbraAutoProv*屬性。

不要盲目地將身份驗證設定用於自動配置。自動配置有獨立的 URL、綁定、搜尋基準、過濾器、帳戶名稱映射和屬性映射選項。首先要確保現有使用者的外部身分驗證可靠;然後再進行設定設計。

常見故障模式及檢查內容

症狀可能區域查看
每個用戶立即失敗連接性或TLSDNS、連接埠、憑證信任、LDAP端點
只有部分用戶失敗DN映射OU 位置、綁定 DN 模板、搜尋過濾器唯一性
LDAP 搜尋功能正常,但 Zimbra 登入失敗用戶綁定或帳戶狀態傳回的 DN、使用者密碼、目錄鎖定/停用狀態、Zimbra 帳戶是否存在
新目錄使用者無法登入。供應建立匹配的 Zimbra 帳戶或配置自動配置
從 LDAP 切換到 LDAP 後,LDAPS 出現故障。證書信託CA 鏈、主機名稱匹配、Zimbra 信任庫
舊的本地密碼仍然有效。備用策略審查zimbraAuthFallbackToLocal

復原計劃

如果外部目錄設定阻止了正常的使用者驗證,請使用已開啟的管理員會話將網域切換回內部 Zimbra 驗證:

zmprov md example.com zimbraAuthMech zimbra

然後驗證該值:

zmprov gd example.com zimbraAuthMech

除非有正當理由,否則請勿在緊急回滾期間刪除外部 LDAP 屬性。保留這些屬性有助於檢查失敗原因,並在修正對應或 TLS 問題後進行重試。

實用參考概要

  • zimbraAuthMech:選擇網域的身份驗證機制。
  • zimbraAuthLdapURL:外部 LDAP 端點;用於ldaps:透過 SSL 進行 LDAP 通訊。
  • zimbraAuthLdapBindDn:用於建立直接綁定使用者 DN 的格式。
  • zimbraAuthLdapSearchBaseZimbra 在其中搜尋外部使用者的子樹。
  • zimbraAuthLdapSearchFilter用於定位使用者的 LDAP 過濾器。
  • zimbraAuthLdapSearchBindDn以及zimbraAuthLdapSearchBindPassword:當匿名搜尋不適用時用於查找的憑證。
  • zimbraAuthLdapExternalDn:為單一 Zimbra 帳戶明確設定外部 DN 對應。
  • zimbraAuthFallbackToLocal控制 Zimbra 在外部身分驗證失敗時是否回退到本機身分驗證。

最終驗證清單

  • Zimbra郵件伺服器可以存取外部LDAP端點。
  • TLS憑證驗證成功,無需使用不安全的變通方法。
  • 所選的 bind-DN 範本或搜尋篩選器會將一個登入名稱對應到一個目錄項目。
  • 測試用戶已存在於 Zimbra 中,或已有意配置自動配置。
  • 正確和錯誤的密碼測試均按預期進行。
  • 備用行為符合您的安全策略。
  • 原始網域設定和回滾指令已記錄在案。

對於生產環境變更,建議分階段部署,並使用一個測試域或一小群使用者進行測試。如果身分映射可預測,外部 LDAP 驗證就非常簡單;大多數棘手的故障都源自於 DN 映射、憑證信任問題,或將身分驗證與帳戶設定混淆。

留下評論

10 款最佳 Ping 掃描工具,協助您尋找網路上的設備

10 款最佳 Ping 掃描工具,協助您尋找網路上的設備

比較 10 款 ping 掃描工具,它們可用於快速發現區域網路、跨平台掃描和 IP 位址管理。了解掃描可以告訴您什麼,以及不能告訴您什麼。

用於追蹤效能的 6 款最佳網路管理工具

用於追蹤效能的 6 款最佳網路管理工具

比較六款網路管理工具的效能監控功能,包括 SNMP 覆蓋範圍、映射、警報、部署模型和成本權衡。

適用於 Windows、iOS 和 Android 的最佳 Wi-Fi 分析器

適用於 Windows、iOS 和 Android 的最佳 Wi-Fi 分析器

比較適用於 Windows、iPhone 和 Android 的 Wi-Fi 分析器,包括頻道擁塞、訊號覆蓋範圍、熱圖和網路故障排除工具。

Ping 監控:7 款免費開源的網路可用性工具

Ping 監控:7 款免費開源的網路可用性工具

比較七款免費開源的 ping 監視器,從完整的網路套件到專注於延遲探測的工具,選擇最適合可用性、丟包率和歷史記錄的工具。

網路中的服務品質 (QoS):服務品質的角色和工作原理

網路中的服務品質 (QoS):服務品質的角色和工作原理

了解 QoS 在網路中的意義,DSCP 標記和流量佇列如何對語音、視訊和業務應用程式進行優先排序,以及 QoS 無法解決的問題。

最佳SFTP伺服器軟體,實現安全檔案傳輸

最佳SFTP伺服器軟體,實現安全檔案傳輸

比較適用於 Windows 和 Linux 的可靠 SFTP 伺服器軟體,包括 OpenSSH、Bitvise、SolarWinds 和 SFTPGo。尋找最適合您的安全性和文件傳輸需求的軟體。

適用於網路團隊的 7 款最佳 IP 位址管理工具

適用於網路團隊的 7 款最佳 IP 位址管理工具

比較七款 IP 位址管理工具,包括子網路發現、DNS 和 DHCP 協調、網路清單和開源 IPAM。

網路監控最佳實務:監控哪些內容以及使用哪些工具

網路監控最佳實務:監控哪些內容以及使用哪些工具

建置實用的網路監控,提供清晰的設備覆蓋範圍、有用的效能指標、可操作的警報,並對 SolarWinds NPM、PRTG 和 OpManager 進行比較。

十大最佳網路掃描工具,幫助您發現裝置和 IP 位址

十大最佳網路掃描工具,幫助您發現裝置和 IP 位址

比較網路掃描工具,以實現快速設備發現、跨平台 IP 掃描和企業級 IPAM,並指導如何將每個選項與您的網路相符。

如何使用 Nmap 進行路由追蹤並讀取網路路徑

如何使用 Nmap 進行路由追蹤並讀取網路路徑

使用 Nmap 的 --traceroute 選項將躍點對應到授權主機,了解躍點和 RTT 輸出,並在不進行過度掃描的情況下排查缺失的回應。