Workforce Identity プール プロバイダを管理する

このガイドでは、Workforce Identity 連携を使用して一般的な操作を行う方法について説明します。Workforce Identity 連携を設定するには、次のガイドをご覧ください。

始める前に

  1. Google Cloud 組織を設定する必要があります。

  2. Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

プールを管理する

このセクションでは、Workforce Identity プールを管理する方法について説明します。

プールを作成する

次のコマンドを実行して、Workforce プールを作成します。

コンソール

Workforce Identity プールを作成するには、次の操作を行います。

  1. Google Cloud コンソールで、[Workforce Identity プール] ページに移動します。

    [Workforce Identity プール] に移動

  2. [プールを作成] をクリックして、次の操作を行います。

    1. [名前] フィールドに、プールの表示名を入力します。プール ID は、入力した名前から自動的に取得され、[名前] フィールドの下に表示されます。プール ID を更新するには、プール ID の横にある [編集] をクリックします。

    2. 省略可: [説明] にプールの説明を入力します。

    3. [セッション継続時間] はデフォルトで設定されています。カスタムのセッション継続時間を入力するには、[編集] をクリックします。セッション継続時間は、この Workforce プールの Google Cloud アクセス トークン、コンソール(連携)ログイン セッション、gcloud CLI ログイン セッションの有効期間を決定します。継続時間は 15 分(900 秒)より長く、12 時間(43,200 秒)より短くする必要があります。セッション継続時間が設定されていない場合、デフォルトで 1 時間(3,600 秒)に設定されます。

    4. プールを有効な状態で作成するには、[有効なプール] がオンになっていることを確認します。

    5. Workforce Identity プールを作成するには、[次へ] をクリックします。

gcloud

Workforce Identity プールを作成するには、次のコマンドを実行します。

gcloud iam workforce-pools create WORKFORCE_POOL_ID \
    --organization=ORGANIZATION_ID \
    --display-name="DISPLAY_NAME" \
    --description="DESCRIPTION" \
    --session-duration=SESSION_DURATION \
    --location=global

次のように置き換えます。

  • WORKFORCE_POOL_ID: Google Cloud の Workforce プールを表す ID。ID の形式については、API ドキュメントのクエリ パラメータ セクションをご覧ください。
  • ORGANIZATION_ID: Google Cloud 組織の組織 ID。
  • DISPLAY_NAME: 省略可。Workforce Identity プールの表示名。
  • DESCRIPTION: 省略可。Workforce Identity プールの説明。
  • SESSION_DURATION: 省略可。セッション継続時間。この Workforce プールの Google Cloud アクセス トークン、コンソール(連携)ログイン セッション、gcloud CLI ログイン セッションの有効期間を決定します。継続時間は 15 分(900 秒)より長く、12 時間(43,200 秒)より短くする必要があります。セッション継続時間が設定されていない場合、デフォルトで 1 時間(3,600 秒)に設定されます。

プールの説明を取得する

コンソール

Google Cloud コンソールを使用して特定の Workforce プールを記述する手順は次のとおりです。

  1. [Workforce Identity プール] ページに移動します。

    [Workforce Identity プール] に移動

  2. [Workforce プール] でプールを選択します。

gcloud

gcloud CLI を使用して特定の Workforce プールの説明を取得するには、次のコマンドを実行します。

gcloud iam workforce-pools describe WORKFORCE_POOL_ID \
    --location=global

WORKFORCE_POOL_ID は、プールの作成時に選択した Workforce プール ID に置き換えます。

プールを一覧表示する

コンソール

Google Cloud コンソールを使用して Workforce プールのリストを取得するには、次の操作を行います。

  1. [Workforce Identity プール] ページに移動します。

    [Workforce Identity プール] に移動

  2. テーブルにプールのリストを表示します。

gcloud

組織内の Workforce プールを一覧表示するには、次のコマンドを実行します。

gcloud iam workforce-pools list \
    --organization=ORGANIZATION_ID \
    --location=global

ORGANIZATION_ID は、実際の組織 ID に置き換えます。

プールを更新する

コンソール

Google Cloud コンソールを使用して特定の Workforce プールを更新する手順は次のとおりです。

  1. [Workforce Identity プール] ページに移動します。

    [Workforce Identity プール] に移動

  2. テーブルでプールを選択します。

  3. プールのパラメータを更新します。

  4. [Save Pool] をクリックします。

