如何在 ownCloud Infinite Scale 中設定 LDAP 身份驗證

在 Infinite Scale 中,LDAP 身份驗證是什麼意思?

ownCloud Infinite Scale (oCIS) 透過 OpenID Connect (OIDC) 對瀏覽器和用戶端工作階段進行驗證。 LDAP 可以為內建的 oCIS 身分提供者提供目錄使用者和憑證,也可以位於外部 OIDC 提供者(例如 Keycloak)之後。正確的配置取決於您需要的是具有簡單登入流程的小型部署,還是具有更廣泛控制功能的生產識別平台。

這種差異很重要,因為 oCIS 不是 ownCloud Server Classic。經典版教學要么透過 Web 管理頁面配置 LDAP,要么occ ldap:*根本不配置 oCIS。在 oCIS 中,設定是部署環境變數或服務配置,多個服務可能需要對相同目錄擁有一致的視圖。

ownCloud 的版本化身分提供者(IDP) 服務文件指出,內建提供者可以使用外部 LDAP 後端。其安全指南建議,對於規模較大的部署或生產環境,應使用外部 OIDC 供應商。本指南使用 oCIS 8.2 文件;由於預設值和部署範例可能會有所更改,因此在套用這些變數之前,請查閱與您已安裝版本對應的文件。

您應該選擇哪種身份驗證設計?

方法非常合身權衡
內建 oCIS IDP,支援外部 LDAP小型部署、實驗室或評估環境,其中 LDAP 應作為密碼來源。操作簡單,但嵌入式身分提供者 (IDP) 功能受到刻意限制,並非完整的身份平台。
連接到 LDAP 或 Active Directory 的外部 OIDC 提供者生產環境、多應用場景或集中式多因素身份驗證 (MFA) 和身份生命週期控制等需求新增身分識別服務以進行操作,但將登入原則和 LDAP 整合放在專門建置的提供者中。
HTTP 基本驗證具體相容性或開發案例這不是正常的瀏覽器登入路徑。 ownCloud 警告不要在生產環境中啟用代理基本身份驗證。

如果您已經執行 Keycloak 或其他 OIDC 供應商,通常情況下,將其連接到目錄是更簡潔的生產環境部署方案。如果部署規模較小且內建提供者的限制可以接受,請設定 IDP 的 LDAP 後端並在開放使用者存取權限之前進行測試。

編輯 oCIS 之前應該收集哪些資訊?

  • oCIS 的確切版本和部署方法,例如 Docker Compose、Kubernetes 或受監督的二進位進程。
  • LDAP 伺服器的 DNS 名稱、TLS 憑證鍊和 LDAPS 端點。建議ldaps://啟用憑證驗證;切勿為了掩蓋信任問題而停用驗證。
  • 一個權限最小的綁定帳戶及其完整的專有名稱 (DN)。該帳戶應能夠搜尋 oCIS 所需的使用者和群組分支,而無需不必要的寫入權限。
  • 使用者搜尋基準 DN、搜尋範圍、登入屬性、物件類別、電子郵件和顯示名稱屬性,以及一個穩定的唯一使用者 ID 屬性。請根據實際目錄條目核對這些資訊。
  • 如果使用者的 LDAP 群組應顯示在 oCIS 中,則群組基本 DN 和成員屬性。
  • 目前 oCIS 配置的備份以及不依賴 LDAP 變更的已測試管理員登入。

穩定的身份映射至關重要。顯示名稱或電子郵件地址可能會更改,但唯一的 ID 應始終與同一人關聯。如果 oCIS 在變更後偵測到不同的識別符,則現有使用者可能會被識別為新帳戶,而不是繼承預期的身分和存取權限。

如何將內建身分識別提供者 (IDP) 連接到外部 LDAP 伺服器?

對於使用 oCIS 內建身分提供者 (IDP) 的小型部署,請在部署所使用的環境或服務配置中設定 IDP 作用域的 LDAP 變數。以下值僅為範例。請將主機名稱、DN、憑證路徑和架構名稱替換為您目錄中的實際值。

