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

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

始める前に

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

  2. Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

    gcloud init

プールを管理する

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

プールを作成する

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

コンソール

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

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

    [Workforce Identity プール] に移動

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

    1. [名前] にプールの名前を入力します。[プール ID] は、入力した名前から自動的に取得されます。

    2. 省略可: ID を更新するには、[編集] をクリックします。

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

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

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

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

gcloud

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

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

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

  • WORKFORCE_POOL_ID: Google Cloud の Workforce プールを表す ID。ID の形式については、API ドキュメントのクエリ パラメータ セクションをご覧ください。
  • ORGANIZATION_ID: Google Cloud 組織の組織 ID。
  • 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 属性 subjectassertion.group1costcenter をそれぞれ 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 属性 subjectassertion.group1costcenter をそれぞれ 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 を設定します。

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

次のステップ