gcloud

特定の Workforce プールを更新するには、次のコマンドを実行します。

gcloud iam workforce-pools update WORKFORCE_POOL_ID \
    --description=DESCRIPTION \
    --location=global

次のように置き換えます。

  • WORKFORCE_POOL_ID: Workforce プール ID
  • DESCRIPTION: プールの説明

プールを削除する

コンソール

Google Cloud コンソールを使用して特定の Workforce プールを削除する手順は次のとおりです。

  1. [Workforce Identity プール] ページに移動します。

    [Workforce Identity プール] に移動

  2. [Workforce プール] で、削除するプールの [削除] をクリックします。

  3. 追加の操作を行います。

gcloud

Workforce Identity プールを削除するには、次のコマンドを実行します。

gcloud iam workforce-pools delete WORKFORCE_POOL_ID \
    --location=global

WORKFORCE_POOL_ID は、Workforce プール ID に置き換えます。

プールの削除を取り消す

過去 30 日以内に削除された Workforce Identity プールの削除は、取り消すことができます。

プールの削除を取り消すには、次のコマンドを実行します。

gcloud iam workforce-pools undelete WORKFORCE_POOL_ID \
    --location=global

WORKFORCE_POOL_ID は、Workforce プール ID に置き換えます。

Workforce プール内でプロバイダを構成する

このセクションでは、gcloud コマンドを使用して Workforce Identity プール プロバイダを構成する方法について説明します。

OIDC プロバイダを作成する

このセクションでは、OIDC IdP の Workforce Identity プール プロバイダを作成する方法について説明します。

コンソール

