建立 SSO 連線
建立單點登入 (SSO) 連線需要先在 Docker 中設定連線,然後在身份提供者 (IdP) 中設定連線。本指南提供了在 Docker 和 IdP 中設定 SSO 連線的步驟。
提示
本指南需要在 Docker 和 IdP 中複製和貼上值。為確保無縫連線過程,請一次性完成本指南中的所有步驟,併為 Docker 和 IdP 開啟單獨的瀏覽器視窗。
前提條件
開始之前,請確保您已完成以下事項
- 您的域名已驗證
- 您已在 IdP 中設定了賬戶
- 您已完成配置單點登入指南中的步驟
第一步:在 Docker 中建立 SSO 連線
注意
在 Docker 中建立 SSO 連線之前,您必須驗證至少一個域名。
- 登入 Admin Console。
- 在選擇個人資料頁面選擇您的組織或公司。請注意,當組織隸屬於公司時,您必須選擇公司並在公司級別配置組織的域名。
- 在“安全和訪問”下,選擇 SSO 和 SCIM。
- 選擇 建立連線 併為連線命名。
- 選擇認證方法,SAML 或 Azure AD (OIDC)。
- 複製以下欄位新增到您的 IdP:
- Okta SAML:實體 ID,ACS URL
- Azure OIDC:重定向 URL
- 保持此視窗開啟,以便您在本指南末尾將 IdP 中的連線資訊貼上到此處。
重要提示
組織管理正在遷移到 Admin Console。
在 Docker Admin Console 中管理成員、團隊、設定和活動日誌。Docker Hub 中對這些功能的訪問許可權即將終止。請前往Admin Console。
- 登入 Docker Hub。
- 選擇 My Hub,然後從列表中選擇您的組織。
- 在組織頁面上,選擇 Settings,然後選擇 Security。
- 在 SSO 連線表中,選擇 建立連線 併為連線命名。
- 選擇認證方法,SAML 或 Azure AD (OIDC)。
- 複製以下欄位新增到您的 IdP:
- Okta SAML:實體 ID,ACS URL
- Azure OIDC:重定向 URL
- 保持此視窗開啟,以便您在本指南末尾將 IdP 中的連線資訊貼上到此處。
第二步:在 IdP 中建立 SSO 連線
您的 IdP 使用者介面可能與以下步驟略有不同。請參閱您的 IdP 文件進行確認。
- 登入您的 Okta 賬戶。
- 選擇 Admin 開啟 Okta 管理門戶。
- 在左側導航選單中,選擇 Administration。
- 選擇 Administration,然後選擇 Create App Integration。
- 選擇 SAML 2.0,然後選擇 Next。
- 輸入 "Docker Hub" 作為您的 App Name。
- 可選。上傳徽標。
- 選擇 Next。
- 將 Docker 中的以下值輸入到 Okta 中的對應欄位:
- Docker ACS URL:Single Sign On URL
- Docker 實體 ID:Audience URI (SP Entity ID)
- 在 Okta 中配置以下設定:
- Name ID format:
EmailAddress
- Application username:
Email
- Update application on:
Create and update
- Name ID format:
- 可選。新增 SAML 屬性。有關 SSO 屬性表,請參閱SSO attributes。
- 選擇 Next。
- 選中 This is an internal app that we have created 複選框。
- 選擇 Finish。
- 登入您的 Azure AD 管理門戶。
- 選擇 Default Directory,然後選擇 Add。
- 選擇 Enterprise Application,然後選擇 Create your own application。
- 為應用程式名稱輸入 "Docker",並選擇 non-gallery 選項。
- 建立應用程式後,轉到 Single Sign-On 並選擇 SAML。
- 在 Basic SAML configuration 部分選擇 Edit。
- 將 Docker 中的以下值輸入到 Azure 中的對應欄位:
- Docker 實體 ID:Identifier
- Docker ACS URL:Reply URL
- 可選。新增 SAML 屬性。有關 SSO 屬性表,請參閱SSO attributes。
- 儲存配置。
- 在 SAML Signing Certificate 部分,下載您的 Certificate (Base64)。
要建立 Azure Connect (OIDC) 連線,您必須為 Docker 建立應用註冊、客戶端金鑰並配置 API 許可權:
建立應用註冊
- 登入您的 Azure AD 管理門戶。
- 選擇 App Registration,然後選擇 New Registration。
- 輸入 "Docker Hub SSO" 或類似的應用程式名稱。
- 在支援的賬戶型別下,指定誰可以使用此應用程式或訪問該應用。
- 在 Redirect URI 部分,從下拉選單中選擇 Web,並將 Docker 控制檯中的 Redirect URI 值貼上到此欄位。
- 選擇 Register 註冊應用。
- 複製應用概覽頁面上的 Client ID。您需要此資訊來繼續在 Docker 中配置 SSO。
建立客戶端金鑰
- 在 Azure AD 中開啟您的應用,然後選擇 Certificates & secrets。
- 選擇 + New client secret。
- 指定金鑰的描述,並設定金鑰的使用期限。
- 選擇 Add 繼續。
- 複製金鑰的 Value 欄位。您需要此資訊來繼續在 Docker 中配置 SSO。
配置 API 許可權
- 在 Azure AD 中開啟您的應用並導航到應用設定。
- 選擇 API permission,然後選擇 Grant admin consent for [您的租戶名稱]。
- 選擇 Yes 確認。
- 確認後,選擇 Add a permission,然後選擇 Delegated permissions。
- 搜尋
User.Read
並選擇此選項。 - 選擇 Add permissions 確認。
- 透過檢查 Status 列,驗證是否已為每個許可權授予管理員同意。
第三步:連線 Docker 和 IdP
在 Docker 和 IdP 中建立連線後,您可以交叉連線它們來完成 SSO 連線:
開啟您在 Okta 中建立的應用,然後選擇 View SAML setup instructions。
從 Okta SAML 設定說明頁面複製以下值:
SAML Sign-in URL
x509 證書
重要提示
您必須複製整個 x509 證書內容,包括
----BEGIN CERTIFICATE----
和----END CERTIFICATE----
行。
開啟 Docker Hub 或 Admin Console。您的 SSO 配置頁面應仍處於開啟狀態(從本指南的第一步)。
選擇 Next 開啟 更新單點登入連線 頁面。
將您的 Okta SAML Sign-in URL 和 x509 證書值貼上到 Docker 中。
選擇 Next。
可選。選擇一個預設團隊用於預配使用者,然後選擇 Next。
驗證您的 SSO 連線詳情,然後選擇 Create Connection。
在 Azure AD 中開啟您的應用。
在文字編輯器中開啟您下載的 Certificate (Base64)。
複製以下值:
從 Azure AD:Login URL
從文字編輯器中複製 Certificate (Base64) 檔案內容:
重要提示
您必須複製整個 Certificate (base64) 內容,包括
----BEGIN CERTIFICATE----
和----END CERTIFICATE----
行。
開啟 Docker Hub 或 Admin Console。您的 SSO 配置頁面應仍處於開啟狀態(從本指南的第一步)。
將您的 Login URL 和 Certificate (Base64) 值貼上到 Docker 中。
選擇 Next。
可選。選擇一個預設團隊用於預配使用者,然後選擇 Next。
驗證您的 SSO 連線詳情,然後選擇 Create Connection。
- 開啟 Docker Hub 或 Admin Console。您的 SSO 配置頁面應仍處於開啟狀態(從本指南的第一步)。
- 將 Azure AD 中的以下值貼上到 Docker 中:
- Client ID
- Client Secret
- Azure AD 域名
- 選擇 Next。
- 可選。選擇一個預設團隊用於預配使用者,然後選擇 Next。
- 驗證您的 SSO 連線詳情,然後選擇 Create Connection。
第四步:測試連線
在 Docker 中完成 SSO 連線過程後,我們建議測試它:
- 開啟隱身瀏覽器。
- 使用您的域名電子郵件地址登入 Admin Console。
- 瀏覽器將重定向到您 IdP 的登入頁面進行認證。
- 使用您的域名電子郵件進行認證,而不是使用您的 Docker ID。
您還可以透過命令列介面 (CLI) 測試 SSO 連線。如果您想透過 CLI 測試,您的使用者必須擁有個人訪問令牌 (PAT)。
可選:強制 SSO
重要提示
如果未強制 SSO,使用者可以選擇使用 Docker 使用者名稱和密碼或 SSO 登入。
強制 SSO 要求使用者在登入 Docker 時使用 SSO。這集中了認證並強制執行 IdP 設定的策略。
- 登入 Admin Console。
- 在選擇個人資料頁面選擇您的組織或公司。請注意,當組織隸屬於公司時,您必須選擇公司並在公司級別配置組織的域名。
- 在“安全和訪問”下,選擇 SSO 和 SCIM。
- 在 SSO 連線表中,選擇操作圖示,然後選擇 啟用強制。強制 SSO 後,您的使用者將無法更改電子郵件地址和密碼、將使用者賬戶轉換為組織,或透過 Docker Hub 設定 2FA。如果您想使用 2FA,必須透過 IdP 啟用 2FA。
- 繼續按照螢幕上的說明操作,並確認您已完成所有任務。
- 選擇 開啟強制 完成。
您的使用者現在必須使用 SSO 登入 Docker。
注意
強制 SSO 後,使用者無法使用密碼訪問 Docker CLI。使用者必須使用個人訪問令牌 (PAT) 進行認證以訪問 Docker CLI。
更多資源
以下影片演示瞭如何強制 SSO。