シングル サインオンの設定

Docker シングル サインオン (SSO) は、ID プロバイダー (IdP) を使用した Docker へのアクセス認証を可能にします。SSO は、Docker Business サブスクリプションを利用している組織で有効にできます。

SSO を有効にすると、ユーザーはログインするために ID プロバイダーの認証ページにリダイレクトされます。このページでは、Docker ID とパスワードで認証することはできません。Docker は現在、Service Provider Initiated SSO フローをサポートしています。ユーザーは Docker Hub または Docker Desktop にサインインして、SSO 認証プロセスを開始する必要があります。

Docker Hub で SSO を有効にする前に、管理者は ID プロバイダーの設定を完了し、Docker Hub で動作するように IdP を構成する必要があります。Docker は、ACS (Assertion Consumer Service) の URL とエンティティ ID を提供します。管理者はこの情報を使用して、IdP サーバーと Docker Hub 間の接続を確立します。

IdP サーバーと Docker Hub 間の接続を確立したら、管理者は Docker Hub で組織にログインして、SSO の有効化プロセスを完了します。詳細な手順は、「Docker Hub で SSO を有効にする」セクションを参照してください。

Docker Hub で SSO を有効にするには、以下が必要です。

現在、SSO は 1 つの組織でのみ有効にできます。組織内に異なるドメイン (ソーシャル ドメインを含む) を持つユーザーがいる場合、ゲストとして組織に追加されます。ゲストは引き続き Docker ID とパスワードを使用して Docker 認証されます。

SSO のアーキテクチャ フロー

以下の図は、Docker Hub と Docker Desktop でシングル サインオン (SSO) がどのように動作し、管理されるかを示しています。さらに、IdP 間の認証方法についても記載しています。

※クリックして拡大

SSO architecture

SSO の準備

パーソナル アクセス トークン (PAT) の作成

組織の SSO を設定する前に、組織の各メンバーは CLI にログインするためのアクセス トークンを作成する必要があります。現在、既存のユーザーには猶予期間を設けています。猶予期間が終了し、PAT の使用が強制される前までは、ユーザーは以前の認証情報を使用して Docker Desktop CLI からログインすることができます。また、すべてのメールアドレスを IdP に追加する必要があります。

SSO の設定

SSO を設定するには、Docker Hub にログインして、IdP サーバーの設定作業を完了します。SSO は 1 つの IdP でのみ設定可能です。この作業が完了したら、Docker Hub にログインし直して SSO の有効化プロセスを完了します。

重要: IdP 設定でエンティティ ID と ACS URL が必要な場合は、認証方法セクションで [SAML] タブを選択する必要があります。たとえば、Azure AD 設定で Azure AD 内の SAML 構成を使用する場合は、SAML を選択する必要があります。 Open ID Connect with Azure AD を構成している場合は、認証方法として Azure AD を選択します。また、現時点では IdP-Initiated 接続はサポートされていません。

こちらの動画では、SSO を構成するプロセスについて説明します。

SAML 2.0 ID プロバイダーの設定

  1. Docker Hub に管理者としてログインして、[Organizations] に移動し、SSO を有効にする組織を選択します。
  2. [Settings] をクリックして、[Security] タブを選択します。
  3. 認証方法で [SAML 2.0] を選択します。
  4. SSO SAML1

  5. [Identity Provider Set Up] で、Entity ID、ACS URL、Certificate Download URL をコピーします。
  6. SSO SAML2

  7. IdP にログインして IdP サーバーの設定作業を完了します。詳細な手順は、IdP のドキュメントを参照してください。
  8. 注意: NameID はデフォルト設定でお客様のメールアドレスとなっています。例: yourname@mycompany.com。オプションで `name` 属性もサポートしています。この属性名は小文字にする必要があります。 以下は、Okta の属性の例です。

    SSO Attribute

  9. [Configuration Settings] セクションのフィールドに必要事項を入力して、[Save] をクリックします。IdP を変更する場合は、既存のプロバイダを削除し、新しい IdP で SSO を構成する必要があります。
  10. SSO SAML3

  11. SSO をテストして適用する前に、ドメインの追加に進んでください。

Open ID Connect を使用した Azure AD IdP の構成

注意: このセクションは、Azure AD で Open ID Connect を構成するだけのユーザーを対象としています。この接続は基本的な OIDC 接続であり、使用時に特別なカスタマイズを行うことはできません。

  1. Docker Hub に管理者としてログインして、[Organizations] に移動し、SSO を有効にする組織を選択します。
  2. [Settings] をクリックして、[Security] タブを選択します。
  3. 認証方法で [Azure AD] を選択します。
  4. SSO Azure1

  5. [Identity Provider Set Up] で、Redirect URL / Reply URL をコピーします。
  6. SSO Azure2

  7. IdP にログインして IdP サーバーの設定作業を完了します。詳細な手順は、IdP のドキュメントを参照してください。
  8. 注意: NameID はデフォルト設定でお客様のメールアドレスとなっています。例: yourname@mycompany.com。

  9. [Configuration Settings] セクションのフィールドに必要事項を入力して、[Save] をクリックします。IdP を変更する場合は、既存のプロバイダを削除し、新しい IdP で SSO を構成する必要があります。
  10. SSO Azure3

  11. SSO をテストして適用する前に、ドメインの追加に進んでください。

