System for Cross-domain Identity Management (SCIM)

このドキュメントは、System for Cross-domain Identity Management (SCIM) 2.0 をビジネスで有効にしたい管理者用となります。SCIM は、ID プロバイダー (IdP) 内のユーザーを管理するためのプロビジョニング システムです。Docker Business サブスクリプションが有効な組織にて、SCIM を有効にすることができます。

SCIM は、ID プロバイダー (IdP) を通じて、Docker の組織に対する自動的なユーザー プロビジョニングおよびデプロビジョニングを提供します。IdP で SCIM を有効にすると、IdP で Docker アプリケーションに割り当てられたユーザーは、自動的に Docker Hub でプロビジョニングされ、組織に追加されます。また、IdP の Docker アプリケーションからユーザーが割り当て解除されると、そのユーザーは Docker Hub で組織から削除されます。SCIM は、IdP 内のユーザーの属性に加えられた変更 (例えば、ユーザーの姓や名など) も同期させます。

現在、以下のプロビジョニング機能をサポートしています: 新規ユーザーの作成、ユーザープロファイルのプッシュ更新、ユーザーの削除、ユーザーの非アクティブ化、ユーザーの再アクティブ化。グループ管理は現在サポートされていません。

以下の表は、サポートされている属性の一覧です。

属性 説明
username ユーザーのユニークID (Eメール)
givenName ユーザーの名
familyName ユーザーの姓

設定

自動プロビジョニングの構成を開始する前に、SAML ベースの SSO が適切に設定され、組織で機能している必要があります。さらに、会社ドメインを確認し、IdP に適切なコネクタを用意する必要があります。ユーザーのメール ドメインは、シングルサインオン (SSO) に使用するものと同じ会社ドメインである必要があります。SCIM を有効にするには、SSO を実施する必要はありません。ただし、SCIM を有効にする前に、SAML SSO を構成する必要があります。

IdP で SCIM の設定を変更する前に、Docker Hub に移動して、Organizations > Settings > Security を選択します。SSO の設定を完了し、会社ドメインを確認するまで SCIM はロックされています。SCIM を有効化し、Base URL と API Token にアクセスします。また、新しい API トークンを生成することもできます。

scim-provisioning

Okta

  1. Okta で、Applications > Create App Integration > SAML 2.0 の順に移動し、Next をクリックします。
  2. General タブで、新しいアプリケーションのページで、Edit App Settings を選択して SCIM プロビジョニングを有効にして、Save をクリックします。
  3. Provisioning タブで、SCIM Connection を編集し、以下を完了します。
    • SCIM connector base URL: Docker Hub からの SCIM ベース URL
    • Unique identifier field for users: Eメールを入力
    • Supported Provisioning actions: Push New Users、Push Profile Updates を選択
    • Authorization/Bearer: Docker Hub から取得した SCIM API トークン

    scim-app-provisioning

  4. Test Connection Configuration をクリックして、設定を完了し、Save をクリックします。
  5. 設定したら、同期を有効にする必要があります。Provisioning > To App > Edit に移動し、Create Users、User Attributes、および Deactivates Users を有効にして、Save をクリックします。

    provisioning-to-app

  6. Docker Hub Attributes Mappings から、サポートされていないフィールドをすべて削除します。

    scim-attributes

これで、ユーザー データの同期が自動化され、ID プロバイダーである Okta で管理されたアクセス制御に基づいて、Docker 組織内のメンバーが自動的にプロビジョニング、更新、デプロビジョニングされるようになります。

完全同期を生成

すでに Docker Hub アプリにユーザーを割り当てている場合は、SCIM を有効にした後、完全同期を実行する必要があります。これにより、IdP ディレクトリに割り当てられているユーザーが Docker Hub にプロビジョニングされます。

  1. Applications > Applications に移動して、Docker Hub アプリを選択します。
  2. Assignments タブで、保留中のユーザーがいる場合は Provision User をクリックします。
  3. Apply to All > Reapply Mappings を選択し、Confirm をクリックします。

注意: これにより完全同期が行われ、それまでプロビジョニングされていなかったユーザーがDocker Hub でプロビジョニングされるようになります。