IDP_LDAP_URI=ldaps://ldap.example.net:636
IDP_LDAP_TLS_CACERT=/etc/ocis/certs/directory-ca.pem
IDP_LDAP_BIND_DN=uid=ocis-reader,ou=service,dc=example,dc=net
IDP_LDAP_BIND_PASSWORD=<load-from-your-secret-store>
IDP_LDAP_BASE_DN=ou=people,dc=example,dc=net
IDP_LDAP_SCOPE=sub
IDP_LDAP_LOGIN_ATTRIBUTE=uid
IDP_LDAP_EMAIL_ATTRIBUTE=mail
IDP_LDAP_NAME_ATTRIBUTE=displayName
IDP_LDAP_UUID_ATTRIBUTE=entryUUID
IDP_LDAP_UUID_ATTRIBUTE_TYPE=text
IDP_LDAP_OBJECTCLASS=inetOrgPerson

IDP 參考文件記錄了這些設置,包括 URI、CA 憑證、綁定 DN 和密碼、使用者基本 DN、作用域、登入屬性、UUID 屬性和物件類別。範例假設目錄提供文字格式entryUUID;Active Directory 和其他架構可能需要不同的對應。請勿entryUUID僅因此處出現而直接複製。

將綁定密碼儲存為部署金鑰或平台建議的金鑰機制。避免將其提交到公共的 Compose 檔案、程式碼庫或工單中。確保 oCIS 進程可以讀取 CA 證書,並保留證書驗證。 IDP 的此INSECURE設定會停用 LDAP TLS 憑證驗證,且明確不適用於生產環境。

此外,也要確保帳戶停用行為與您的目錄相符。在身分提供者 (IDP) 文件中列出了 `<your-directory-name>` IDP_USER_ENABLED_ATTRIBUTE;其預設值是 ownCloud 特有的屬性名稱。如果您的目錄使用不同的啟用/停用標誌,請對應該實際屬性。USERS_LDAP_DISABLE_USER_MECHANISM同時,也請檢查使用者服務的 `<your-directory-name>`。根據目錄的不同,文件中列出的選項包括基於屬性的處理、基於群組的處理或none`<your-directory-name>`;請特意選擇 `<your-directory-name>`,以避免因架構不匹配而將已停用的帳戶視為活動帳戶。

使用者和群組查找也需要 LDAP 設定嗎?

通常情況下是的。密碼驗證和用戶發現是相關但獨立的任務。身分提供者 (IDP) 負責驗證登入;oCIS 使用者和 Graph 服務向平台提供使用者和群組資訊。如果您使用外部目錄作為 oCIS 的身份來源,請設定使用者和 Graph LDAP 後端,使其讀取相同目錄並一致地對應相同的使用者。

對於使用者服務,請檢查USERS_DRIVER=ldap其服務範圍設置,例如USERS_LDAP_URI` USERS_LDAP_CACERTmail` 、 USERS_LDAP_BIND_DN` display-name` USERS_LDAP_BIND_PASSWORD、 `scope` USERS_LDAP_USER_BASE_DN、 `group`USERS_LDAP_USER_SCHEMA_ID等USERS_LDAP_USER_SCHEMA_USERNAME。部署需要時,請設定郵件、顯示名稱、作用域和群組變數。必須使用與目錄完全相符的架構名稱,而不是通用範例。

Graph 服務有其自身的 LDAP 設定。對於 oCIS 需要讀取但不管理的現有目錄,請設定GRAPH_LDAP_SERVER_WRITE_ENABLED=false並設定 Graph LDAP 連線和架構。 ownCloud 文件中將其描述為連接到現有 LDAP 伺服器的唯讀模式。除非您已特意準備了相容的 LDAP 架構並希望 oCIS 建立或變更目錄對象,否則請保持寫入功能停用。

請謹慎使用特定於服務的變數前綴或文件中記錄的全域OCIS_LDAP_*變數。全域變數可能會同時影響多個服務。對於首次集成,為每個服務進行明確的設定可以更輕鬆地確定哪個服務出現故障,並防止意外寫入或模式假設。使用者服務參考和Graph 服務參考列出了特定於版本的名稱和預設值。

