建立 SSO 連線

建立單一登入 (SSO) 連線需要先在 Docker 中設定連線,然後在您的身分識別提供者 (IdP) 中設定連線。本指南提供在 Docker 和您的 IdP 中設定 SSO 連線的步驟。

提示

本指南需要在 Docker 和您的 IdP 中複製和貼上值。為了確保連線流程順暢,請在一個工作階段中完成本指南中的所有步驟,並為 Docker 和您的 IdP 保持開啟不同的瀏覽器。

先決條件

在開始之前,請確保您已完成以下步驟

  • 您的網域已驗證
  • 您已使用 IdP 設定帳戶
  • 您已完成設定單一登入指南中的步驟

步驟一:在 Docker 中建立 SSO 連線

注意事項

在 Docker 中建立 SSO 連線之前,您必須至少驗證一個網域。


搶先體驗

Docker 管理主控台是一款搶先體驗產品。

所有公司負責人和組織負責人都可以使用它。您仍然可以在 Docker Hub 中管理組織,但管理主控台包含公司級管理和增強的組織管理功能。

  1. 登入管理主控台
  2. 從左側下拉式選單中選取您的組織或公司。請注意,當組織屬於公司的一部分時,您必須選取公司並在公司層級為組織設定網域。
  3. 在「安全性與存取」下,選取**SSO 和 SCIM**。
  4. 選取**建立連線**並提供連線的名稱。
  5. 選擇驗證方法,**SAML** 或 **Azure AD (OIDC)**。
  6. 複製以下欄位以新增至您的 IdP
    • Okta SAML:**實體 ID**、**ACS URL**
    • Azure OIDC:**重新導向 URL**
  7. 保持此視窗開啟,以便您在本指南結尾將來自 IdP 的連線資訊貼上到這裡。
  1. 登入 Docker Hub。
  2. 選取**組織**,然後從清單中選取您的組織。
  3. 在您的組織頁面上,選取**設定**,然後選取**安全性**。
  4. 在 SSO 連線表格中,選取**建立連線**並提供連線的名稱。
  5. 選擇驗證方法,**SAML** 或 **Azure AD (OIDC)**。
  6. 複製以下欄位以新增至您的 IdP
    • Okta SAML:**實體 ID**、**ACS URL**
    • Azure OIDC:**重新導向 URL**
  7. 保持此視窗開啟,以便您在本指南結尾將來自 IdP 的連線資訊貼上到這裡。

步驟二:在您的 IdP 中建立 SSO 連線

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


  1. 登入您的 Okta 帳戶。
  2. 選擇管理員以開啟 Okta 管理員入口網站。
  3. 從左側導覽列中,選擇管理
  4. 選擇管理,然後選擇建立應用程式整合
  5. 選擇SAML 2.0,然後選擇下一步
  6. 應用程式名稱中輸入「Docker Hub」。
  7. 選用。上傳標誌。
  8. 選擇下一步
  9. 將 Docker 中的以下值輸入到 Okta 對應的欄位中
    • Docker ACS URL:單一登入 URL
    • Docker Entity ID:受眾 URI (SP Entity ID)
  10. 在 Okta 中設定以下設定
    • 名稱 ID 格式:EmailAddress
    • 應用程式使用者名稱:Email
    • 更新應用程式於:建立和更新
  11. 選擇下一步
  12. 勾選這是我們建立的內部應用程式核取方塊。
  13. 選擇完成
  1. 登入您的 Azure AD 管理員入口網站。
  2. 選擇預設目錄,然後選擇新增
  3. 選擇企業應用程式,然後選擇建立您自己的應用程式
  4. 輸入「Docker」作為應用程式名稱,然後選擇非資源庫選項。
  5. 建立應用程式後,前往單一登入並選擇SAML
  6. 基本 SAML 設定區段中選擇編輯
  7. 將 Docker 中的以下值輸入到 Azure 對應的欄位中
    • Docker Entity ID:識別碼
    • Docker ACS URL:回覆 URL
  8. 儲存設定。
  9. SAML 簽署憑證區段中,下載您的憑證 (Base64)

要建立 Azure Connect (OIDC) 連線,您必須建立應用程式註冊、用戶端密碼,並設定 Docker 的 API 權限

建立應用程式註冊

  1. 登入您的 Azure AD 管理員入口網站。
  2. 選擇應用程式註冊,然後選擇新增註冊
  3. 輸入「Docker Hub SSO」或類似的名稱作為應用程式名稱。
  4. 支援的帳戶類型下,指定可以使用此應用程式或存取應用程式的人員。
  5. 重新導向 URI區段中,從下拉式選單中選擇Web,然後將 Docker 主控台中的重新導向 URI值貼到此欄位中。
  6. 選擇註冊以註冊應用程式。
  7. 從應用程式的概觀頁面複製用戶端 ID。您需要此資訊才能繼續在 Docker 中設定 SSO。

