跳至主要内容

設定 Shibboleth (SAML)

如果您的組織使用 Shibboleth 身分提供者 (IdP) 進行使用者身分驗證,您可以設定 Rancher,讓您的使用者可以使用其 Shibboleth 憑證登入 Rancher。

在此設定中,當 Rancher 使用者登入時,他們將被重新導向到 Shibboleth IdP 以輸入其憑證。身分驗證後,他們將被重新導向回 Rancher UI。

如果您還將 OpenLDAP 設定為 Shibboleth 的後端,它將向 Rancher 回傳包含使用者屬性(包括群組)的 SAML 聲明。然後,已驗證的使用者將能夠存取其群組在 Rancher 中擁有權限的資源。

本節中的說明假設您了解 Rancher、Shibboleth 和 OpenLDAP 如何協同工作。有關其工作原理的更詳細說明,請參閱此頁面。

在 Rancher 中設定 Shibboleth​

Shibboleth 先決條件​

  • 您必須設定 Shibboleth IdP 伺服器。
  • 以下是設定所需的 Rancher 服務提供者 URL: 元資料 URL:https://<rancher-server>/v1-saml/shibboleth/saml/metadata 聲明消費者服務 (ACS) URL:https://<rancher-server>/v1-saml/shibboleth/saml/acs
  • 從您的 IdP 伺服器匯出 metadata.xml 檔案。有關更多資訊,請參閱 Shibboleth 文件。

在 Rancher 中設定 Shibboleth​

如果您的組織使用 Shibboleth 進行使用者身分驗證,您可以設定 Rancher,讓您的使用者可以使用其 IdP 憑證登入。

  1. 在左上角,點擊 ☰ > Users & Authentication。

  2. 在左側導航選單中,點擊 Auth Provider。

  3. 點擊 Shibboleth。

  4. 完成 Configure Shibboleth Account 表單。Shibboleth IdP 讓您指定要使用的資料存儲。您可以新增資料庫或使用現有的 ldap 伺服器。例如,如果您選擇 Active Directory (AD) 伺服器,以下範例說明如何將 AD 屬性對應到 Rancher 中的欄位。

    1. Display Name Field:輸入包含使用者顯示名稱的 AD 屬性(例如:displayName)。

    2. User Name Field:輸入包含使用者名稱/名字的 AD 屬性(例如:givenName)。

    3. UID Field:輸入對每個使用者都唯一的 AD 屬性(例如:sAMAccountName、distinguishedName)。

    4. Groups Field:輸入用於管理群組成員資格的項目(例如:memberOf)。

    5. Rancher API Host:輸入您的 Rancher 伺服器的 URL。

    6. Private Key 和 Certificate:這是用於在 Rancher 和您的 IdP 之間建立安全殼層的金鑰憑證對。

      您可以使用 openssl 指令產生一個。例如:

      openssl req -x509 -newkey rsa:2048 -keyout myservice.key -out myservice.cert -days 365 -nodes -subj "/CN=myservice.example.com"
    7. IDP-metadata:您從 IdP 伺服器匯出的 metadata.xml 檔案。

  5. 完成 Configure Shibboleth Account 表單後,點擊 Enable。

    Rancher 會將您重新導向到 IdP 登入頁面。輸入使用 Shibboleth IdP 進行身分驗證的憑證,以驗證您的 Rancher Shibboleth 設定。

    備註

    您可能需要停用快顯封鎖程式才能看到 IdP 登入頁面。

結果: Rancher 已設定為與 Shibboleth 一起使用。您的使用者現在可以使用其 Shibboleth 登入來登入 Rancher。

SAML 提供者注意事項