如何安全地套用這些設定?

  1. 儲存目前環境文件、服務單元或 Compose 配置的副本。記錄如何還原它。
  2. 將 LDAP 變數加入實際的 oCIS 服務定義中。請勿用此範例取代現有 Compose 環境區塊的其餘部分;請將這些設定合併到您已執行的部署中。
  3. 請檢查憑證檔案是否存在於 oCIS 服務讀取它的容器或主機命名空間內。主機路徑不會自動顯示在容器內。
  4. 在重新啟動 oCIS 之前,請根據 LDAP 驗證綁定帳戶和搜尋基準。使用與服務配置相同的伺服器主機名稱、基準 DN 和登入屬性。
  5. 依照部署流程重新啟動 oCIS,以便各項服務能夠接收新的環境。在多服務或多節點部署中,請確認每個執行個體上的相關服務都使用了預期的配置。
  6. 使用一個允許登入的 LDAP 帳戶和一個不應登入的帳戶進行測試。保持現有管理員會話處於開啟狀態,直到驗證新的登入路徑為止。

若要進行直接目錄檢查,ldapsearch可以在不將密碼輸入命令列的情況下測試綁定和使用者過濾器:

ldapsearch -H ldaps://ldap.example.net:636 \
  -D 'uid=ocis-reader,ou=service,dc=example,dc=net' -W \
  -b 'ou=people,dc=example,dc=net' '(uid=alice)' dn uid entryUUID mail

請使用您計劃配置的登入屬性和基本 DN。查詢成功僅確認該查詢的網路、TLS、綁定和搜尋行為;但並不能證明每個 oCIS 服務都使用相同的對應。

如何確定配置是否生效?

判斷結果不只要看是否出現登入頁面。使用測試目錄使用者透過正常的 oCIS Web 流程登錄,開啟一個文件,並確認預期的使用者名稱和設定檔資訊。如果共用或空間存取權限由群組控制,則還需要驗證一個已知的群組成員身分。然後測試錯誤的密碼以及已停用或不在允許使用者搜尋範圍內的 LDAP 帳戶。這些帳戶應該無法獲得存取權限。

檢查 oCIS 服務日誌,尋找 LDAP 連線、TLS、綁定和使用者尋找錯誤。有效的 LDAP 綁定後 oCIS 登入失敗通常表示搜尋篩選器、基本 DN、使用者識別碼或 OIDC 到使用者的對應不符。在生產試點中,遷移較大使用者群組之前,應先驗證現有使用者的檔案、共用和基於群組的存取權限。僅通過身份驗證檢查並不能驗證現有帳戶身份和授權是否已保留。

如果登入仍然失敗,應該更改哪些設定?

  • TLS 或連線錯誤:確認 oCIS 主機能夠解析並連接到 LDAP 伺服器,連接埠和協定方案匹配,且 CA 檔案包含頒發憑證鏈。保持驗證功能啟用。
  • 綁定成功,但未找到使用者:請檢查使用者基本 DN、作用域、物件類別、登入屬性和篩選器是否正確。正確的綁定 DN 並不表示搜尋在正確的分支中尋找。
  • LDAP 接受密碼,但 oCIS 無法解析帳戶:請比較 IDP 登入識別碼和使用者服務使用者名稱或穩定 ID 對應。請保持標識符的穩定性,不要隨意在使用者名稱和電子郵件地址之間切換。
  • 登入正常,但基於群組的存取權限錯誤:檢查使用者和 Graph 群組基本 DN、群組物件類別、成員屬性,以及 Graph 後端是否按預期配置為唯讀或寫入啟用。
  • 您需要多因素身份驗證 (MFA)、集中式會話或更全面的身份控制:請將 LDAP 身份驗證遷移到外部 OIDC 提供者,並配置 oCIS 以信任該頒發者。內建的身分提供者 (IDP) 功能有意有所限制;ownCloud 建議大型部署使用外部提供者,並指出內建提供者無法提供外部身分服務的全部功能。

請勿將其啟用PROXY_ENABLE_BASIC_AUTH為生產環境瀏覽器登入的​​捷徑。代理文件將基本驗證列為支援的請求方案,但指出僅可用於開發環境,不可用於生產環境。對於標準的 oCIS 登錄,請僅在內建 OIDC 提供者的限制範圍內使用,或連接由 LDAP 支援的外部 OIDC 身分提供者。

這個體系之外還有什麼?

