SCIM 佈建

跨網域身分管理系統 (SCIM) 適用於 Docker Business 客戶。本指南概述 SCIM 佈建。

SCIM 的運作方式

SCIM 透過您的身分識別提供者 (IdP) 為 Docker 提供自動化的使用者佈建和取消佈建。啟用 SCIM 後,指派給 IdP 中 Docker 應用程式的使用者會自動佈建並新增至您的 Docker 組織。如果使用者未指派,則會從 Docker 中移除。

SCIM 也會同步 IdP 中的使用者設定檔更新,例如名稱變更。SCIM 可與 Docker 的預設即時 (JIT) 佈建設定一起使用,或在停用 JIT 的情況下自行使用。

SCIM 支援自動化

  • 建立使用者
  • 更新使用者設定檔
  • 移除和停用使用者
  • 重新啟用使用者
  • 群組映射

支援的屬性

重要

Docker 預設為 SSO 設定使用 JIT 佈建。如果您啟用 SCIM,JIT 值仍然會覆寫 SCIM 佈建設定的屬性值。為避免衝突,您的 JIT 屬性值必須與您的 SCIM 屬性值相符。為了避免 SCIM 和 JIT 之間的衝突,您也可以停用 JIT 佈建。請參閱即時佈建以了解更多資訊。

屬性是使用者資訊的片段,例如姓名和電子郵件,在使用 SCIM 時會在您的 IdP 和 Docker 之間同步。正確映射這些屬性對於無縫使用者佈建至關重要,並且可以在使用 SSO 時防止重複的項目。

下表列出 SCIM 支援的屬性

屬性說明
userName使用者的主要電子郵件地址,用作唯一識別碼
name.givenName使用者的名字
name.familyName使用者的姓氏
active指示使用者是否已啟用或停用,設定為「false」以取消佈建使用者

有關支援屬性和 SCIM 的其他詳細資訊,請參閱Docker Hub API SCIM 參考

在 Docker 中啟用 SCIM

您必須先設定 SSO,才能啟用 SCIM。使用 SCIM 不需要強制執行 SSO。