如果您在沒有 OpenLDAP 的情況下設定 Shibboleth,由於 SAML 協定不支援搜尋或查找使用者或群組,因此適用以下注意事項。

  • 在 Rancher 中將權限指派給使用者或群組時,不會驗證使用者或群組。
  • 新增使用者時,必須正確輸入確切的使用者 ID(即 UID 欄位)。當您輸入使用者 ID 時,不會搜尋其他可能匹配的使用者 ID。
  • 新增群組時,您必須從文字方塊旁邊的下拉選單中選擇群組。Rancher 假設文字方塊中的任何輸入都是使用者。
  • 群組下拉選單僅顯示您所屬的群組。但是,如果您擁有管理員權限或受限管理員權限,則可以加入您不是成員的群組。

若要在 Rancher 中指派權限時能夠搜尋群組,您需要為支援群組的 SAML 提供者設定後端,例如 OpenLDAP。

設定 SAML 單一登出 (SLO)​

備註

此功能在 Rancher v2.7.7 及更高版本中可用。

單一登出(SLO)允許使用者在單一操作中登出所有應用程式。當您在 Rancher 中啟用 SAML SLO 時,使用者可以同時登出 Rancher 和他們的 SAML 身份提供者。

若要配置 SAML SLO:

  1. 在左上角,點選 ☰ > Users & Authentication。
  2. 在左側導覽選單中,點選 Auth Provider。
  3. 找到您的 SAML 提供者並點選 ⋮ > Edit Config。
  4. 在 Single Logout 下,勾選 Enabled 核取方塊。
  5. 在 Identity Provider Single Logout URL 欄位中,輸入您的身份提供者提供的單一登出 URL。
  6. 在 Rancher Single Logout URL 欄位中,輸入您的 Rancher 伺服器 URL,後面加上 /v1-saml/provider/saml/slo。例如:https://rancher.example.com/v1-saml/provider/saml/slo
  7. 點選 Save。

配置 SLO 後,您可能需要更新身份提供者的配置,以將 Rancher Single Logout URL 包含為有效的登出端點。

結果: 使用者現在可以透過點選他們的個人資料圖示並選擇 Log Out,同時登出 Rancher 和 SAML 身份提供者。

在 Rancher 中設定 OpenLDAP​

如果您還將 OpenLDAP 設定為 Shibboleth 的後端,它將向 Rancher 回傳包含使用者屬性(包括群組)的 SAML 聲明。然後,已驗證的使用者將能夠存取其群組在 Rancher 中擁有權限的資源。

OpenLDAP 先決條件​

Rancher 必須設定 LDAP 綁定帳戶(又稱服務帳戶)以搜尋和檢索與應有存取權限的使用者和群組相關的 LDAP 項目。建議不要為此目的使用管理員帳戶或個人帳戶,而是在 OpenLDAP 中建立一個專用帳戶,該帳戶對設定的搜尋基底下的使用者和群組具有唯讀存取權限(見下文)。

使用 TLS?

如果 OpenLDAP 伺服器使用的憑證是自簽的或不是來自認可的憑證授權單位,請確保您手邊有 PEM 格式的 CA 憑證(與任何中繼憑證串接)。您必須在設定期間貼上此憑證,以便 Rancher 能夠驗證憑證鏈。

在 Rancher 中設定 OpenLDAP​

設定 OpenLDAP 伺服器、群組和使用者的設定。有關填寫每個欄位的幫助,請參閱設定參考。請注意,Shibboleth 不支援巢狀群組成員資格。

在繼續設定之前,請熟悉外部身分驗證設定和主體使用者的概念。

  1. 使用初始本機 admin 帳戶登入 Rancher UI。
  2. 在左上角,點擊 ☰ > Users & Authentication。
  3. 在左側導航選單中,點擊 Auth Provider。
  4. 點擊 Shibboleth,或者如果 SAML 已設定,點擊 Edit Config。
  5. 在 User and Group Search 下,勾選 Configure an OpenLDAP server。

疑難排解​

如果您在測試與 OpenLDAP 伺服器的連線時遇到問題,請先仔細檢查為服務帳戶輸入的憑證以及搜尋基底設定。您還可以檢查 Rancher 日誌以幫助找出問題原因。除錯日誌可能包含有關錯誤的更詳細資訊。請參閱本文件中的如何啟用除錯日誌記錄。