LDAP 驗證並不會自動使 oCIS 中的所有 LDAP 管理功能可用。使用者和群組配置、群組同步、寫入權限、密碼變更、停用帳戶規則以及映射現有使用者都需要各自相容的服務設定和 LDAP 架構。對於外部 OIDC 自動配置,ownCloud 在選擇建立帳戶的流程時,還需要穩定的使用者聲明和具有寫入權限的 Graph 後端。啟用此行為之前,請查閱代理文件。

每次只做一項更改,使用少量帳戶進行測試,並在全面部署前確認身份驗證和身份映射均正確無誤。如果 oCIS 版本、LDAP 架構或身分提供者與範例中的假設不同,請嚴格按照該版本的配置參考進行配置,而不要直接照搬範例。

留下評論

如何在 ownCloud Infinite Scale 中設定 LDAP 身份驗證

如何在 ownCloud Infinite Scale 中設定 LDAP 身份驗證

為 ownCloud Infinite Scale 配置 LDAP 支援的登錄,映射使用者和群組,選擇內建或外部 OIDC,保護憑證,並安全地驗證身份驗證。

如何從 ownCloud 10 Classic 遷移到 ownCloud Infinite Scale

如何從 ownCloud 10 Classic 遷移到 ownCloud Infinite Scale

使用支援的 migrate-to-ocis 應用程式規劃 ownCloud Classic 10 到 Infinite Scale 的遷移。了解哪些資料會遷移,哪些資料不會遷移,LDAP 先決條件,指令以及切換檢查。

如何在 Zimbra 中安全地設定 SpamAssassin 自訂規則

如何在 Zimbra 中安全地設定 SpamAssassin 自訂規則

了解 Zimbra 在何處載入自訂 SpamAssassin 規則、如何編寫和驗證 .cf 規則、重新啟動 Amavis、測試郵件頭以及如何安全地回溯。

如何在 Zimbra CE 中備份和還原單一郵箱

如何在 Zimbra CE 中備份和還原單一郵箱

使用 zmmailbox 備份和還原單一 Zimbra CE 郵箱。匯出包含元資料的 ZIP 存檔,進行驗證,並在測試帳戶中安全地測試復原功能。

如何在 ownCloud oCIS 中為使用者配置儲存配額

如何在 ownCloud oCIS 中為使用者配置儲存配額

了解如何為 ownCloud Infinite Scale 使用者設定個人空間配額,將其與專案空間和全域限制區分開來,並按角色為新使用者指派預設值。

修復 BigBlueButton FreeSWITCH SIP 註冊逾時問題:實用診斷指南

修復 BigBlueButton FreeSWITCH SIP 註冊逾時問題:實用診斷指南

透過檢查服務運作狀況、SIP 和 ESL 監聽器、NAT 位址、防火牆規則和日誌來診斷 BigBlueButton FreeSWITCH SIP 註冊逾時問題。

如何修復 ownCloud 行動應用程式「連線被拒絕」錯誤

如何修復 ownCloud 行動應用程式「連線被拒絕」錯誤

透過檢查伺服器 URL、HTTPS 連接埠、Web 伺服器、防火牆、代理、TLS 和受信任的網域來修復 ownCloud 行動應用程式連線被拒絕的錯誤。

如何在自架的 Matrix 伺服器上限制使用者註冊

如何在自架的 Matrix 伺服器上限制使用者註冊

比較在 Synapse 上控制新 Matrix 帳戶的方法,從停用公用註冊到頒發有限用途的令牌,並提供設定範例和檢查。

修復 ownCloud 空白頁/白屏死機:選擇正確的恢復路徑

修復 ownCloud 空白頁/白屏死機:選擇正確的恢復路徑

修正 ownCloud 空白頁問題,首先要區分瀏覽器、PHP、應用程式、權限、升級和代理故障,然後選擇幹擾最小的復原路徑。

如何修復 Zimbra 的「Nginx 代理服務已停止」錯誤

如何修復 Zimbra 的「Nginx 代理服務已停止」錯誤

診斷 Zimbra 停止的 NGINX 代理,讀取正確的日誌,安全地重新啟動它,並檢查針對缺失配置、無效連接埠、憑證和上游故障的修復措施。