ドメイン コントロール

[Add Domain] をクリックして、SSO で管理したい企業ドメインを指定します。ドメインは、yourcompany.com などのように、プロトコルや www 情報を含まない形式である必要があります。現時点で Docker では、IdP の一部である複数のドメインをサポートしています。ドメインが電子メールでリーチ可能であることを確認してください。

注意: ユーザーが Docker のアクセスに使用するすべてのメール ドメインを含める必要があります。gmail.com や outlook.com などのパブリック ドメインは許可されていません。また、メール ドメインはプライマリ メールとして設定する必要があります。

SSO Domain

ドメイン検証

ドメインの所有権を確認するには、ドメイン ネーム システム (DNS) の設定に TXT レコードを追加します。

  1. 提供された TXT レコードの値をコピーして、DNS ホストに移動し、新しいレコードを追加するための設定ページを見つけます。
  2. 新しいレコードを追加するオプションを選択し、TXT レコードの値を該当するフィールドに貼り付けます。例: [Value]、[Answer]、[Description] フィールドなど。
    DNS レコードには、以下のようなフィールドがあります。
    • レコード タイプ: 'TXT' レコードの値を入力します。
    • 名前/ホスト/エイリアス: デフォルト (@ または空白) のままにしてください。
    • TTL (Time to Live): [86400] と入力します。
  3. フィールドを更新したら、[保存] をクリックします。
  4. 注意: DNS の変更が有効になるまでに、DNS ホストによっては最大 72時間かかることがあります。この間、ドメイン テーブルのステータスは未確認となります。

  5. Docker Organization のセキュリティ セクションで、72時間後に検証したいドメインの横にある [Verify] をクリックします。

SSO 設定のテスト

Docker Hub で SSO 設定作業が完了したら、シークレット ブラウザーを使用して Docker Hub にログインし、設定をテストできます。ドメイン メール アドレスと IdP パスワードでログインすると、認証のため ID プロバイダーのログイン ページにリダイレクトされます。

  1. Docker ID の代わりにメールで認証して、ログイン プロセスをテストします。
  2. CLI で認証を行うには、CLI ユーザーに SSO を実施する前にユーザーが PAT を保有していなければなりません。

Docker Hub での SSO の実施

Docker Hub で SSO を実施する前に、ログイン/ログアウトして SSO をテストし、組織内のすべてのメンバーが Docker Desktop バージョン 4.4.2 にアップグレード済みであることを確認し、メンバーごとに PAT を作成し、CI/CD パスワードを PAT に変換する必要があります。
また、Docker パートナー製品 (例: VS Code) を使用する場合、SSO を実施する際には PAT を使用する必要があります。サービス アカウントについては、[Add Domains] で追加ドメインを追加するか、IdP でアカウントを有効化してください。

管理者は、registry.json 設定ファイルをプロビジョニングすることで、Docker Desktop での認証をユーザーに強制できます。registry.json ファイルの allowedOrgs リストで設定されているユーザーとして認証することをユーザーに強制します。registry.json ファイルの設定方法は、「registry.json の設定」を参照してください。

  1. Docker Hub のシングル サインオン ページで [Turn ON Enforcement] をクリックして SSO を有効にします。
  2. SSO が実施されると、メンバーは Docker Hub を通じてメール アドレスやパスワードの変更、ユーザー アカウントから組織への変換、2FA の設定ができなくなります。IdP を通じて 2FA を有効にする必要があります。

    注意: SSO を無効にして Docker の組込み認証に戻すには、[Turn OFF Enforcement] をクリックします。メンバーは IdP 経由での認証を強制されず、個人の認証情報を使用して Docker にログインできます。

    SSO Enforced

SSO が有効な場合のユーザー管理

Docker Hub の組織にユーザーを手動で追加する必要はありません。ユーザーのアカウントが IdP に存在することを確認してください。設定したドメインのメールアドレスを使ってユーザーが Docker Hub にサインインすると、自動的に組織に割り当てられます。

注意: 初めてのユーザーがドメイン メール アドレスで Docker にログインすると、組織に追加されます。

IdP 経由で認証されていないゲストを Docker Hub の組織に追加するには、次の操作を行います。

  1. Docker Hub の [Organizations] に移動して、組織を選択します。
  2. [Add Member] をクリックして、メール アドレスを選択し、ドロップダウン・リストからチームを選択します。
  3. [Add] をクリックします。

SSO 組織からのメンバーの削除

組織からメンバーを削除するには、次の操作を行います。

  1. 組織の管理者として Docker Hub にログインします。リストから組織を選択します。組織ページにメンバーのリストが表示されます。
  2. 組織内のすべてのチームからメンバーを削除するには、メンバーの名前の横にある x をクリックします。
  3. [Remove] をクリックして確定します。メンバーに削除を確認するメールが送信されます。

    注意: SSO 組織からメンバーを削除すると、そのメンバーはメール アドレスでログインできなくなります。

FAQ

詳細は、「FAQ」を参照してください。

SSO の削除

SSOを無効にする場合、接続を削除することで、構成設定と追加されたドメインを削除することができます。この接続を一度削除すると、元に戻すことはできません。ユーザーは、Docker ID とパスワードで認証するか、パスワードがない場合はパスワード リセットを行う必要があります。

Delete SSO

 

ページトップへ