provision-user

Azure AD

  1. Azure AD に移動し、AzureAD admin を選択します。
  2. Default Directory で、Add > Enterprise Application > Create your own application を選択します。

    注意: Enterprise Application を作成するときに、SCIM を Security Assertion Markup Language (SAML) で構成することができます。

  3. アプリケーション名に Docker と入力し、non-gallery を選択して、Create をクリックします。
  4. Docker アプリケーションで、Provisioning に移動し、Get Started をクリックします。
  5. プロビジョニング モードに Automatic を選択し、SCIM の認証情報を入力します。

    注意: Docker Hub で SCIM の URL (テナント URL)と API トークン(シークレット トークン)にアクセスし、コピーすることができます。

  6. Test Connection をクリックしてプロビジョニングを有効および承認し、Save をクリックします。
  7. MappingsProvision Azure Active Directory Groups をクリックしてグループを無効にし、Save をクリックします。
  8. Attribute MappingsProvision Azure Active Directory Users をクリックし、userName、Active、givenName、familyName を保持します。表示されているその他の属性は削除します。 attribute-mapping

  9. Start Provisioning をクリックすると、完全な同期が開始されます。

    注意: プロビジョニングの開始には、最大で 30 分かかることがあります。また、すでにアプリケーションに割り当てられている 1 人のユーザーを使って、オンデマンド プロビジョニングを行うことも可能です。

  10. Onelogin

    1. Onelogin で、Applications > Applications > Add app の順に選択します。
    2. 検索フィールドに、SCIM Provisioner with SAML (SCIM v2 Core) と入力し、結果内の項目を選択します。
    3. 表示名として Docker Hub と入力し、Save をクリックします。
    4. 左側のナビゲーションに移動し、Configuration を選択します。
    5. 別タブで、Docker Hub > Settings > Security > SSO > SAML に移動します。
    6. 以下のフィールドを Docker Hub から OneLogin にコピーします。
      • Entity ID: SAML Audience URL
      • ACS URL: SAML Consumer URL
      • SCIM Base URL: SCIM Base URL
      • Custom Headers:
      Content-Type: application/scim+json User-Agent: OneLogin SCIM
      • SCIM Bearer Token: SCIM Bearer Token
      • SCIM JSON Template:
      { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "userName": "{$parameters.scimusername}", "name": { "givenName": "{$ user.firstname}", "familyName": "{$user.lastname}" }, "emails": [ { "value": "{$user.email}", "primary": true } ] }

      application-details

    7. API Connection > Enable に移動し、Save をクリックします。
    8. Parameters タブをクリックし、scimusername をクリックして Email を選択し、Save します。

      parameters-tab

    9. SSO タブに移動し、SAML 2.0 Endpoint (HTTP) url をコピーして、Docker Hub > Settings > Security > SSO > SAML Sign-in URL に貼り付けます。
    10. X.509 Certificate フィールドで、View Details をクリックします。
    11. PEM certificate をコピーし、Docker Hub > Settings > Security > SSO > Key x509 Certificate に貼り付け、Save をクリックします。
    12. Onelogin で、Access タブに移動し、既に作成されている ol_role のアプリを有効にして、Save をクリックします。
    13. Provisioning タブに移動し、Enable provisioning を選択し、その他のオプションの選択を解除します。
    14. ドロップダウンで、Suspend を選択し、Save をクリックします。

    完全同期を生成

    1. Onelogin で、Applications に移動し、Docker Hub アプリケーションを選択します。
    2. Users で、Apply to All および Reapply Mappings をクリックします。
    3. Confirm をクリックして、Docker Hub でユーザーをプロビジョニングします。

    注意: これにより完全同期が作成され、それまでプロビジョニングされていなかったユーザーが Docker Hub でプロビジョニングされるようになります。

    scim-okta-button

    SCIM の無効化

    SCIM を無効にした場合、SCIM を通してプロビジョニングされたすべてのユーザーは組織に残ります。ユーザーの今後の変更は、IdP から同期されません。ユーザーのプロビジョニング解除は、組織からユーザーを手動で削除する場合にのみ可能です。

    scim-disable

     

    ページトップへ