可以使用 [驗證] 工作區在 SaltStack Config 中設定 SSO,以與安全性聲明標記語言 (SAML) 通訊協定相容的驗證系統搭配使用。
SAML Single Sign-On (SSO) 是許多組織在實作 SaltStack Config 期間設定的一項功能,有助於:
- 縮短使用者以相同身分登入服務所花的時間。使用者登入某個機構的其中一項服務後,即會自動進行驗證,以進入使用 SSO 的任何其他服務。
- 減少密碼疲勞。使用者只需記住一組認證,而非多組認證。
許多服務提供 SAML SSO 通訊協定的實作,包括 ADFS、OneLogin、Okta、Shibboleth、SimpleSAMLPHP、Google Suite 等。
SAML SSO 如何與 SaltStack Config 搭配使用
當 SaltStack Config 從其支援的任何驗證整合收到成功的身分識別判斷提示時,便會搜尋與已判斷提示身分識別值相符的使用者登入。如果找到相符的登入,則會登入相關聯的使用者帳戶。
例如,如果 SaltStack Config 收到使用者的 ADFS 判斷提示,並且所設定身分識別屬性的值為「fred」,則 SSE 會搜尋使用者名稱為「fred」的登入。如果找到一個,則相關聯的使用者會登入。否則,登入失敗。
SAML 驗證術語
縮略字 | 定義 |
---|---|
SAML | 安全性聲明標記語言 (SAML,發音為 SAM-el) SAML 是一種開放式通訊協定 (有時也稱為標準),用於雙方之間交換驗證和授權資料。尤其是用於在身分識別提供者與服務提供者之間交換資料。 SAML 是以瀏覽器為基礎的 Single Sign-On (SSO)。所有通訊均透過使用者代理程式 (瀏覽器) 進行。服務提供者 (例如 SaltStack Config) 和身分識別提供者 (例如 Azure AD) 之間沒有通訊。這種分離允許跨安全性網域進行驗證,其中服務提供者可位於一個 (可能為公用) 網域,而身分識別提供者位於單獨的安全網路區段中。 |
IdP | 身分識別提供者 IdP 的工作是根據認證識別使用者。身分識別提供者是一種軟體,可提供符合 SAML 規格中身分識別提供者部分的服務。IdP 通常會提供登入畫面介面,並且在成功驗證後向服務提供者顯示已驗證使用者的相關資訊。 身分識別提供者範例:
* 請參閱此表後面的其他詳細資料。 |
SP | 服務提供者或信賴方 SP (服務提供者) 通常是向終端使用者提供資訊、工具、報告等的網站。服務提供者是一種軟體,可提供符合 SAML 規格 SaltStack Config 中服務提供者部分的服務。Microsoft 產品 (例如 Azure AD 和 ADFS) 將 SP 稱為信賴方。 在此案例中,SaltStack Config 是服務提供者。SaltStack Config 接受 IdP 的驗證判斷提示並允許使用者登入。 SP 無法透過 IdP 進行驗證,除非其列於已核准服務清單中。使用已核准 IdP 清單設定 SP 是設定程序的一部分。 |
SSO | Single Sign-on Single Sign-on 是一種驗證系統,在此系統中,使用者不需要登入第二個服務,因為已驗證使用者的相關資訊會傳遞至該服務。 |
SLO | 單一登出 當使用者登出某項服務時,一些 IdP 隨後會將該使用者登出使用者已驗證的所有其他服務。 SaltStack Config 目前不支援 SLO。 |
RBAC | 角色型存取控制 角色型存取控制 (亦稱為以角色為基礎的安全性) 是一種進階存取控制措施,可依據組織內人員的角色限制網路存取。RBAC 中的角色指的是員工對網路具有的存取層級。 員工只能存取網路資源或執行有效履行其工作職責所必需的工作。例如,如果層級較低的員工不需要機密資料或網路資源來履行責任,則通常無法存取這些機密資料或網路資源。 SaltStack Config 可以使用 [角色] 工作區支援具有 SAML 組態的 RBAC。不過,使用者首先需要登入 SaltStack Config,才能新增為本機使用者資料庫中的使用者並透過 [角色] 工作區進行管理。 |
Okta 需求
- 設定期間的Single Sign on URL 欄位需要 SAML 判斷提示客戶服務 URL (ACS)。這是 SSC 的 URL,末尾為 /autho/complete/saml。例如,http://xxx.x.x.x:8080/auth/complete/saml。
- SAML 整合要求使用者介面由 SSC 提供服務。如果使用者介面由 CDN 或除 SSC 以外的任何其他網站提供服務,則整合將失敗。
- 所有 SAML 回應都必須簽署。在 Okta 中,您可以在進階設定下啟用此設定。
- SSC 中設定的每個 SAML 屬性都必須存在並在 SAML 回應中傳遞。
必要條件
在 SaltStack Config 中設定 SAML 之前:
- 安裝 SAML 身分識別提供者 (IdP) 並確保其正在執行。
- 確保您具有 IdP 所提供認證和組態資料的存取權。
- 產生憑證以新增 SaltStack Config 作為經過 IdP 核准的服務提供者。您的 SaltStack Config 服務提供者需要 RSA 金鑰配對。為 SaltStack Config 設定 SAML 時,可以在多個位置輸入私密金鑰和公開金鑰值。
備註: 可在任何系統上產生此金鑰配對。不需要在 SSE 伺服器上建立。這些命令會在已安裝 openssl 公用程式的任何系統上執行。或者,您可以使用 Salt 產生自我簽署憑證。如需詳細資訊,請參閱 對 TLS Salt 模組建立自我簽署憑證。若要建立憑證,請使用 openssl genrsa -out cert.pem 2048 產生名為 cert.perm 的私密金鑰。然後,使用 openssl req -new -x509 -key cert.pem -out cert.pub -days 1825 命令並按照提示進行操作,建立與該私密金鑰關聯的公開金鑰。記錄這些公開金鑰和私密金鑰配對,以便在執行其餘的設定程序時輕鬆存取。
設定 SAML 組態
- 按一下側邊功能表上的管理 > 驗證。
- 按一下建立。
- 從組態類型功能表中,選取 SAML。
工作區會顯示 SAML 組態類型支援的設定。
- 在設定索引標籤的以下欄位中,設定 SaltStack Config 安裝的相關資訊:
- 名稱
- 基礎 URI
- 實體識別碼
- 公司名稱
- 顯示名稱
- 網站
- 在私密金鑰欄位中,複製為 SaltStack Config 建立服務提供者憑證時所產生的私密金鑰。
- 在公開金鑰欄位中,複製為 SaltStack Config 建立服務提供者憑證時所產生的公開金鑰。
- 在以下欄位中填寫相關連絡資訊:
- 技術連絡人
- 支援連絡人
- 在提供者資訊區段的以下欄位中,設定有關身分識別提供者 (IdP) 的中繼資料:
- 實體識別碼
- 使用者識別碼 - SAML 從 IDP 接收的屬性的名稱,表示 SSC 中使用的使用者識別。
- 電子郵件 - SAML 從 IDP 接收的屬性的名稱,表示使用者的電子郵件位址。SSC 需要使用者的有效電子郵件位址。
- 使用者名稱 - SAML 從 IDP 接收的屬性的名稱,表示使用者的使用者名稱。此識別碼應不同於使用者識別碼,以便您可以輕鬆快速地識別其代表的使用者。
- URL
- x509 憑證
備註: ADFS、Azure AD 和 Google SAML 是一般身分識別提供者的範例。此資訊由您的 IdP 提供。 - (可選) 勾選屬性聲明檢查方塊,使 SaltStack Config 檢查 SAML 屬性聲明是否包含使用者設定檔。依預設會勾選此選項。
- 按一下儲存。
後續步驟
- 向您的 IdP 提供 AssertionCustomerService URL (例如:
https://<your-sse-hostname>/auth/complete/saml
) 以及為 SaltStack Config 產生的公開 (x509) 憑證和金鑰。 - 為使用者建立屬性對應,特別是為使用者識別碼、電子郵件和使用者名稱建立屬性對應。許多組織會將所有這三個值對應到使用者的電子郵件地址作為單一屬性,因為使用者的電子郵件地址在整個組織中通常具有唯一性。對應這些屬性的程序特定於每個 SAML 身分識別提供者。如需建立這些屬性對應的相關協助,請參閱您的 IdP 說明文件或連絡管理員。
- 將使用者新增到 SaltStack Config。依預設,只有在使用者首次使用 SAML 成功登入後,才會在 SaltStack Config 中註冊新使用者。或者,也可以手動新增使用者,以在 SaltStack Config 中預先註冊這些使用者。若要從 [驗證] 工作區手動新增使用者,請從驗證組態清單中選取您的 SAML 組態,然後從組態設定中按一下使用者索引標籤。按一下建立,輸入使用者認證,然後選取角色。
備註: 確保此使用者名稱正確無誤。使用者建立完成後,將無法變更或重新命名其使用者名稱。手動建立使用者後,只能在首次登入之前將其刪除。使用者初次登入後,刪除按鈕在此工作區中仍然可用,但不再起作用。
- 驗證 SAML 組態,請以一般使用者身分登入,以確保登入程序如預期般運作並且角色和權限正確無誤。使用可用於 Firefox 和 Chrome 網頁瀏覽器的 SAML 追蹤工具,並檢視
/var/log/raas/raas
記錄訊息,對潛在錯誤進行疑難排解。備註: 初始佈建且 SAML 驗證成功後,無法透過 SaltStack Config 使用者介面或使用 API 刪除使用者。