可以使用 [驗證] 工作區在 SaltStack Config 中設定 SSO,以與 OAuth 和 OIDC 通訊協定相容的驗證系統搭配使用。

備註: 如果需要,可以在 SaltStack Config 中一次使用多個系統來驗證使用者。例如,您可以使用以 SAML 為基礎的 IdP 或以 LDAP 為基礎的 IdP,同時以原生方式將某些使用者認證儲存在 RaaS 伺服器上。但是, SaltStack Config 不允許同時設定兩個以上的 SAML 提供者或兩個以上的 LDAP 提供者。

關於 OAuth 和 OIDC SSO

OAuth Single Sign-On (SSO) 是許多組織在實作 SaltStack Config 期間設定的功能。SSO 具有很多優勢,其中包括:

  • 縮短使用者以相同身分登入服務所花的時間。使用者登入某個機構的其中一項服務後,即會自動進行驗證,以進入使用 SSO 的任何其他服務。
  • 減少密碼疲勞。使用者只需記住一組認證,而非多組認證。

許多服務提供 OAuth 通訊協定的實作並支援 OIDC,包括 OKTA、Google、Microsoft、GitLab、Zendesk、Apple、Keycloak、Salesforce 等。

備註: SaltStack Config 目前僅支援透過 OKTA 和 Google 進行 OAuth 和 OIDC 驗證。

OAuth 和 OIDC 如何與 SaltStack Config 搭配使用

當使用者嘗試使用 OAuth 身分識別登入 SaltStack Config 時:

  1. SaltStack Config 向使用者請求存取服務資源的授權。
  2. 如果使用者授權該請求,則 SaltStack Config 會收到授權准許。
  3. SaltStack Config 透過驗證自己的身分向授權伺服器 (API) 請求存取 Token。
  4. 如果應用程式身分已進行驗證且授權准許有效,則授權伺服器 (API) 會向 SaltStack Config 核發存取 Token。
  5. SaltStack Config 向資源伺服器 (API) 請求資源並提供用於驗證的存取 Token。
  6. 如果存取 Token 有效,則資源伺服器 (API) 會為應用程式提供資源,並允許使用者登入 SaltStack Config

OAuth 和 OIDC 驗證術語

術語 定義
OAuth

OAuth 2.0 是一種用於委派存取權的開放式通訊協定 (有時也稱為標準),在使用安全性 Token 驗證使用者的身分後,使用者可以在網站上執行動作。使用者通常使用此方法為應用程式提供對其在其他第三方應用程式上的資訊的存取權,而無需提供存取認證 (密碼)。

OAuth 是以瀏覽器為基礎的 Single Sign-On (SSO)。經資源擁有者核准,OAuth 允許授權伺服器將存取 Token 核發給第三方用戶端。然後,第三方會使用存取 Token 存取資源伺服器託管的受保護資源。

OIDC

OpenID Connect

OpenID Connect (OIDC) 是位於 OAuth 2.0 通訊協定上方的簡單身分識別層。OIDC 可讓用戶端根據授權伺服器執行的驗證來驗證使用者的身分。此外,還可以跨應用程式取得有關使用者的基本設定檔資訊。

資源擁有者 資源擁有者是授權應用程式存取其帳戶的使用者。應用程式對使用者帳戶的存取權僅限於授與的授權範圍,例如讀取或寫入權限。
用戶端 用戶端是需要存取使用者帳戶的第三方應用程式,在此案例中為 SaltStack Config
授權伺服器 授權伺服器將主控受保護的使用者帳戶和認證。它會驗證使用者的身分,然後向用戶端核發存取 Token。經常透過服務的 API 進行存取。
資源伺服器

資源伺服器是用來存取使用者資訊的 API 伺服器。它會在用戶端取得存取 Token 之後處理已驗證的請求。小型部署通常只有一個資源伺服器,並且通常作為與授權伺服器相同的代碼庫或部署的一部分建置。

大型部署可擁有多個資源伺服器。每個資源伺服器完全獨立,但共用同一授權伺服器。

預先設定步驟

SaltStack Config 中設定 OAuth 和 OIDC 之前,請確保您對組織的 OAuth 2.0 服務 (OKTA 或 Google) 具有必要的存取權,並且相對熟悉其登錄應用程式的程序。

備註: SaltStack Config 目前僅支援透過 OKTA 和 Google 進行 OAuth 和 OIDC 驗證。

在 OKTA 或 Google 中將 SaltStack Config 登錄為應用程式

在 OAuth 服務網站上,輸入有關 SaltStack Config 的基本資訊,例如名稱、網站等。登錄應用程式後,您將獲得一個用戶端密碼,需要將其提供給 SaltStack Config

建立應用程式時最重要的一點是,登錄應用程式將要使用的一或多個重新導向 URL。重新導向 URL 是在授權應用程式後 OAuth 2.0 服務將使用者傳回到的位置。

設定身分識別提供者

使用組織的慣用 OAuth 和 OIDC 服務設定 SSO:

  1. 按一下側邊功能表上的管理 > 驗證
  2. 按一下建立
  3. 組態類型功能表中,選取 OIDC
  4. 名稱欄位中,為此組態指派描述性名稱。
  5. OIDC 提供者功能表中,選取 OKTAGoogle
  6. 在以下欄位中填寫 SaltStack Config 安裝的相關資訊:
    • 基礎 URI
    • API URL (僅適用於 OKTA 組態)
    • Key
    • 密碼
    備註: 如需這些欄位的說明,請參閱 OIDC 資訊欄位
  7. 按一下儲存

SaltStack Config 的 OIDC 組態現已完成。

為 OIDC 設定 RBAC

對於 OIDC,使用者首先需要登入 SaltStack Config,才能新增為本機使用者資料庫中的使用者。使用者最初登入後,其角色和權限的管理方式將與在 RaaS 伺服器上的 SaltStack Config 中本機儲存認證的使用者的管理方式相同。

使用者最初登入後,可以使用 [角色] 工作區為該使用者指派適當的角色和權限。如需有關 [角色] 工作區的詳細資訊,請參閱〈角色和權限〉

OIDC 資訊欄位

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

備註: 如果在設定連線時需要協助,請連絡管理員。
欄位 說明
名稱 SSE 所使用的驗證連線的名稱。當您登入 [驗證] 工作區時,此名稱將顯示在側邊欄中,如果要設定多個組態,此名稱應是唯一的。
OIDC 提供者 從此功能表中選取您的 OIDC 身分識別提供者,以顯示特定於該提供者的設定。
基礎 URI 您的組織在 SaltStack Config 中所使用的基底 URL,亦稱為主機伺服器位址。此 URL 的格式為 FQDN 或 IP 位址,例如 https://example.com
API URL 由您的身分識別提供者提供的 API URL。僅當身分識別提供者為 OKTA 時,才會顯示此欄位。
Key 由您的身分識別提供者提供的金鑰。在 OKTA 中,金鑰是指用戶端識別碼。
密碼 由您的身分識別提供者提供的密碼。在 OKTA 中,金鑰是指用戶端密碼。