建立用戶端密碼

  1. 在 Azure AD 中開啟您的應用程式,然後選擇憑證與密碼
  2. 選擇+ 新增用戶端密碼
  3. 指定密碼的描述,並設定金鑰可以使用多久。
  4. 選擇新增以繼續。
  5. 複製密碼的欄位。您需要此資訊才能繼續在 Docker 中設定 SSO。

設定 API 權限

  1. 在 Azure AD 中開啟您的應用程式,然後瀏覽至您的應用程式設定。
  2. 選擇API 權限,然後選擇授予 [您的租戶名稱] 的管理員同意
  3. 選擇以確認。
  4. 確認後,選擇新增權限,然後選擇委派的權限
  5. 搜尋User.Read並選擇此選項。
  6. 選擇新增權限以確認。
  7. 檢查狀態欄位,確認已授予每個權限的管理員同意。

步驟三:連線 Docker 和您的 IdP

在 Docker 和您的 IdP 中建立連線後,您可以交叉連接它們以完成您的 SSO 連線


  1. 開啟您在 Okta 中建立的應用程式,然後選擇檢視 SAML 設定說明
  2. 從 Okta SAML 設定說明頁面複製以下值
    • SAML 登入 URL
    • x509 憑證
  3. 開啟 Docker Hub 或管理主控台。您的 SSO 設定頁面應該仍然從本指南的第一步開啟。
  4. 選擇下一步以開啟更新單一登入連線頁面。
  5. 將您的 Okta SAML 登入 URLx509 憑證值貼到 Docker 中。
  6. 選擇下一步
  7. 選用。選擇要將使用者佈建到的預設團隊,然後選擇下一步
  8. 驗證您的 SSO 連線詳細資訊,然後選擇建立連線
  1. 在 Azure AD 中開啟您的應用程式。
  2. 在文字編輯器中開啟您下載的憑證 (Base64)
  3. 複製以下值
    • 從 Azure AD:登入 URL
    • 從您的文字編輯器複製您的憑證 (Base64)檔案的內容
  4. 開啟 Docker Hub 或管理主控台。您的 SSO 設定頁面應該仍然從本指南的第一步開啟。
  5. 將您的登入 URL憑證 (Base64)值貼到 Docker 中。
  6. 選擇下一步
  7. 選用。選擇要將使用者佈建到的預設團隊,然後選擇下一步
  8. 驗證您的 SSO 連線詳細資訊,然後選擇建立連線
  1. 開啟 Docker Hub 或管理主控台。您的 SSO 設定頁面應該仍然從本指南的第一步開啟。
  2. 將以下值從 Azure AD 貼到 Docker 中
    • 用戶端 ID
    • 用戶端密碼
    • Azure AD 網域
  3. 選擇下一步
  4. 選用。選擇要將使用者佈建到的預設團隊,然後選擇下一步
  5. 驗證您的 SSO 連線詳細資訊,然後選擇建立連線

步驟四:測試您的連線

在您完成 Docker 中的 SSO 連線流程後,我們建議您測試它

  1. 開啟無痕瀏覽器。
  2. 使用您的網域電子郵件地址登入管理主控台。
  3. 瀏覽器將重新導向到您的 IdP 登入頁面進行驗證。
  4. 透過您的網域電子郵件進行驗證,而不是使用您的 Docker ID。

您也可以透過命令列介面 (CLI) 測試您的 SSO 連線。如果您想透過 CLI 進行測試,您的使用者必須擁有個人存取權杖 (PAT)。

選用:強制執行 SSO

重要

如果未強制執行 SSO,使用者可以選擇使用 Docker 使用者名稱和密碼或 SSO 登入。

強制執行 SSO 要求使用者在登入 Docker 時使用 SSO。這會集中驗證並強制執行 IdP 設定的原則。

  1. 登入管理主控台
  2. 從左側下拉式選單中選取您的組織或公司。請注意,當組織屬於公司的一部分時,您必須選取公司並在公司層級為組織設定網域。
  3. 在「安全性與存取」下,選取**SSO 和 SCIM**。
  4. 在 SSO 連線表格中,選擇動作圖示,然後選擇啟用強制執行。強制執行 SSO 時,您的使用者將無法修改其電子郵件地址和密碼、將使用者帳戶轉換為組織,或透過 Docker Hub 設定雙重驗證。如果您要使用雙重驗證,您必須透過您的 IdP 啟用雙重驗證。
  5. 繼續螢幕上的說明,並驗證您已完成所有工作。
  6. 選擇開啟強制執行以完成。

您的使用者現在必須使用 SSO 登入 Docker。

更多資源

以下影片示範如何強制執行 SSO。