SaltStack Config 設定以 SAML 為基礎的驗證系統時,需要填寫各種資訊欄位。也可以使用 API 設定以 SAML 為基礎的系統,但不建議這樣做。

SAML 資訊欄位

所有 SAML 驗證資訊欄位為必填。輸入 SAML 驗證組態的資訊,如下所示。

備註:

如果在設定連線時需要協助,請連絡管理員。

基本

欄位

說明

名稱

SSE 所使用的驗證連線的名稱。當您登入 [驗證] 工作區時,此名稱將顯示在側邊欄中,如果要設定多個組態,此名稱應是唯一的。初始建立後,無法變更此名稱。

範例:Acme SSO

基礎 URI

您的組織在 SaltStack Config 中所使用的基底 URL,亦稱為主機伺服器位址。其格式為 FQDN 或 IP 位址,例如 https://example.com不得以斜線結尾。

範例:https://sse.example.com

實體識別碼

SaltStack Config 服務提供者的唯一識別碼。雖然其 SAML 傳統是使用類似 URL 的字串,但任何類型的字串均可使用。相較於您組織所使用的其他 SAML 應用程式,它必須是唯一的。將 SaltStack Config 登錄為應用程式時,請確保使用相同的識別碼。

範例:https://sse.example.com/saml

組織資訊

欄位

說明

公司名稱

組織的名稱。

顯示名稱

顯示為組織名稱的名稱。

網站

組織網站的 URL。此 URL 可以是任何內容,並且對 SSO 功能沒有任何影響。

私密金鑰

已產生的私密金鑰,也稱為 cert.pem。此金鑰應採用 PEM 格式。如需詳細資訊,請參閱〈建立服務提供者憑證〉

公開金鑰

已產生的公開金鑰和憑證,也稱為 cert.pub。此金鑰應採用 PEM 格式。如需詳細資訊,請參閱〈建立服務提供者憑證〉

技術連絡人

欄位

說明

名稱

主要負責組織中應用程式的員工名稱。此資訊是 SAML 通訊協定的必要資訊,將會傳遞至 SAML 提供者。SaltStack Config 不會直接使用此資訊。

電子郵件

技術連絡人的電子郵件地址。

支援連絡人

欄位

說明

名稱

在無法聯繫應用程式的主要技術連絡人時可以連絡的員工名稱。此資訊是 SAML 通訊協定的必要資訊,將會傳遞至 SAML 提供者。SaltStack Config 不會直接使用此資訊。

電子郵件

支援連絡人的電子郵件地址。

提供者資訊

欄位

說明

實體識別碼

身分識別提供者 (IdP) 的實體識別碼。

Azure AD 實體識別碼的範例:https://sts.windows.net/2f09bc14-a1f0-48ce-8280-0a09e775e40d/

使用者識別碼

將包含永久使用者識別碼的已對應 SAML 屬性的參考。

電子郵件

將包含電子郵件地址的已對應 SAML 屬性的參考。

使用者名稱

將包含使用者名稱的已對應 SAML 屬性的參考。

URL

用於存取身分識別提供者之 SAML 端點的 URL。

x509 憑證

X.509 格式的憑證,具有透過身分識別提供者系統產生的內嵌式公開金鑰。此金鑰必須採用 PEM 格式。

安全性檢查

欄位

說明

屬性聲明檢查

如果您希望 SaltStack Config 檢查使用者設定檔的 SAML 屬性聲明,請勾選此方塊。

透過命令列 (CLI) 設定 SAML

本指南強烈建議使用 SaltStack Config 使用者介面設定 SAML,而不是使用命令列進行設定。包括這些指示以供參考。

使用 CLI 設定大多數組態標準:

  1. 以 RaaS 使用者身分登入:
    sudo su raas
  2. 可選:僅在手動安裝了 SaltStack Config 的情況下必須執行此步驟。在 RaaS 伺服器上,安裝安裝程式檔案中包括的 OpenSSL .xml 檔案。使用以下命令:
    yum install xmlsec1-openssl
    備註:

    在任何預設存放庫中,RedHat 都沒有現成的 xmlsec1。一種可行的因應措施是,從 CentOS 機器下載 RPM 並將其傳輸至 RedHat。

  3. 導覽至打算儲存組態檔的目錄。任何目錄路徑都可接受。
  4. 建立包含身分識別服務提供者所需的必要組態資訊的 YAML 檔案。如需有關如何格式化這些組態檔的範例,請參閱〈組態檔範例〉
    備註:

    如需各個欄位的說明,請參閱〈SAML 資訊欄位〉

  5. 使用以下命令執行組態檔:
    raas save_sso_config <filepath>