コードフロー

  1. Google Cloud コンソールで、[Workforce Identity プール] ページに移動します。

    [Workforce Identity プール] に移動

  2. [Workforce Identity プール] テーブルで、プロバイダを作成するプールを選択します。

  3. [プロバイダ] テーブルで [プロバイダを追加] をクリックします。

  4. [プロトコルを選択] で、[Open ID Connect(OIDC)] を選択します。

  5. [プール プロバイダの作成] で、次の操作を行います。

    1. [名前] にプロバイダの名前を入力します。
    2. [発行元(URL)] に発行元 URI を入力します。OIDC 発行元 URI は有効な URI 形式で、https で始まる必要があります。(例: https://example.com/oidc)。
    3. クライアント ID(OIDC IdP に登録されている OIDC クライアント ID)を入力します。ID は、IdP によって発行された JWT の aud クレームと一致する必要があります。
    4. 有効なプロバイダを作成するには、[有効なプロバイダ] がオンになっていることを確認します。
    5. [続行] をクリックします。
  6. [レスポンス タイプ] で、次の操作を行います。レスポンス タイプは、ウェブベースのシングル サインオン フローでのみ使用されます。

    1. [レスポンス タイプ] で [コード] を選択します。
    2. [クライアント シークレット] に、IdP のクライアント シークレットを入力します。
    3. [アサーション クレームの動作] で、次のいずれかを選択します。

      • ユーザー情報と ID トークン
      • ID トークンのみ
    4. [続行] をクリックします。

  7. [プロバイダの構成] で、属性のマッピングと属性条件を構成できます。属性のマッピングを作成する手順は次のとおりです。IdP フィールド名、または文字列を返す CEL 形式の式を指定できます。

    1. 必須: [OIDC 1] に、IdP からの件名を入力します(例: assertion.sub)。

    2. 省略可: 属性のマッピングを追加する手順は次のとおりです。

      1. [マッピングを追加] をクリックします。
      2. [Google n](n は数値)で、Google Cloud でサポートされている鍵のいずれかを入力します。
      3. 対応する [OIDC n] フィールドに、マッピングする IdP 固有のフィールドの名前を CEL 形式で入力します。
    3. 属性条件を作成するには、次の操作を行います。

      1. [条件を追加] をクリックします。
      2. [属性条件] で、CEL 形式で条件を入力します(例: assertion.role == 'gcp-users')。この例の条件により、ロール gcp-users を持つユーザーのみがこのプロバイダを使用してログインできます。
  8. プロバイダを作成するには、[送信] をクリックします。

    暗黙的フロー

    1. Google Cloud コンソールで、[Workforce Identity プール] ページに移動します。

      [Workforce Identity プール] に移動

    2. [Workforce Identity プール] テーブルで、プロバイダを作成するプールを選択します。

    3. [プロバイダ] テーブルで [プロバイダを追加] をクリックします。

    4. [プロトコルを選択] で、[Open ID Connect(OIDC)] を選択します。

    5. [プール プロバイダの作成] で、次の操作を行います。

      1. [名前] にプロバイダの名前を入力します。
      2. [発行元(URL)] に発行元 URI を入力します。OIDC 発行元 URI は有効な URI 形式で、https で始まる必要があります。(例: https://example.com/oidc)。
      3. クライアント ID(OIDC IdP に登録されている OIDC クライアント ID)を入力します。ID は、IdP によって発行された JWT の aud クレームと一致する必要があります。
      4. 有効なプロバイダを作成するには、[有効なプロバイダ] がオンになっていることを確認します。
      5. [続行] をクリックします。
    6. [レスポンス タイプ] で、次の操作を行います。レスポンス タイプは、ウェブベースのシングル サインオン フローでのみ使用されます。

      1. [レスポンス タイプ] で [ID トークン] を選択します。
      2. [続行] をクリックします。
    7. [プロバイダの構成] で、属性のマッピングと属性条件を構成できます。属性のマッピングを作成する手順は次のとおりです。IdP フィールド名、または文字列を返す CEL 形式の式を指定できます。

      1. 必須: [OIDC 1] に、IdP からの件名を入力します(例: assertion.sub)。

      2. 省略可: 属性のマッピングを追加する手順は次のとおりです。

        1. [マッピングを追加] をクリックします。
        2. [Google n](n は数値)で、Google Cloud でサポートされている鍵のいずれかを入力します。
        3. 対応する [OIDC n] フィールドに、マッピングする IdP 固有のフィールドの名前を CEL 形式で入力します。
      3. 属性条件を作成するには、次の操作を行います。

        1. [条件を追加] をクリックします。
        2. [属性条件] で、CEL 形式で条件を入力します(例: assertion.role == 'gcp-users')。この例の条件により、ロール gcp-users を持つユーザーのみがこのプロバイダを使用してログインできます。

    8. プロバイダを作成するには、[送信] をクリックします。

gcloud

コードフロー

ウェブログインに認可コードフローを使用する OIDC プロバイダを作成するには、次のコマンドを実行します。

gcloud iam workforce-pools providers create-oidc PROVIDER_ID \
    --workforce-pool=WORKFORCE_POOL_ID \
    --display-name="DISPLAY_NAME" \
    --description="DESCRIPTION" \
    --issuer-uri="ISSUER_URI" \
    --client-id="OIDC_CLIENT_ID" \
--client-secret-value="OIDC_CLIENT_SECRET" \ --web-sso-response-type="code" \ --web-sso-assertion-claims-behavior="merge-user-info-over-id-token-claims" \ --web-sso-additional-scopes="WEB_SSO_ADDITIONAL_SCOPES" \ --attribute-mapping="ATTRIBUTE_MAPPING" \ --attribute-condition="ATTRIBUTE_CONDITION" \ --jwk-json-path="JWK_JSON_PATH" \ --location=global

次のように置き換えます。

  • PROVIDER_ID: 一意のプロバイダ ID。接頭辞 gcp- は予約されているため、プールやプロバイダ ID では使用できません。
  • WORKFORCE_POOL_ID: IdP を接続する Workforce Identity プール ID。
  • DISPLAY_NAME: プロバイダのわかりやすい表示名。省略可能です。例: idp-eu-employees
  • DESCRIPTION: Workforce プロバイダの説明。省略可能です。例: IdP for Partner Example Organization employees
  • ISSUER_URI: https で始まる有効な URI 形式の OIDC 発行者 URI。例: https://example.com/oidc注: セキュリティ上の理由により、ISSUER_URI では HTTPS スキームを使用する必要があります。
  • OIDC_CLIENT_ID: OIDC IdP に登録されている OIDC クライアント ID。ID は、IdP によって発行された JWT の aud クレームと一致する必要があります。
  • OIDC_CLIENT_SECRET: OIDC クライアント シークレット。
  • WEB_SSO_ADDITIONAL_SCOPES: コンソール(連携)または gcloud CLI ブラウザベースのログイン用に OIDC IdP に送信する任意の追加スコープ
  • ATTRIBUTE_MAPPING: 属性マッピング。属性マッピングの例を次に示します。
    google.subject=assertion.sub,
    google.groups=assertion.group1,
    attribute.costcenter=assertion.costcenter
    この例では、OIDC アサーションの IdP 属性 subjectgroup1costcenter をそれぞれ google.subjectgoogle.groupsattribute.costcenter の各属性にマッピングしています。
  • ATTRIBUTE_CONDITION: 属性条件。例: assertion.role == 'gcp-users'この例の条件により、ロール gcp-users を持つユーザーのみがこのプロバイダを使用してログインできます。
  • JWK_JSON_PATH: ローカルにアップロードされた OIDC JWK へのパス(省略可)。このパラメータを指定しない場合、代わりに Google Cloud は IdP の /.well-known/openid-configuration パスを使用して公開鍵を含む JWK を取得します。ローカルにアップロードされた OIDC JWK の詳細については、OIDC JWK を管理するをご覧ください。
コマンド レスポンスで、POOL_RESOURCE_NAME はプールの名前です。例: locations/global/workforcePools/enterprise-example-organization-employees

暗黙的フロー

ウェブログインに暗黙的フローを使用する OIDC Workforce Identity プール プロバイダを作成するには、次のコマンドを実行します。

gcloud iam workforce-pools providers create-oidc PROVIDER_ID \
    --workforce-pool=WORKFORCE_POOL_ID \
    --display-name="DISPLAY_NAME" \
    --description="DESCRIPTION" \
    --issuer-uri="ISSUER_URI" \
    --client-id="OIDC_CLIENT_ID" \
    --web-sso-response-type="id-token" \
    --web-sso-assertion-claims-behavior="only-id-token-claims" \
    --web-sso-additional-scopes="WEB_SSO_ADDITIONAL_SCOPES" \
    --attribute-mapping="ATTRIBUTE_MAPPING" \
    --attribute-condition="ATTRIBUTE_CONDITION" \
    --jwk-json-path="JWK_JSON_PATH" \
    --location=global

次のように置き換えます。

  • PROVIDER_ID: 一意のプロバイダ ID。接頭辞 gcp- は予約されているため、プールやプロバイダ ID では使用できません。
  • WORKFORCE_POOL_ID: IdP を接続する Workforce Identity プール ID。
  • DISPLAY_NAME: プロバイダのわかりやすい表示名。省略可能です。例: idp-eu-employees
  • DESCRIPTION: Workforce プロバイダの説明。省略可能です。例: IdP for Partner Example Organization employees
  • ISSUER_URI: https で始まる有効な URI 形式の OIDC 発行者 URI。例: https://example.com/oidc注: セキュリティ上の理由により、ISSUER_URI では HTTPS スキームを使用する必要があります。
  • OIDC_CLIENT_ID: OIDC IdP に登録されている OIDC クライアント ID。ID は、IdP によって発行された JWT の aud クレームと一致する必要があります。
  • WEB_SSO_ADDITIONAL_SCOPES: コンソール(連携)または gcloud CLI ブラウザベースのログイン用に OIDC IdP に送信する任意の追加スコープ
  • ATTRIBUTE_MAPPING: 属性マッピング。属性マッピングの例を次に示します。
    google.subject=assertion.sub,
    google.groups=assertion.group1,
    attribute.costcenter=assertion.costcenter
    この例では、OIDC アサーションの IdP 属性 subjectgroup1costcenter をそれぞれ google.subjectgoogle.groupsattribute.costcenter の各属性にマッピングしています。
  • ATTRIBUTE_CONDITION: 属性条件。例: assertion.role == 'gcp-users'この例の条件により、ロール gcp-users を持つユーザーのみがこのプロバイダを使用してログインできます。
  • JWK_JSON_PATH: ローカルにアップロードされた OIDC JWK へのパス(省略可)。このパラメータを指定しない場合、代わりに Google Cloud は IdP の /.well-known/openid-configuration パスを使用して公開鍵を含む JWK を取得します。ローカルにアップロードされた OIDC JWK の詳細については、OIDC JWK を管理するをご覧ください。
コマンド レスポンスで、POOL_RESOURCE_NAME はプールの名前です。例: locations/global/workforcePools/enterprise-example-organization-employees

SAML プロバイダを作成する

このセクションでは、SAML IdP の Workforce Identity プール プロバイダを作成する方法について説明します。

コンソール

Google Cloud コンソールを使用して SAML プロバイダを構成する手順は次のとおりです。

  1. Google Cloud コンソールで、[Workforce Identity プール] ページに移動します。

    [Workforce Identity プール] に移動

  2. [Workforce Identity プール] テーブルで、プロバイダを作成するプールを選択します。

  3. [プロバイダ] テーブルで [プロバイダを追加] をクリックします。

  4. [プロトコルを選択] で、[SAML] を選択します。

  5. [プール プロバイダの作成] で、次の操作を行います。

    1. [名前] にプロバイダの名前を入力します。

    2. 省略可: [説明] にプロバイダの説明を入力します。

    3. [IdP メタデータ ファイル(XML)] で、このガイドの前半で生成したメタデータ XML ファイルを選択します。

    4. [有効なプロバイダ] が有効になっていることを確認します。

    5. [続行] をクリックします。

  6. [プロバイダの構成] で、次の操作を行います。

    1. [属性のマッピング] で、google.subject の CEL 式を入力します。

    2. 省略可: 他のマッピングを入力するには、[マッピングを追加] をクリックして他のマッピングを入力します。次に例を示します。

      google.subject=assertion.subject,
      google.groups=assertion.attributes['https://example.com/aliases'],
      attribute.costcenter=assertion.attributes.costcenter[0]
      この例では、IdP 属性 assertion.subjectassertion.attributes['https://example.com/aliases']assertion.attributes.costcenter[0] を Google Cloud 属性 google.subjectgoogle.groupsgoogle.costcenter にそれぞれマッピングしています。

    3. 省略可: 属性条件を追加するには、[条件を追加] をクリックし、属性条件を表す CEL 式を入力します。たとえば、ipaddr 属性を特定の IP 範囲に制限するには、条件 assertion.attributes.ipaddr.startsWith('98.11.12.') を設定します。この例の条件により、98.11.12. で始まる IP アドレスを持つユーザーだけが、この Workforce プロバイダを使用してログインできます。

    4. [続行] をクリックします。

  7. プロバイダを作成するには、[送信] をクリックします。

gcloud

プロバイダを作成するには、次のコマンドを実行します。

gcloud iam workforce-pools providers create-saml WORKFORCE_PROVIDER_ID \
    --workforce-pool="WORKFORCE_POOL_ID" \
    --attribute-mapping="ATTRIBUTE_MAPPING" \
    --attribute-condition="ATTRIBUTE_CONDITION" \
    --idp-metadata-path="XML_METADATA_PATH" \
    --location="global"

次のように置き換えます。

  • WORKFORCE_PROVIDER_ID: Workforce プロバイダ ID
  • WORKFORCE_POOL_ID: Workforce プール ID
  • ATTRIBUTE_MAPPING: 属性マッピング。たとえば、サブジェクトをマッピングする場合、その属性マッピングは次のようになります。

    
    google.subject=assertion.subject,
    google.groups=assertion.attributes['https://example.com/aliases'],
    attribute.department=assertion.attributes.department[0]
    
  • ATTRIBUTE_CONDITION: オプションの属性条件(例: assertion.subject.endsWith("@example.com")

  • XML_METADATA_PATH: IdP の XML 形式のメタデータ ファイルのパス

接頭辞 gcp- は予約されているため、プールやプロバイダ ID では使用できません。

このコマンドは、SAML アサーションの件名と部門をそれぞれ google.subject 属性と attribute.department 属性に割り当てます。また、属性条件は、@example.com で終わる件名のユーザーだけが、この Workforce プロバイダを使用してログインできるようにします。

プロバイダの説明を取得する

コンソール

プロバイダを表示するには、次の操作を行います。

  1. [Workforce Identity プール] ページに移動します。

[Workforce Identity プール] に移動

  1. テーブルで、プロバイダを表示するプールを選択します。

  2. [プロバイダ] テーブルでプロバイダを選択します。

gcloud

プロバイダの説明を取得するには、次のコマンドを実行します。

gcloud iam workforce-pools providers describe PROVIDER_ID \
    --workforce-pool=WORKFORCE_POOL_ID \
    --location=global

次のように置き換えます。

  • PROVIDER_ID: プロバイダ ID
  • WORKFORCE_POOL_ID: Workforce プール ID

プロバイダを一覧表示する

コンソール

プロバイダを表示するには、次の操作を行います。

  1. [Workforce Identity プール] ページに移動します。

[Workforce Identity プール] に移動

  1. テーブルで、プロバイダを一覧表示するプールを選択します。

  2. [プロバイダ] テーブルにプロバイダのリストが表示されます。

gcloud

プロバイダを一覧表示するには、次のコマンドを実行します。

gcloud iam workforce-pools providers list \
    --workforce-pool=WORKFORCE_POOL_ID \
    --location=global

WORKFORCE_POOL_ID は、Workforce プール ID に置き換えます。

プロバイダを更新する

コンソール

プロバイダを表示するには、次の操作を行います。

  1. [Workforce Identity プール] ページに移動します。

[Workforce Identity プール] に移動

  1. テーブルで、プロバイダを表示するプールを選択します。

  2. [プロバイダ] テーブルで、 [編集] をクリックします。

  3. プロバイダを更新します。

  4. 更新したプロバイダを保存するには、[保存] をクリックします。

gcloud

作成後に OIDC プロバイダを更新するには、次のコマンドを実行します。

gcloud iam workforce-pools providers update-oidc PROVIDER_ID \
    --workforce-pool=WORKFORCE_POOL_ID \
    --description="DESCRIPTION" \
    --location=global

次のように置き換えます。

  • PROVIDER_ID: プロバイダ ID
  • WORKFORCE_POOL_ID: Workforce プール ID
  • DESCRIPTION: 説明

プロバイダを削除する

プロバイダを削除するには、次のコマンドを実行します。

gcloud iam workforce-pools providers delete PROVIDER_ID \
    --workforce-pool=WORKFORCE_POOL_ID \
    --location=global

次のように置き換えます。

  • PROVIDER_ID: プロバイダ ID
  • WORKFORCE_POOL_ID: Workforce プール ID

プロバイダの削除を取り消す

過去 30 日以内に削除されたプロバイダの削除を取り消すには、次のコマンドを実行します。

gcloud iam workforce-pools providers undelete PROVIDER_ID \
    --workforce-pool=WORKFORCE_POOL_ID \
    --location=global

次のように置き換えます。

  • PROVIDER_ID: プロバイダ ID
  • WORKFORCE_POOL_ID: Workforce プール ID

OIDC JWK を管理する

このセクションでは、Workforce プール プロバイダで OIDC JWK を管理する方法について説明します。

プロバイダを作成して OIDC JWK をアップロードする

OIDC JWK を作成するには、JWT、JWS、JWE、JWK、JWA の実装をご覧ください。

Workforce プール プロバイダを作成するときに OIDC JWK ファイルをアップロードするには、--jwk-json-path="JWK_JSON_PATH" を指定して、gcloud iam workforce-pools providers create-oidc コマンドを実行します。JWK_JSON_PATH は、JWK JSON ファイルのパスに置き換えます。

これにより、ファイルから鍵がアップロードされます。

OIDC JWK を更新する

OIDC JWK を更新するには、--jwk-json-path="JWK_JSON_PATH" を指定して gcloud iam workforce-pools providers update-oid コマンドを実行します。JWK_JSON_PATH は、JWK JSON ファイルのパスに置き換えます。

これにより、既存のアップロード鍵がファイル内の鍵に置き換えられます。

アップロードされたすべての OIDC JWK を削除する

アップロードされたすべての OIDC JWK を削除し、代わりに発行元 URI を使用して鍵を取得するには、--jwk-json-path="JWK_JSON_PATH" を指定して gcloud iam workforce-pools providers update-oidc コマンドを実行します。JWK_JSON_PATH は空のファイルへのパスに置き換えます。--issuer-uri フラグを使用して発行者 URI を設定します。

この操作を行うと、すでにアップロードされている鍵がすべて削除されます。

次のステップ