このガイドでは、Workforce Identity 連携を使用して一般的な操作を行う方法について説明します。Workforce Identity 連携を設定するには、次のガイドをご覧ください。
- Azure AD との Workforce Identity 連携を構成してユーザー ログインを行う
- Okta との Workforce Identity 連携を構成してユーザー ログインを行う
- OIDC または SAML をサポートする IdP で Workforce Identity 連携を構成する
始める前に
Google Cloud 組織を設定する必要があります。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
プールを管理する
このセクションでは、Workforce Identity プールを管理する方法について説明します。
プールを作成する
次のコマンドを実行して、Workforce プールを作成します。
コンソール
Workforce Identity プールを作成するには、次の操作を行います。
Google Cloud コンソールで、[Workforce Identity プール] ページに移動します。
[プールを作成] をクリックして、次の操作を行います。
[名前] にプールの名前を入力します。[プール ID] は、入力した名前から自動的に取得されます。
省略可: ID を更新するには、[編集] をクリックします。
省略可: [説明] にプールの説明を入力します。
[セッション継続時間] はデフォルトで設定されています。カスタムのセッション継続時間を入力するには、[編集] をクリックします。セッション継続時間は、この Workforce プールの Google Cloud アクセス トークン、コンソール(連携)ログイン セッション、gcloud CLI ログイン セッションの有効期間を決定します。継続時間は 15 分(900 秒)より長く、12 時間(43,200 秒)より短くする必要があります。セッション継続時間が設定されていない場合、デフォルトで 1 時間(3,600 秒)に設定されます。
プールを有効な状態で作成するには、[有効なプール] がオンになっていることを確認します。
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 プールを記述する手順は次のとおりです。
[Workforce Identity プール] ページに移動します。
[Workforce プール] でプールを選択します。
gcloud
gcloud CLI を使用して特定の Workforce プールの説明を取得するには、次のコマンドを実行します。
gcloud iam workforce-pools describe WORKFORCE_POOL_ID \
--location=global
WORKFORCE_POOL_ID
は、プールの作成時に選択した Workforce プール ID に置き換えます。
プールを一覧表示する
コンソール
Google Cloud コンソールを使用して Workforce プールを一覧表示するには、次の操作を行います。
[Workforce Identity プール] ページに移動します。
テーブルにプールのリストを表示します。
gcloud
組織内の Workforce プールを一覧表示するには、次のコマンドを実行します。
gcloud iam workforce-pools list \
--organization=ORGANIZATION_ID \
--location=global
ORGANIZATION_ID は、実際の組織 ID に置き換えます。
プールを更新する
コンソール
Google Cloud コンソールを使用して特定の Workforce プールを更新する手順は次のとおりです。
[Workforce Identity プール] ページに移動します。
テーブルでプールを選択します。
プールのパラメータを更新します。
[Save Pool] をクリックします。
gcloud
特定の Workforce プールを更新するには、次のコマンドを実行します。
gcloud iam workforce-pools update WORKFORCE_POOL_ID \
--description=DESCRIPTION \
--location=global
次のように置き換えます。
WORKFORCE_POOL_ID
: Workforce プール IDDESCRIPTION
: プールの説明
プールを削除する
コンソール
Google Cloud コンソールを使用して特定の Workforce プールを削除する手順は次のとおりです。
[Workforce Identity プール] ページに移動します。
[Workforce プール] で、削除するプールの
[削除] をクリックします。追加の操作を行います。
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 プール プロバイダを作成する方法について説明します。
コンソール
コードフロー
Google Cloud コンソールで、[Workforce Identity プール] ページに移動します。
[Workforce Identity プール] テーブルで、プロバイダを作成するプールを選択します。
[プロバイダ] テーブルで [プロバイダを追加] をクリックします。
[プロトコルを選択] で、[Open ID Connect(OIDC)] を選択します。
[プール プロバイダの作成] で、次の操作を行います。
- [名前] にプロバイダの名前を入力します。
- [発行元(URL)] に発行元 URI を入力します。OIDC 発行元 URI は有効な URI 形式で、
https
で始まる必要があります。(例:https://example.com/oidc
)。 - クライアント ID(OIDC IdP に登録されている OIDC クライアント ID)を入力します。ID は、IdP によって発行された JWT の
aud
クレームと一致する必要があります。 - 有効なプロバイダを作成するには、[有効なプロバイダ] がオンになっていることを確認します。
- [続行] をクリックします。
[レスポンス タイプ] で、次の操作を行います。レスポンス タイプは、ウェブベースのシングル サインオン フローでのみ使用されます。
- [レスポンス タイプ] で [コード] を選択します。
- [クライアント シークレット] に、IdP のクライアント シークレットを入力します。
[アサーション クレームの動作] で、次のいずれかを選択します。
- ユーザー情報と ID トークン
- ID トークンのみ
[続行] をクリックします。
[プロバイダの構成] で、属性のマッピングと属性条件を構成できます。属性のマッピングを作成する手順は次のとおりです。IdP フィールド名、または文字列を返す CEL 形式の式を指定できます。
- 必須: [OIDC 1] に、IdP からの件名を入力します(例:
assertion.sub
)。 省略可: 属性のマッピングを追加する手順は次のとおりです。
- [マッピングを追加] をクリックします。
- [Google n](n は数値)で、Google Cloud でサポートされている鍵のいずれかを入力します。
- 対応する [OIDC n] フィールドに、マッピングする IdP 固有のフィールドの名前を CEL 形式で入力します。
属性条件を作成するには、次の操作を行います。
- [条件を追加] をクリックします。
- [属性条件] で、CEL 形式で条件を入力します(例:
assertion.role == 'gcp-users'
)。この例の条件により、ロールgcp-users
を持つユーザーのみがこのプロバイダを使用してログインできます。
- 必須: [OIDC 1] に、IdP からの件名を入力します(例:
プロバイダを作成するには、[送信] をクリックします。
暗黙的フロー
Google Cloud コンソールで、[Workforce Identity プール] ページに移動します。
[Workforce Identity プール] テーブルで、プロバイダを作成するプールを選択します。
[プロバイダ] テーブルで [プロバイダを追加] をクリックします。
[プロトコルを選択] で、[Open ID Connect(OIDC)] を選択します。
[プール プロバイダの作成] で、次の操作を行います。
- [名前] にプロバイダの名前を入力します。
- [発行元(URL)] に発行元 URI を入力します。OIDC 発行元 URI は有効な URI 形式で、
https
で始まる必要があります。(例:https://example.com/oidc
)。 - クライアント ID(OIDC IdP に登録されている OIDC クライアント ID)を入力します。ID は、IdP によって発行された JWT の
aud
クレームと一致する必要があります。 - 有効なプロバイダを作成するには、[有効なプロバイダ] がオンになっていることを確認します。
- [続行] をクリックします。
[レスポンス タイプ] で、次の操作を行います。レスポンス タイプは、ウェブベースのシングル サインオン フローでのみ使用されます。
- [レスポンス タイプ] で [ID トークン] を選択します。
- [続行] をクリックします。
[プロバイダの構成] で、属性のマッピングと属性条件を構成できます。属性のマッピングを作成する手順は次のとおりです。IdP フィールド名、または文字列を返す CEL 形式の式を指定できます。
必須: [OIDC 1] に、IdP からの件名を入力します(例:
assertion.sub
)。省略可: 属性のマッピングを追加する手順は次のとおりです。
- [マッピングを追加] をクリックします。
- [Google n](n は数値)で、Google Cloud でサポートされている鍵のいずれかを入力します。
- 対応する [OIDC n] フィールドに、マッピングする IdP 固有のフィールドの名前を CEL 形式で入力します。
属性条件を作成するには、次の操作を行います。
- [条件を追加] をクリックします。
- [属性条件] で、CEL 形式で条件を入力します(例:
assertion.role == 'gcp-users'
)。この例の条件により、ロールgcp-users
を持つユーザーのみがこのプロバイダを使用してログインできます。
プロバイダを作成するには、[送信] をクリックします。
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
: 属性マッピング。例: この例では、OIDC アサーションの IdP 属性google.subject=assertion.sub, google.groups=assertion.group1, attribute.costcenter=assertion.costcenter
subject
、assertion.group1
、costcenter
をそれぞれgoogle.subject
、google.groups
、attribute.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 を管理するをご覧ください。
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
: 属性マッピング。例: この例では、OIDC アサーションの IdP 属性google.subject=assertion.sub, google.groups=assertion.group1, attribute.costcenter=assertion.costcenter
subject
、assertion.group1
、costcenter
をそれぞれgoogle.subject
、google.groups
、attribute.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 を管理するをご覧ください。
locations/global/workforcePools/enterprise-example-organization-employees
SAML プロバイダを作成する
このセクションでは、SAML IdP の Workforce Identity プール プロバイダを作成する方法について説明します。
コンソール
Google Cloud コンソールを使用して SAML プロバイダを構成する手順は次のとおりです。
Google Cloud コンソールで、[Workforce Identity プール] ページに移動します。
[Workforce Identity プール] テーブルで、プロバイダを作成するプールを選択します。
[プロバイダ] テーブルで [プロバイダを追加] をクリックします。
[プロトコルを選択] で、[SAML] を選択します。
[プール プロバイダの作成] で、次の操作を行います。
[名前] にプロバイダの名前を入力します。
省略可: [説明] にプロバイダの説明を入力します。
[IdP メタデータ ファイル(XML)] で、このガイドの前半で生成したメタデータ XML ファイルを選択します。
[有効なプロバイダ] が有効になっていることを確認します。
[続行] をクリックします。
[プロバイダの構成] で、次の操作を行います。
[属性のマッピング] で、
google.subject
の CEL 式を入力します。省略可: 他のマッピングを入力するには、[マッピングを追加] をクリックして他のマッピングを入力します。次に例を示します。
この例では、IdP 属性google.subject=assertion.subject, google.groups=assertion.attributes['https://example.com/aliases'], attribute.costcenter=assertion.attributes.costcenter[0]
assertion.subject
、assertion.attributes['https://example.com/aliases']
、assertion.attributes.costcenter[0]
を Google Cloud 属性google.subject
、google.groups
、google.costcenter
にそれぞれマッピングしています。省略可: 属性条件を追加するには、[条件を追加] をクリックし、属性条件を表す CEL 式を入力します。たとえば、
ipaddr
属性を特定の IP 範囲に制限するには、条件assertion.attributes.ipaddr.startsWith('98.11.12.')
を設定します。この例の条件により、98.11.12.
で始まる IP アドレスを持つユーザーだけが、この Workforce プロバイダを使用してログインできます。[続行] をクリックします。
プロバイダを作成するには、[送信] をクリックします。
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 プロバイダ IDWORKFORCE_POOL_ID
: Workforce プール IDATTRIBUTE_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 プロバイダを使用してログインできるようにします。
プロバイダの説明を取得する
コンソール
プロバイダを表示するには、次の操作を行います。
- [Workforce Identity プール] ページに移動します。
テーブルで、プロバイダを表示するプールを選択します。
[プロバイダ] テーブルでプロバイダを選択します。
gcloud
プロバイダの説明を取得するには、次のコマンドを実行します。
gcloud iam workforce-pools providers describe PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=global
次のように置き換えます。
PROVIDER_ID
: プロバイダ IDWORKFORCE_POOL_ID
: Workforce プール ID
プロバイダを一覧表示する
コンソール
プロバイダを表示するには、次の操作を行います。
- [Workforce Identity プール] ページに移動します。
テーブルで、プロバイダを一覧表示するプールを選択します。
[プロバイダ] テーブルにプロバイダのリストが表示されます。
gcloud
プロバイダを一覧表示するには、次のコマンドを実行します。
gcloud iam workforce-pools providers list \
--workforce-pool=WORKFORCE_POOL_ID \
--location=global
WORKFORCE_POOL_ID
は、Workforce プール ID に置き換えます。
プロバイダを更新する
コンソール
プロバイダを表示するには、次の操作を行います。
- [Workforce Identity プール] ページに移動します。
テーブルで、プロバイダを表示するプールを選択します。
[プロバイダ] テーブルで、
[編集] をクリックします。プロバイダを更新します。
更新したプロバイダを保存するには、[保存] をクリックします。
gcloud
作成後に OIDC プロバイダを更新するには、次のコマンドを実行します。
gcloud iam workforce-pools providers update-oidc PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--description="DESCRIPTION" \
--location=global
次のように置き換えます。
PROVIDER_ID
: プロバイダ IDWORKFORCE_POOL_ID
: Workforce プール IDDESCRIPTION
: 説明
プロバイダを削除する
プロバイダを削除するには、次のコマンドを実行します。
gcloud iam workforce-pools providers delete PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=global
次のように置き換えます。
PROVIDER_ID
: プロバイダ IDWORKFORCE_POOL_ID
: Workforce プール ID
プロバイダの削除を取り消す
過去 30 日以内に削除されたプロバイダの削除を取り消すには、次のコマンドを実行します。
gcloud iam workforce-pools providers undelete PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=global
次のように置き換えます。
PROVIDER_ID
: プロバイダ IDWORKFORCE_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 を設定します。
この操作を行うと、すでにアップロードされている鍵がすべて削除されます。
次のステップ
- Azure AD との Workforce Identity 連携を構成してユーザー ログインを行う
- Okta との Workforce Identity 連携を構成してユーザー ログインを行う
- Workforce Identity 連携ユーザーとそのデータを削除する
- Workforce Identity 連携をサポートする Google Cloud プロダクトを確認する