組態檔範例

適用於 Google 的 SAML 組態檔範例

將以下範例中的預留位置文字取代為 IdP 提供的資訊:

name: Google
backend: social_core.backends.saml.SAMLAuth
settings:
  base_uri: https://example.com
  saml_sp_entity_id: raas
  saml_org_info:
    en-US:
    name: Name of Your Organization
    displayname: Display Name for Your Organization
    url: https://example.com
  saml_technical_contact:
    givenName: Name of Your Technical Contact
    emailAddress: email@my_technical_contact.com
  saml_support_contact:
    givenName: Name of Your Support Contact
    emailAddress: email@my_support_contact.com
  saml_enabled_idps:
    saml:
      entity_id: https://accounts.google.com/o/your_organization_id
      attr_user_permanent_id: Your organization's permanent ID
      attr_email: email@my_email_with_identity_provider.com
      attr_username: Your organization's username for the IdP
      url: https://accounts.google.com/o/saml2/your_organization_id
      x509cert: |
        -----BEGIN CERTIFICATE-----
        Insert certificate block of text here
        -----END CERTIFICATE-----
      saml_sp_private_key: |
        -----BEGIN PRIVATE KEY-----
        Insert private key block of text here
        -----END PRIVATE KEY-----
      saml_sp_public_cert: |
        -----BEGIN CERTIFICATE-----
        Insert certificate block of text here
        -----END CERTIFICATE-----

適用於 Okta 的 SAML 組態檔範例

將以下範例中的預留位置文字取代為 IdP 提供的資訊:

name: Okta
backend: social_core.backends.saml.SAMLAuth
settings:
  base_uri: https://example.com
  saml_sp_entity_id: https://example.com/auth/complete/saml
  saml_org_info:
    en-US:
    name: Name of Your Organization
    displayname: Display Name for Your Organization
    url: https://example.com
 saml_technical_contact:
   givenName: Name of Your Technical Contact
   emailAddress: email@my_technical_contact.com
saml_support_contact:
  givenName: Name of Your Support Contact
  emailAddress: email@my_support_contact.com
saml_security_config:
  wantAttributeStatement: False
saml_enabled_idps:
  okta:
    entity_id: https://www.okta.com/your_organization_id
    attr_user_permanent_id: Your organization's permanent ID
    attr_email: email@my_email_with_identity_provider.com
    attr_username: Your organization's username for the IdP
    url: https://example.okta.com/app/your_organization_id
    x509cert: |
      -----BEGIN CERTIFICATE-----
      Insert certificate block of text here
      -----END CERTIFICATE-----
    saml_sp_private_key: |
      -----BEGIN PRIVATE KEY-----
      Insert private key block of text here
      -----END PRIVATE KEY-----
    saml_sp_public_cert: |
      -----BEGIN CERTIFICATE-----
      Insert certificate block of text here
      -----END CERTIFICATE-----

適用於 Google 的 OIDC 組態檔範例

將以下範例中的預留位置文字取代為 IdP 提供的資訊:

name: Name of Your Organization
backend: social_core.backends.google_openidconnect.GoogleOpenIdConnect
settings:
  base_uri: example.com
  google_openidconnect_key: your_id.apps.googleusercontent.com
  google_openidconnect_secret: your_secret

透過命令列 (CLI) 更新 SSO 組態

透過 CLI 更新組態標準:

  1. 以 RaaS 使用者身分登入:
    sudo su raas
  2. 導覽至已儲存組態檔的目錄。請根據需要更新組態檔。
  3. 使用以下命令儲存組態檔:
    raas save_sso_config <filepath>

透過命令列 (CLI) 刪除 SSO 組態

如果可以存取 SaltStack Config 使用者介面,則建議透過使用者介面刪除 SSO 組態。但是,如果需要,可以使用 API (RaaS) 刪除 SSO 組態。

若要刪除 SSO 組態,需要找到已指派給要刪除之組態的動態資料欄位。動態資料欄位是群組名稱的表示,以破折號 - 分隔並且所有字母均為小寫。例如,此動態資料欄位可能為 name-of-your-organization。針對適用於 Google 的 SAML,此動態資料欄位為 google

  1. 在 API (RaaS) 中,使用以下命令產生 SSO 後端的清單:
    client.api.settings.get_sso_backends()
  2. 從 SSO 後端清單中,找到要刪除的組態所對應的動態資料欄位。然後,輸入以下命令,將預留位置文字取代為您的組態動態資料欄位:
    client.api.settings.delete_sso_config('slug-for-your-configuration')