配置您的 IdP

設定 SSO 配置的步驟是

  1. 新增並驗證您的成員用於登入 Docker 的域或域名
  2. 在 Docker 中建立您的 SSO 連線
  3. 配置您的 IdP 以與 Docker 配合使用。
  4. 在 Docker 中完成您的 SSO 連線

本頁介紹了常見 IdP 的步驟 3。

先決條件

在開始之前,請確保您已完成以下操作

  • 您的域已驗證
  • 您已在 Docker 中建立您的 SSO 連線
  • 您已從 Docker 中複製必要的欄位以貼上到您的 IdP 中
    • SAML:實體 IDACS URL
    • Azure AD (OIDC):重定向 URL

SSO 屬性

當用戶使用 SSO 登入時,Docker 會從 IdP 獲取以下屬性

  • 電子郵件地址 - 使用者的唯一識別符號
  • 全名 - 使用者的姓名
  • 組(可選) - 使用者所屬的組列表
  • Docker 組織(可選) - 使用者所屬的組織
  • Docker 團隊(可選) - 使用者被新增到組織中的團隊
  • Docker 角色(可選) - 授予使用者在組織中許可權的角色

如果您對 SSO 連線使用 SAML,Docker 會從 SAML 斷言訊息中獲取這些屬性。您的 IdP 可能使用與上述列表中不同的 SAML 屬性命名。下表列出了可能存在的 SAML 屬性,以便您的 SSO 連線正常工作。

重要

SSO 預設使用即時配置 (JIT)。如果您啟用 SCIM,JIT 值仍會在使用者登入時覆蓋 SCIM 配置設定的屬性值。為避免衝突,請確保您的 JIT 值與您的 SCIM 值匹配。例如,要確保使用者的全名顯示在您的組織中,您將在 SAML 屬性中設定 name 屬性,並確保該值包含他們的姓和名。設定這些值的具體方法(例如,使用 user.firstName + " " + user.lastName 進行構建)因您的 IdP 而異。

提示

當您使用管理員控制檯並啟用 SCIM 時,可選的即時配置 (JIT) 配置可用。透過此功能,您可以透過在您的 SSO 連線中停用 JIT 配置來避免 SCIM 和 JIT 之間的衝突。請參閱 停用 JIT 配置的 SSO 身份驗證

您還可以配置屬性以覆蓋預設值,例如預設團隊或組織。請參閱 角色對映

SSO 屬性SAML 斷言訊息屬性
電子郵件地址"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier""http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn""http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"email
全名"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"name"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname""http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname"
組(可選)"http://schemas.xmlsoap.org/claims/Group""http://schemas.microsoft.com/ws/2008/06/identity/claims/groups"Groupsgroups
Docker 組織(可選)dockerOrg
Docker 團隊(可選)dockerTeam
Docker 角色(可選)dockerRole

重要

如果上表中列出的電子郵件地址屬性均未找到,SSO 會返回錯誤。此外,如果未設定 全名 屬性,則名稱將顯示為 電子郵件地址 的值。

步驟三:配置您的 IdP 以與 Docker 配合使用

您的 IdP 的使用者介面可能與以下步驟略有不同。您可以參考您的 IdP 文件進行驗證。


請參閱 更多資源,瞭解有關如何在 Okta 中使用 SAML 設定 SSO 的影片概述。

  1. 轉到 Okta 管理門戶。

  2. 轉到應用程式和整合 > 應用程式 > 建立應用程式整合

  3. 選擇SAML 2.0,然後選擇下一步

  4. 輸入應用程式名稱“Docker Hub”,並選擇性地上傳應用程式的徽標,然後選擇下一步

  5. 要配置 SAML,請在 Okta 中輸入以下內容

    • ACS URL:單點登入 URL
    • 實體 ID:受眾 URI(SP 實體 ID)
    • 名稱 ID 格式:EmailAddress
    • 應用程式使用者名稱:Email
    • 在以下位置更新應用程式:建立或更新
    • 屬性語句:新增。您可以按照以下示例定義屬性語句
    屬性名稱名稱格式
    name未指定username.firstName + " " + user.lastName
  6. 選擇下一步

  7. 選擇我是 Okta 客戶,正在新增內部應用程式

  8. 選擇完成

  9. 建立應用程式後,轉到您的應用程式並選擇檢視 SAML 設定說明

  10. 您可以在此處找到SAML 登入 URLx509 證書。在文字編輯器中開啟證書檔案,並將檔案的內容貼上到 Docker Hub 或管理員控制檯中的x509 證書欄位中。然後,複製SAML 登入 URL 的值,並將其貼上到 Docker Hub 或管理員控制檯中的相應欄位中。