搶先體驗

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

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

  1. 登入管理主控台
    1. 登入Docker Hub在您的 IdP 中啟用 SCIM

      您的 IdP 使用戶介面可能與以下步驟略有不同。您可以參考 IdP 的說明文件來驗證。如需更多詳細資訊,請參閱 IdP 的說明文件。


      啟用 SCIM

      1. 登入 Okta 並選擇管理員以開啟管理員入口網站。
      2. 開啟您在設定 SSO 連線時建立的應用程式。
      3. 在應用程式頁面上,選擇一般索引標籤,然後選擇編輯應用程式設定
      4. 啟用 SCIM 布建,然後選擇儲存
      5. 現在您可以存取 Okta 中的布建索引標籤。瀏覽至此索引標籤,然後選擇編輯 SCIM 連線
      6. 若要在 Okta 中設定 SCIM,請使用下列值和設定來設定您的連線。
        • SCIM 基礎 URL:SCIM 連接器基礎 URL(從 Docker Hub 複製)
        • 使用者唯一識別欄位:email
        • 支援的布建動作:推送新使用者推送設定檔更新
        • 驗證模式:HTTP 標頭
        • SCIM 持有人權杖:HTTP 標頭授權持有人權杖(從 Docker Hub 複製)
      7. 選擇測試連接器設定
      8. 檢閱測試結果並選擇儲存

      啟用同步

      1. 在 Okta 中,選擇布建
      2. 選擇到應用程式,然後選擇編輯
      3. 啟用建立使用者更新使用者屬性停用使用者
      4. 選擇儲存
      5. 移除不必要的對應。必要的對應如下:
        • 使用者名稱
        • 名字
        • 姓氏
        • 電子郵件
      1. 在 Azure 管理入口網站中,前往企業應用程式,然後選擇您在設定 SSO 連線時建立的Docker應用程式。
      2. 選擇布建,然後選擇開始使用
      3. 選擇自動布建模式。
      4. 管理員認證表單中輸入 Docker 的SCIM 基礎 URLAPI 權杖
      5. 測試連線,然後選擇儲存
      6. 前往對應,然後選擇布建 Azure Active Directory 群組
      7. 已啟用值設定為
      8. 選擇布建 Azure Active Directory 使用者
      9. 移除所有不支援的屬性。
      10. 選擇儲存
      11. 將布建狀態設定為開啟

      設定角色映射

      您可以在 IdP 中將角色指派給組織中的成員。若要設定角色,您可以使用要指派角色之人員的選用使用者層級屬性。除了角色之外,您還可以設定組織或團隊來覆寫 SSO 連線設定的預設布建值。

      注意

      SCIM 和 JIT 布建都支援角色對應。使用 JIT 布建時,角色對應僅適用於使用者最初布建到組織時。

      下表列出支援的選用使用者層級屬性。

      屬性可能的值注意事項
      dockerRolemembereditorowner,如需每個角色的權限清單,請參閱角色和權限如果您未在 IdP 中指派角色,則 dockerRole 屬性的值預設為 member。當您設定屬性時,這將會覆寫預設值。
      dockerOrgorganizationName,例如名為「moby」的組織將會是 moby設定此屬性將會覆寫 SSO 連線設定的預設組織。此外,這不會將使用者新增到預設團隊。如果未設定此屬性,則會將使用者布建到預設組織和預設團隊。如果設定此屬性且也設定 dockerTeam,則會將使用者布建到該組織內的團隊。
      dockerTeamteamName,例如,名為「developers」的團隊將會是 developers設定此屬性會將使用者布建到預設組織和指定的團隊,而不是 SSO 連線的預設團隊。如果團隊不存在,這也會建立團隊。您仍然可以使用群組對應將使用者布建到多個組織中的團隊。如需更多詳細資訊,請參閱群組對應

      在 IdP 中設定角色後,您必須在 IdP 中起始同步,才能將變更推送至 Docker。

      用於設定這些屬性的外部命名空間為 urn:ietf:params:scim:schemas:extension:docker:2.0:User


      在 Okta 中設定角色對應

      1. 請先設定SSO 和 SCIM。
      2. 在 Okta 管理員入口網站中,前往目錄,選擇設定檔編輯器,然後選擇使用者(預設)
      3. 選擇新增屬性並設定您要新增的角色、組織或團隊的值。不需要精確的命名。
      4. 返回設定檔編輯器並選擇您的應用程式。
      5. 選擇新增屬性並輸入所需的值。外部名稱外部命名空間必須完全相同。組織/團隊/角色對應的外部名稱值分別為 dockerOrgdockerTeamdockerRole,如先前表格所列。外部命名空間對所有名稱都相同:urn:ietf:params:scim:schemas:extension:docker:2.0:User
      6. 建立屬性後,瀏覽至頁面頂端並選擇對應,然後選擇Okta 使用者到您的應用程式
      7. 前往新建立的屬性,並將變數名稱對應到外部名稱,然後選擇儲存對應。如果您使用的是 JIT 布建,請繼續執行下列步驟。
      8. 瀏覽至應用程式並選擇您的應用程式
      9. 選擇一般,然後選擇SAML 設定,再選擇編輯
      10. 選擇步驟 2 並設定從使用者屬性到 Docker 變數的對應。

      依使用者指派角色

      1. 在 Okta 管理員入口網站中,選擇目錄,然後選擇人員
      2. 選擇設定檔,然後選擇編輯
      3. 選擇屬性並將屬性更新為所需的值。

      依群組指派角色

      1. 在 Okta 管理員入口網站中,選擇目錄,然後選擇人員
      2. 選擇您的群組,然後選擇應用程式
      3. 開啟您的應用程式並選擇編輯圖示。
      4. 將屬性更新為所需的值。

      如果使用者尚未設定屬性,則新增至群組的使用者將在布建時繼承這些屬性。

      在 Azure AD 中設定角色對應

      1. 請先設定SSO 和 SCIM。
      2. 在 Azure AD 管理入口網站中,開啟企業應用程式並選擇您的應用程式
      3. 選擇布建,然後選擇對應,再選擇布建 Azure Active Directory 使用者
      4. 若要設定新的對應,請勾選顯示進階選項,然後選擇編輯屬性選項
      5. 使用所需的角色、組織或群組對應(例如,urn:ietf:params:scim:schemas:extension:docker:2.0:User:dockerRole)作為字串類型建立新的項目。
      6. 瀏覽回使用者的屬性對應並選擇新增新的對應

      運算式對應

      此實作最適用於角色,但不能與使用相同方法的組織和團隊對應一起使用。使用這種方法,您可以在群組層級指派屬性,成員可以繼承這些屬性。這是角色對應的建議方法。

      1. 編輯屬性檢視中,選擇運算式對應類型。

      2. 如果您可以建立直接命名為角色的應用程式角色(例如,ownereditor),則在運算式欄位中,您可以使用 SingleAppRoleAssignment([appRoleAssignments])

        或者,如果您只能使用已定義的應用程式角色(例如,我的公司管理員),則需要為這些角色設定切換。例如:

        Switch(SingleAppRoleAssignment([appRoleAssignments]), "member", "My Corp Administrator", "owner", "My Corp Editor", "editor")`
      3. 設定下列欄位:

        • 目標屬性urn:ietf:params:scim:schemas:extension:docker:2.0:User:dockerRole
        • 使用此屬性比對物件:否
        • 套用此對應:永遠
      4. 儲存您的設定。

      直接對應

      直接對應是運算式對應的替代方案。此實作同時適用於所有三種對應類型。為了指派使用者,您需要使用 Microsoft Graph API。

      1. 編輯屬性檢視中,選擇直接對應類型。

      2. 設定下列欄位:

        • 來源屬性:選擇 Entra 中允許的延伸模組屬性之一(例如,extensionAttribute1
        • 目標屬性urn:ietf:params:scim:schemas:extension:docker:2.0:User:dockerRole
        • 使用此屬性比對物件:否
        • 套用此對應:永遠

        如果您要設定多個屬性,例如角色和組織,則需要為每個屬性選擇不同的延伸模組屬性。

      3. 儲存您的設定。

      指派使用者

      如果您在上一個步驟中使用了表達式映射,請導覽至應用程式註冊,選擇您的應用程式,然後選擇應用程式角色。為每個 Docker 角色建立一個應用程式角色。如果可能,請使用與 Docker 中角色完全相同的顯示名稱來建立它,例如使用 owner 而不是 Owner。如果以此方式設定,則您可以使用表達式映射到 SingleAppRoleAssignment([appRoleAssignments])。否則,必須使用自定義切換。請參閱表達式映射

      若要新增使用者

      1. 選擇您的應用程式,然後選擇使用者和群組
      2. 選擇新增使用者/群組,選擇您要新增的使用者,然後選擇他們所需的ang="zh-TW">角色。

      若要新增群組

      1. 選擇您的應用程式,然後選擇使用者和群組
      2. 選擇新增使用者/群組,選擇您要新增的使用者,然後選擇他們所需的ang="zh-TW">角色。

      如果您在上一個步驟中使用了直接映射,請前往Microsoft Graph 瀏覽器並登入您的租用戶。您必須是租用戶管理員才能使用此功能。使用 Microsoft Graph API 將擴充屬性指派給使用者,其值對應於屬性映射到的內容。請參閱關於在擴充屬性中新增或更新資料的Microsoft Graph API 文件


      如需更多詳細資訊,請參閱您的 IdP 文件

      停用 SCIM

      如果 SCIM 已停用,任何透過 SCIM 配置的使用者將會保留在組織中。您使用者的未來變更將不會從您的 IdP 同步。只有在手動從組織中移除使用者時,才能取消配置使用者。