提示

當您在 Entra ID(以前稱為 Azure AD)中建立 SSO 連線的應用程式時,我們建議您不要將應用程式分配到目錄中的所有使用者。相反,您可以建立一個安全組並將應用程式分配到該組。透過這種方式,您可以控制組織中哪些人可以訪問 Docker。要更改分配的預設設定,請轉到應用程式的主要屬性並找到分配必需設定。將其設定為

請參閱 更多資源,瞭解有關如何在 Entra ID(以前稱為 Azure AD)中使用 SAML 設定 SSO 的影片概述。

  1. 轉到 Azure AD 管理門戶。
  2. 轉到預設目錄 > 新增 > 企業應用程式 > 建立您自己的應用程式
  3. 輸入應用程式名稱“Docker”,並選擇非庫選項。
  4. 建立應用程式後,轉到單點登入並選擇SAML
  5. 基本 SAML 配置部分中選擇編輯
  6. 新增以下來自 Docker Hub 的設定
    • 實體 ID:識別符號
    • ACS URL:回覆 URL
  7. 儲存配置。
  8. SAML 簽名證書部分下載證書(Base64)
  9. 在文字編輯器中開啟證書檔案,並將檔案的內容貼上到 Docker Hub 或管理員控制檯中的x509 證書欄位中。
  10. 設定 Docker 部分複製登入 URL,並將其貼上到 Docker Hub 或管理員控制檯中的SAML 登入 URL 欄位中。

請參閱 更多資源,瞭解有關如何在 Azure Connect (OIDC) 中設定 SSO 的影片概述。

建立應用程式註冊

  1. 轉到 Azure AD 管理門戶。
  2. 選擇應用程式註冊 > 新的註冊
  3. 輸入“Docker Hub SSO”或類似的應用程式名稱。
  4. 支援的帳戶型別下,指定可以使用此應用程式或訪問應用程式的使用者。
  5. 重定向 URI 部分,從下拉選單中選擇Web,並將 Docker 控制檯中的重定向 URI 值貼上到此欄位中。
  6. 選擇註冊以註冊應用程式。
  7. 記下應用程式概述頁面中的客戶端 ID。您需要此資訊才能繼續在 Docker Hub 上配置 SSO。

為您的 Docker 應用程式建立客戶端金鑰

  1. 轉到您在前面的步驟中建立的 Docker Hub SSO 應用程式,然後選擇證書和金鑰
  2. 選擇 **+ 新客戶端金鑰**。
  3. 指定金鑰的描述並設定金鑰在 Azure 上的使用時長。
  4. 選擇 **新增** 繼續。
  5. 複製金鑰的 **值** 欄位並將其儲存在安全的地方,以便您稍後使用它來配置 Docker SSO。
  1. 轉到您在之前的步驟中建立的 Docker Hub SSO 應用程式。
  2. 導航到應用程式設定中的 **API 許可權** 類別。
  3. 選擇 **授予對 YOUR TENANT NAME 的管理員同意 > 是**。
  4. 接下來,您需要新增其他許可權。選擇 **新增許可權**。
  5. 選擇 **委託許可權**。
  6. 搜尋 Directory.Read.All 並選擇此選項。
  7. 然後搜尋 User.Read 並選擇此選項。
  8. 選擇 **新增許可權**。

您可以透過檢查 **狀態** 列來驗證是否已正確授予每個許可權的管理員同意。

將使用者分配到 SSO 應用程式

  1. 導航到您的 Azure AD 儀表板,然後選擇 **企業應用程式 > 應用程式名稱**。
  2. 選擇 **1. 分配使用者和組**。
  3. 新增允許使用該應用程式的使用者。

在 Docker 控制檯中,貼上之前步驟中獲得的以下值以繼續配置

  • 客戶端 ID
  • 客戶端金鑰
  • Azure AD 域

更多資源

以下影片演示瞭如何將您的 IdP 與您的 Docker SSO 連線配置。

下一步是什麼?

完成您的連線 在 Docker 控制檯中,然後測試您的連線。