Microsoft Entra ID から Google Cloudにマッピングするグループが 150 個未満の場合は、Microsoft Entra ID との Workforce Identity 連携を構成してユーザー ログインを行うをご覧ください。
主なコンセプト
このセクションでは、このドキュメントの後半で Workforce Identity 連携の構成に使用するコンセプトについて説明します。
追加属性
最大 400 個のグループをマッピングするには、Workforce Identity プール プロバイダを作成するときに extra-attributes フラグを指定して、追加属性を使用します。追加属性は、次のプロトコルで使用できます。
- 暗黙的フローを使用した OIDC
- コードフローを使用した OIDC
- SAML 2.0 プロトコル
Microsoft Entra ID アプリケーションがトークンで出力できるグループのメールアドレスの数は、SAML で 150、JWT で 200 に制限されています。この上限の詳細については、Microsoft Entra ID を使用してアプリケーションのグループ クレームを構成するをご覧ください。より多くのグループを取得するため、Workforce Identity 連携は Microsoft Identity の OAuth 2.0 クライアント認証情報フローを使用して認証情報を取得します。これにより、Workforce Identity 連携は Microsoft Graph API をクエリしてユーザーのグループを取得できます。
追加属性を使用する大まかな手順は次のとおりです。
新しい Microsoft Entra ID アプリケーションを作成するか、既存のアプリケーションを更新して、Microsoft Graph API からユーザーのグループ メンバーシップを取得します。Microsoft Graph が Microsoft Entra ID から大量のグループを取得する方法については、グループの超過をご覧ください。
Workforce Identity プール プロバイダを作成するときに、
extra-attributesフラグを使用して、Microsoft Graph API からユーザーのグループ メールアドレスを取得するように Workforce Identity 連携を構成します。
Workforce Identity 連携は、Microsoft Graph API から最大 999 個のグループを取得できます。Microsoft Graph API が 999 を超えるグループを返すと、ログインは失敗します。
Microsoft Graph API から返されるグループの数を減らすには、Workforce Identity プール プロバイダを作成するときに --extra-attributes-filter フラグを使用して、Workforce Identity 連携のクエリを絞り込みます。
Workforce Identity 連携は、Microsoft Graph API からグループを取得した後、アクセス トークンを生成します。Workforce Identity 連携では、アクセス トークンに最大 400 個のグループを追加できます。グループ数を 400 個以下にするには、Workforce Identity プール プロバイダを作成するときに、Common Expression Language(CEL)式を含む属性マッピングを指定します。
拡張属性
Gemini Enterprise ユーザーの場合は、拡張属性を使用して、Microsoft Entra ID から最大 1,000 個のグループをマッピングできます。この上限は、追加属性の上限よりも高くなっています。拡張属性を使用するには、Workforce Identity プール プロバイダを作成するときに extended-attributes フラグを指定します。拡張属性を使用すると、Workforce Identity 連携は Microsoft Entra ID からグループ ID(UUID)を取得します。
Gemini Enterprise ユーザーが Gemini Enterprise のノートブック共有 UI で UUID ではなく人が読めるグループ名を入力できるようにするには、SCIM も構成する必要があります。
このドキュメントの後半で説明するように、Workforce Identity 連携と IdP で SCIM を構成します。
拡張属性は、次のフラグを使用して構成します。
--extended-attributes-issuer-uri--extended-attributes-client-id--extended-attributes-client-secret-value
拡張属性を使用する場合は、次の制限も適用されます。
グループ属性は使用されないため、属性マッピングで
google.groupsを構成する必要はありません。ただし、他の属性マッピングは使用されます。他の Workforce Identity プール プロバイダ フラグは、ドキュメントに記載されているとおりに構成できますが、これらの設定は、Workforce Identity 連携をサポートする Gemini Enterprise 以外のプロダクトに適用されます。
拡張属性は、ログイン後でも、セッション継続時間中はバックグラウンドで定期的に更新されます。
Microsoft Entra ID では、アプリケーションに
User.Read、User.ReadBasic.All、GroupMember.Read.AllではなくUser.Read.All権限を付与する必要があります。拡張属性タイプフラグ
--extended-attributes-typeはazure-ad-groups-idタイプのみをサポートします。拡張属性でサポートされるグループは 1,000 個までです。一方、
--extra-attributesフラグは最大 400 個のグループをサポートします。拡張属性は、
vertexaisearch.cloud.googleを介したウェブログインでのみ使用できます。コンソール ログインや gcloud CLI ログインでは使用できません。
始める前に
- Google Cloud 組織が設定されていることを確認します。
-
Google Cloud CLI をインストールします。 インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud init外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
- Microsoft Entra ID で、暗黙的フローに対して ID トークンが有効になっていることを確認します。詳細については、ID トークンの暗黙的付与を有効にするをご覧ください。
- ログインの場合、IdP は署名付き認証情報を提供する必要があります。OIDC IdP は JWT を提供し、SAML IdP レスポンスは署名されている必要があります。
- 組織またはGoogle Cloud プロダクトの変更に関する重要な情報を受け取るには、重要な連絡先を指定する必要があります。詳細については、Workforce Identity 連携の概要をご覧ください。
- マッピングするすべてのグループが、Microsoft Entra ID でセキュリティ グループとしてマークされている必要があります。
費用
Workforce Identity 連携は、無料の機能として利用できます。ただし、Workforce Identity 連携の詳細な監査ロギングでは Cloud Logging が使用されます。Logging の料金については、Google Cloud Observability の料金をご覧ください。
必要なロール
Workforce Identity 連携の構成に必要な権限を取得するには、組織に対する IAM Workforce プール管理者(roles/iam.workforcePoolAdmin)の IAM ロールを付与するように管理者に依頼します。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
本番環境ではなく、開発環境またはテスト環境で権限を構成する場合は、IAM オーナー(roles/owner)の基本ロールを付与できます。このロールには、Workforce Identity 連携の権限も含まれています。
Microsoft Entra ID アプリケーションを作成する
このセクションでは、Microsoft Entra 管理ポータルを使用して Microsoft Entra ID アプリケーションを作成する方法について説明します。また、既存のアプリケーションを更新することもできます。詳細については、Microsoft Entra ID エコシステムでアプリケーションを構築するをご覧ください。
Workforce Identity プールは、OIDC プロトコルと SAML プロトコルの両方を使用した連携をサポートしています。
OIDC
OIDC プロトコルを使用する Microsoft Entra ID アプリケーション登録を作成するには、次の操作を行います。
Microsoft Entra 管理ポータルにログインします。
[Identity] > [Applications] > [App registrations] に移動します。
アプリケーション登録の構成を開始するには、次の操作を行います。
[New registration] をクリックします。
アプリケーションの名前を入力します。
[Supported account types] で、オプションを選択します。
[Redirect URI] セクションの [Select a platform] プルダウン リストで、[Web] を選択します。
テキスト フィールドにリダイレクト URL を入力します。ログインに成功すると、この URL にリダイレクトされます。コンソール(連携)へのアクセスを構成する場合は、次の URL 形式を使用します。
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID次のように置き換えます。
WORKFORCE_POOL_ID: このドキュメントの後半で Workforce Identity プールを作成するときに使用する Workforce Identity プール ID(例:entra-id-oidc-pool)。WORKFORCE_PROVIDER_ID: このドキュメントの後半で Workforce Identity プール プロバイダを作成するときに使用する Workforce Identity プール プロバイダ ID(例:entra-id-oidc-pool-provider)。ID の形式については、API ドキュメントのクエリ パラメータ セクションをご覧ください。
アプリケーション登録を作成するには、[Register] をクリックします。
このドキュメントの後半で説明するサンプル属性マッピングを使用するには、カスタム
department属性を作成する必要があります。
SAML
SAML プロトコルを使用する Microsoft Entra ID アプリケーション登録を作成するには、次の操作を行います。
Microsoft Entra 管理ポータルにログインします。
左側のナビゲーション メニューで、[Entra ID] > [Enterprise Apps] に移動します。
エンタープライズ アプリケーションの構成を開始するには、次の操作を行います。
[Single sign-on] > [Create your own application] をクリックします。
表示された [Create your own application] ペインで、アプリケーションの名前を入力します。
[Create] をクリックします。
[Single sign-on] > [SAML] に移動します。
[基本的な SAML 構成] を次のように更新します。
[Identifier (Entity ID)] フィールドに次の値を入力します。
https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID次のように置き換えます。
WORKFORCE_POOL_ID: このドキュメントの後半で Workforce Identity プールを作成するときに使用する Workforce Identity プール ID(例:entra-id-saml-pool)。WORKFORCE_PROVIDER_ID: このドキュメントの後半で Workforce Identity プール プロバイダを作成するときに使用する Workforce Identity プール プロバイダ ID(例:entra-id-saml-pool-provider)。ID の形式については、API ドキュメントのクエリ パラメータ セクションをご覧ください。
[Reply URL (Assertion Consumer Service URL)] フィールドに、リダイレクト URL を入力します。ログインに成功すると、この URL にリダイレクトされます。コンソール(連携)へのアクセスを構成する場合は、次の URL 形式を使用します。
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID次のように置き換えます。
WORKFORCE_POOL_ID: Workforce Identity プールの IDWORKFORCE_PROVIDER_ID: Workforce Identity プロバイダの ID。
IdP によるログインを有効にする場合は、[Relay State] フィールドを次の値に設定します。
https://console.cloud.google/SAML アプリケーションの構成を保存するには、[Save] をクリックします。
このドキュメントの後半で説明するサンプル属性マッピングを使用するには、カスタム
department属性を作成する必要があります。
Microsoft Entra ID で多数のグループを構成する
このセクションでは、OIDC プロトコルと SAML プロトコルを使用して、Microsoft Entra ID から Workforce Identity 連携に最大 400 個のグループをマッピングする方法について説明します。
OIDC 暗黙的フローを使用して Microsoft Entra ID で多数のグループを構成する
このセクションでは、暗黙的フローで OpenID Connect(OIDC)プロトコルを使用して、Microsoft Entra ID から Workforce Identity 連携に最大 400 個のグループをマッピングする方法について説明します。
Microsoft Entra ID アプリケーションを構成する
既存の Microsoft Entra ID アプリケーションを構成することも、新しいアプリケーションを作成することもできます。アプリケーションを構成するには、次の操作を行います。
-
Microsoft Entra ID ポータルで、次の操作を行います。
- 新しいアプリケーションを登録するには、新しいアプリケーションを登録するの手順に沿って操作してください。
- 既存のアプリケーションを更新するには、次の操作を行います。
- [Identity] > [Applications] > [Enterprise applications] に移動します。
- 更新するアプリケーションを選択します。
-
証明書とシークレットの手順に沿って、アプリケーションに新しいクライアント シークレットを作成します。クライアント シークレットの値は 1 回しか表示されないため、必ず記録してください。
作成または更新したアプリケーションの次の値をメモします。この値は、このドキュメントの後半で Workforce Identity プール プロバイダを構成するときに指定します。
Client IDIssuer URIClient SecretTenant ID
-
Microsoft Entra ID グループを取得するには、Workforce Identity 連携が Microsoft Graph API を使用して Microsoft Entra ID のユーザー情報にアクセスして、管理者の同意を付与できるように API 権限を追加します。Microsoft Entra ID で次の操作を行います。
- [API permissions] に移動します。
- [Add a Permission] をクリックします。
- [Microsoft API] を選択します。
- [Application permissions] を選択します。
- 検索フィールドに「
User.ReadBasic.All」と入力します。 - [権限を追加] をクリックします。
Microsoft Entra ID グループは、グループ オブジェクト ID として取得できます。メールが有効なグループの場合はグループのメールアドレスとして取得できます。
グループをグループのメールアドレスとして取得する場合は、次の手順が必要です。
- Microsoft Entra ID グループをグループのメールアドレスとして取得する手順は次のとおりです。グループをグループ オブジェクト ID として取得する場合は、この手順をスキップします。
- 検索フィールドに「
GroupMember.Read.All」と入力します。 - [Add permissions] をクリックします。
- ドメイン名の [Grant admin consent] をクリックします。
- 表示されたダイアログで [Yes] をクリックします。
- 前に作成または更新した Microsoft Entra ID アプリケーションの [Overview] ページに移動します。
- [Endpoints] をクリックします。
発行元 URI は、パス
/.well-known/openid-configurationを省略した OIDC メタデータ ドキュメントの URI です。たとえば、OIDC メタデータ ドキュメントが
https://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/.well-known/openid-configurationの場合、発行元 URI はhttps://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/です。 - 検索フィールドに「
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: Workforce Identity プールの Google Cloud 組織の組織 ID。Workforce Identity プールは、組織内のすべてのプロジェクトとフォルダで使用できます。DISPLAY_NAME: 省略可。Workforce Identity プールの表示名。DESCRIPTION: 省略可。Workforce Identity プールの説明。SESSION_DURATION: 省略可。セッション継続時間。sを付加した数値で表します(例:3600s)。セッション継続時間は、この Workforce プールの Google Cloud アクセス トークン、コンソール(連携)ログイン セッション、gcloud CLI ログイン セッションの有効期間を決定します。セッション継続時間のデフォルトは 1 時間(3,600 秒)です。セッション継続時間は 15 分(900 秒)~12 時間(43,200 秒)の範囲で指定する必要があります。
コンソール
Workforce Identity プールを作成するには、次の操作を行います。
Google Cloud コンソールで、[Workforce Identity プール] ページに移動します。
Workforce Identity プールの組織を選択します。Workforce Identity プールは、組織内のすべてのプロジェクトとフォルダで使用できます。
[プールを作成] をクリックして、次の操作を行います。
[名前] フィールドに、プールの表示名を入力します。プール ID は、入力した名前から自動的に取得され、[名前] フィールドの下に表示されます。プール ID を更新するには、プール ID の横にある [編集] をクリックします。
省略可: [説明] にプールの説明を入力します。
Workforce Identity プールを作成するには、[次へ] をクリックします。
Workforce Identity プールのセッション継続時間は、デフォルトで 1 時間(3,600 秒)に設定されます。セッション継続時間は、この Workforce プールの Google Cloud アクセス トークン、コンソール(連携)、gcloud CLI ログイン セッションの有効期間を決定します。プールを作成したら、プールを更新してカスタムのセッション継続時間を設定できます。セッション継続時間は 15 分(900 秒)から 12 時間(43,200 秒)にする必要があります。
OIDC 暗黙的フローの Workforce Identity プール プロバイダを構成する
gcloud
OIDC Workforce Identity プール プロバイダを作成するには、次のコマンドを実行します。
gcloud iam workforce-pools providers create-oidc PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=global \
--display-name=DISPLAY_NAME \
--issuer-uri=ISSUER_URI \
--client-id=CLIENT_ID \
--attribute-mapping=ATTRIBUTE_MAPPING \
--web-sso-response-type=id-token \
--web-sso-assertion-claims-behavior=only-id-token-claims \
--extra-attributes-issuer-uri=EXTRA_ATTRIBUTES_ISSUER_URI \
--extra-attributes-client-id=EXTRA_ATTRIBUTES_CLIENT_ID \
--extra-attributes-client-secret-value=EXTRA_ATTRIBUTES_CLIENT_SECRET \
--extra-attributes-type=EXTRA_ATTRIBUTES_TYPE \
--extra-attributes-filter=EXTRA_ATTRIBUTES_FILTER \
--detailed-audit-logging
次のように置き換えます。
-
PROVIDER_ID: 一意のプロバイダ ID。接頭辞gcp-は予約されているため、プールやプロバイダ ID では使用できません。 -
WORKFORCE_POOL_ID: Workforce プール ID -
DISPLAY_NAME: プロバイダの表示名。 -
ISSUER_URI: このドキュメントで作成した Microsoft Entra ID アプリケーションの発行元 URI。 -
CLIENT_ID: Microsoft Entra ID アプリケーションのクライアント ID。 -
ATTRIBUTE_MAPPING: Microsoft Entra ID から Google Cloudへの属性のマッピング。 たとえば、Microsoft Entra ID のgroups属性とsubject属性をマッピングするには、次の属性マッピングを使用します。--attribute-mapping="google.groups=assertion.groups, google.subject=assertion.sub"
詳細については、属性のマッピングをご覧ください。
-
EXTRA_ATTRIBUTES_ISSUER_URI: Microsoft Entra ID アプリケーションの発行元 URI。 -
EXTRA_ATTRIBUTES_CLIENT_ID: Microsoft Entra ID アプリケーションのクライアント ID。 -
EXTRA_ATTRIBUTES_CLIENT_SECRET: Microsoft Entra ID アプリケーションの追加のクライアント シークレット。 -
EXTRA_ATTRIBUTES_TYPE:azure-ad-groups-mailを使用して、グループのメールアドレスを取得します。azure-ad-groups-idを使用して、グループの ID を取得します。 -
EXTRA_ATTRIBUTES_FILTER: 省略可。グループの Microsoft Graph API をクエリするときに使用されるフィルタ式。このパラメータを使用すると、IdP から取得されるグループ数が上限(400 グループ)を下回るようにすることができます。次の例は、メール ID に接頭辞
salesが付いているグループを取得します。--extra-attributes-filter='"mail:sales"'
次の式は、表示名に
salesという文字列を含むグループを取得します。--extra-attributes-filter='"displayName:sales"'
-
Workforce Identity 連携の詳細な監査ロギングでは、IdP から受信した情報が Logging に記録されます。詳細な監査ロギングは、Workforce Identity プール プロバイダの構成のトラブルシューティングに役立ちます。詳細な監査ロギングを使用して属性マッピング エラーのトラブルシューティングを行う方法については、一般的な属性マッピング エラーをご覧ください。Logging の料金については、Google Cloud Observability の料金をご覧ください。
Workforce Identity プール プロバイダの詳細な監査ロギングを無効にするには、
gcloud iam workforce-pools providers createの実行時に--detailed-audit-loggingフラグを省略します。詳細な監査ロギングを無効にするには、プロバイダを更新することもできます。
コンソール
- Google Cloud コンソールで、[Workforce Identity プール] ページに移動します。
- [Workforce Identity プール] テーブルで、プロバイダを作成するプールを選択します。
- [プロバイダ] セクションで、[プロバイダを追加] をクリックします。
- [プロバイダ ベンダーを選択] リストで、ID プロバイダ(IdP)を選択します。
IdP がリストにない場合は、[汎用 ID プロバイダ] を選択します。
- [認証プロトコルを選択する] で、[OpenID Connect(OIDC)] を選択します。
- [プロバイダを作成する] セクションで、次の操作を行います。
- [名前] にプロバイダの名前を入力します。
- [説明] に、プロバイダの説明を入力します。
- [発行元(URL)] に発行元 URI を入力します。
OIDC 発行元 URI は有効な URI 形式で、
httpsで始まる必要があります。(例:https://example.com/oidc)。 - [クライアント ID] に、OIDC IdP に登録されている OIDC クライアント ID を入力します。ID は、IdP によって発行された JWT の
audクレームと一致する必要があります。 有効なプロバイダを作成するには、[プロバイダを有効にする] がオンになっていることを確認します。
- [続行] をクリックします。
- [Share your provider information with IdP] セクションで、URL をコピーします。IdP で、この URL をリダイレクト URI として構成します。これにより、ログイン後のアサーション トークンの送信先が IdP に通知されます。
- [続行] をクリックします。
- [OIDC ウェブログインの構成] セクションで、次の操作を行います。
- [フロータイプ] リストで、[ID トークン] を選択します。
- [アサーション クレームの動作] リストで、[ID トークン] が選択されています。
- 省略可: IdP として Okta を選択した場合は、[openid、profile、email 以外の追加のスコープ] フィールドに、追加の OIDC スコープを追加します。
- 必須: [OIDC 1] に、IdP からの件名を入力します(例:
assertion.sub)。 - 省略可: 属性のマッピングを追加する手順は次のとおりです。
- [マッピングを追加] をクリックします。
- [Google n](n は数値)で、Google Cloudでサポートされている鍵のいずれかを入力します。
- 対応する [OIDC n] フィールドに、マッピングする IdP 固有のフィールドの名前を CEL 形式で入力します。
- IdP として Microsoft Entra ID を選択した場合は、グループ数を増やすことができます。
- [追加属性を使用する] を選択します。
- [追加属性の発行元 URI] フィールドに、発行元 URL を入力します。
- [追加属性のクライアント ID] フィールドに、クライアント ID を入力します。
- [追加属性のクライアント シークレット] フィールドに、クライアント シークレットを入力します。
- [追加属性のタイプ] リストで、追加属性の属性タイプを選択します。
- [追加属性フィルタ] フィールドに、グループの Microsoft Graph API のクエリ実行時に使用されるフィルタ式を入力します。
- 属性条件を作成するには、次の操作を行います。
- [条件を追加] をクリックします。
- [属性条件] フィールドに、CEL 形式で条件を入力します(例:
assertion.role == 'gcp-users')。この例の条件により、ロールgcp-usersを持つユーザーのみがこのプロバイダを使用してログインできます。 - 詳細な監査ロギングを有効にするには、[詳細なロギング] で [属性値の監査ログを有効にする] ボタンをクリックします。
Workforce Identity 連携の詳細な監査ロギングでは、IdP から受信した情報が Logging に記録されます。詳細な監査ロギングは、Workforce Identity プール プロバイダの構成のトラブルシューティングに役立ちます。詳細な監査ロギングを使用して属性マッピング エラーのトラブルシューティングを行う方法については、一般的な属性マッピング エラーをご覧ください。Logging の料金については、Google Cloud Observability の料金をご覧ください。
Workforce Identity プール プロバイダの詳細な監査ロギングを無効にするには、
gcloud iam workforce-pools providers createの実行時に--detailed-audit-loggingフラグを省略します。詳細な監査ロギングを無効にするには、プロバイダを更新することもできます。
OIDC コードフローを使用して Microsoft Entra ID で多数のグループを構成する
このセクションでは、コードフローで OIDC プロトコルを使用して、Microsoft Entra ID から Workforce Identity 連携に最大 400 個のグループをマッピングする方法について説明します。
Microsoft Entra ID アプリケーションを構成する
既存の Microsoft Entra ID アプリケーションを構成することも、新しいアプリケーションを作成することもできます。アプリケーションを構成するには、次の操作を行います。
-
Microsoft Entra ID ポータルで、次の操作を行います。
- 新しいアプリケーションを登録するには、新しいアプリケーションを登録するの手順に沿って操作してください。
- 既存のアプリケーションを更新するには、次の操作を行います。
- [Identity] > [Applications] > [Enterprise applications] に移動します。
- 更新するアプリケーションを選択します。
-
証明書とシークレットの手順に沿って、アプリケーションに新しいクライアント シークレットを作成します。クライアント シークレットの値は 1 回しか表示されないため、必ず記録してください。
作成または更新したアプリケーションの次の値をメモします。この値は、このドキュメントの後半で Workforce Identity プール プロバイダを構成するときに指定します。
Client IDIssuer URIClient SecretTenant ID
-
Microsoft Entra ID グループを取得するには、Workforce Identity 連携が Microsoft Graph API を使用して Microsoft Entra ID のユーザー情報にアクセスして、管理者の同意を付与できるように API 権限を追加します。Microsoft Entra ID で次の操作を行います。
- [API permissions] に移動します。
- [Add a Permission] をクリックします。
- [Microsoft API] を選択します。
- [Delegated permissions] を選択します。
- 検索フィールドに「
User.Read」と入力します。 - [権限を追加] をクリックします。
Microsoft Entra ID グループは、グループ オブジェクト ID として取得できます。メールが有効なグループの場合はグループのメールアドレスとして取得できます。
グループをグループのメールアドレスとして取得する場合は、次の手順が必要です。
- Microsoft Entra ID グループをグループのメールアドレスとして取得する手順は次のとおりです。グループをグループ オブジェクト ID として取得する場合は、この手順をスキップします。
- 検索フィールドに「
GroupMember.Read.All」と入力します。 - [Add permissions] をクリックします。
- ドメイン名の [Grant admin consent] をクリックします。
- 表示されたダイアログで [Yes] をクリックします。
- 前に作成または更新した Microsoft Entra ID アプリケーションの [Overview] ページに移動します。
- [Endpoints] をクリックします。
発行元 URI は、パス
/.well-known/openid-configurationを省略した OIDC メタデータ ドキュメントの URI です。たとえば、OIDC メタデータ ドキュメントが
https://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/.well-known/openid-configurationの場合、発行元 URI はhttps://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/です。 - 検索フィールドに「
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: Workforce Identity プールの Google Cloud 組織の組織 ID。Workforce Identity プールは、組織内のすべてのプロジェクトとフォルダで使用できます。DISPLAY_NAME: 省略可。Workforce Identity プールの表示名。DESCRIPTION: 省略可。Workforce Identity プールの説明。SESSION_DURATION: 省略可。セッション継続時間。sを付加した数値で表します(例:3600s)。セッション継続時間は、この Workforce プールの Google Cloud アクセス トークン、コンソール(連携)ログイン セッション、gcloud CLI ログイン セッションの有効期間を決定します。セッション継続時間のデフォルトは 1 時間(3,600 秒)です。セッション継続時間は 15 分(900 秒)~12 時間(43,200 秒)の範囲で指定する必要があります。
コンソール
Workforce Identity プールを作成するには、次の操作を行います。
Google Cloud コンソールで、[Workforce Identity プール] ページに移動します。
Workforce Identity プールの組織を選択します。Workforce Identity プールは、組織内のすべてのプロジェクトとフォルダで使用できます。
[プールを作成] をクリックして、次の操作を行います。
[名前] フィールドに、プールの表示名を入力します。プール ID は、入力した名前から自動的に取得され、[名前] フィールドの下に表示されます。プール ID を更新するには、プール ID の横にある [編集] をクリックします。
省略可: [説明] にプールの説明を入力します。
Workforce Identity プールを作成するには、[次へ] をクリックします。
Workforce Identity プールのセッション継続時間は、デフォルトで 1 時間(3,600 秒)に設定されます。セッション継続時間は、この Workforce プールの Google Cloud アクセス トークン、コンソール(連携)、gcloud CLI ログイン セッションの有効期間を決定します。プールを作成したら、プールを更新してカスタムのセッション継続時間を設定できます。セッション継続時間は 15 分(900 秒)から 12 時間(43,200 秒)にする必要があります。
OIDC コードフローの Workforce Identity プール プロバイダを構成する
gcloud
OIDC Workforce Identity プール プロバイダを作成するには、次のコマンドを実行します。
gcloud iam workforce-pools providers create-oidc PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=global \
--display-name=DISPLAY_NAME \
--issuer-uri=ISSUER_URI \
--client-id=CLIENT_ID \
--client-secret-value="OIDC_CLIENT_SECRET" \
--attribute-mapping=ATTRIBUTE_MAPPING \
--web-sso-response-type=code \
--web-sso-assertion-claims-behavior=merge-user-info-over-id-token-claims \
--extra-attributes-issuer-uri=EXTRA_ATTRIBUTES_ISSUER_URI \
--extra-attributes-client-id=EXTRA_ATTRIBUTES_CLIENT_ID \
--extra-attributes-client-secret-value=EXTRA_ATTRIBUTES_CLIENT_SECRET \
--extra-attributes-type=EXTRA_ATTRIBUTES_TYPE \
--extra-attributes-filter=EXTRA_ATTRIBUTES_FILTER \
--detailed-audit-logging
次のように置き換えます。
-
PROVIDER_ID: 一意のプロバイダ ID。接頭辞gcp-は予約されているため、プールやプロバイダ ID では使用できません。 -
WORKFORCE_POOL_ID: Workforce プール ID -
DISPLAY_NAME: プロバイダの表示名。 -
ISSUER_URI: このドキュメントで作成した Microsoft Entra ID アプリケーションの発行元 URI。 -
CLIENT_ID: Microsoft Entra ID アプリケーションのクライアント ID。 -
ATTRIBUTE_MAPPING: Microsoft Entra ID から Google Cloudへの属性のマッピング。 たとえば、Microsoft Entra ID のgroups属性とsubject属性をマッピングするには、次の属性マッピングを使用します。--attribute-mapping="google.groups=assertion.groups, google.subject=assertion.sub"
詳細については、属性のマッピングをご覧ください。
-
EXTRA_ATTRIBUTES_ISSUER_URI: Microsoft Entra ID アプリケーションの発行元 URI。 -
EXTRA_ATTRIBUTES_CLIENT_ID: Microsoft Entra ID アプリケーションのクライアント ID。 -
EXTRA_ATTRIBUTES_CLIENT_SECRET: Microsoft Entra ID アプリケーションの追加のクライアント シークレット。 -
EXTRA_ATTRIBUTES_TYPE:azure-ad-groups-mailを使用して、グループのメールアドレスを取得します。azure-ad-groups-idを使用して、グループの ID を取得します。 -
EXTRA_ATTRIBUTES_FILTER: 省略可。グループの Microsoft Graph API をクエリするときに使用されるフィルタ式。このパラメータを使用すると、IdP から取得されるグループ数が上限(400 グループ)を下回るようにすることができます。次の例は、メール ID に接頭辞
salesが付いているグループを取得します。--extra-attributes-filter='"mail:sales"'
次の式は、表示名に
salesという文字列を含むグループを取得します。--extra-attributes-filter='"displayName:sales"'
-
Workforce Identity 連携の詳細な監査ロギングでは、IdP から受信した情報が Logging に記録されます。詳細な監査ロギングは、Workforce Identity プール プロバイダの構成のトラブルシューティングに役立ちます。詳細な監査ロギングを使用して属性マッピング エラーのトラブルシューティングを行う方法については、一般的な属性マッピング エラーをご覧ください。Logging の料金については、Google Cloud Observability の料金をご覧ください。
Workforce Identity プール プロバイダの詳細な監査ロギングを無効にするには、
gcloud iam workforce-pools providers createの実行時に--detailed-audit-loggingフラグを省略します。詳細な監査ロギングを無効にするには、プロバイダを更新することもできます。
コンソール
- Google Cloud コンソールで、[Workforce Identity プール] ページに移動します。
- [Workforce Identity プール] テーブルで、プロバイダを作成するプールを選択します。
- [プロバイダ] セクションで、[プロバイダを追加] をクリックします。
- [プロバイダ ベンダーを選択] リストで、ID プロバイダ(IdP)を選択します。
IdP がリストにない場合は、[汎用 ID プロバイダ] を選択します。
- [認証プロトコルを選択する] で、[OpenID Connect(OIDC)] を選択します。
- [プロバイダを作成する] セクションで、次の操作を行います。
- [名前] にプロバイダの名前を入力します。
- [説明] に、プロバイダの説明を入力します。
- [発行元(URL)] に発行元 URI を入力します。
OIDC 発行元 URI は有効な URI 形式で、
httpsで始まる必要があります。(例:https://example.com/oidc)。 - [クライアント ID] に、OIDC IdP に登録されている OIDC クライアント ID を入力します。ID は、IdP によって発行された JWT の
audクレームと一致する必要があります。 有効なプロバイダを作成するには、[プロバイダを有効にする] がオンになっていることを確認します。
- [続行] をクリックします。
- [Share your provider information with IdP] セクションで、URL をコピーします。IdP で、この URL をリダイレクト URI として構成します。これにより、ログイン後のアサーション トークンの送信先が IdP に通知されます。
- [続行] をクリックします。
- [OIDC ウェブログインの構成] セクションで、次の操作を行います。
- [フロータイプ] リストで、[コード] を選択します。
- [アサーション クレームの動作] リストで、次のいずれかを選択します。
- ユーザー情報と ID トークン
- ID トークンのみ
- [クライアント シークレット] フィールドに、IdP のクライアント シークレットを入力します。
- 省略可: IdP として Okta を選択した場合は、[openid、profile、email 以外の追加のスコープ] フィールドに、追加の OIDC スコープを追加します。
- [続行] をクリックします。
- [プロバイダの構成] で、属性のマッピングと属性条件を構成できます。属性のマッピングを作成する手順は次のとおりです。IdP フィールド名、または文字列を返す CEL 形式の式を指定できます。
- 必須: [OIDC 1] に、IdP からの件名を入力します(例:
assertion.sub)。 - 省略可: 属性のマッピングを追加する手順は次のとおりです。
- [マッピングを追加] をクリックします。
- [Google n](n は数値)で、Google Cloudでサポートされている鍵のいずれかを入力します。
- 対応する [OIDC n] フィールドに、マッピングする IdP 固有のフィールドの名前を CEL 形式で入力します。
- IdP として Microsoft Entra ID を選択した場合は、グループ数を増やすことができます。
- [追加属性を使用する] を選択します。
- [追加属性の発行元 URI] フィールドに、発行元 URL を入力します。
- [追加属性のクライアント ID] フィールドに、クライアント ID を入力します。
- [追加属性のクライアント シークレット] フィールドに、クライアント シークレットを入力します。
- [追加属性のタイプ] リストで、追加属性の属性タイプを選択します。
- [追加属性フィルタ] フィールドに、グループの Microsoft Graph API のクエリ実行時に使用されるフィルタ式を入力します。
- 属性条件を作成するには、次の操作を行います。
- [条件を追加] をクリックします。
- [属性条件] フィールドに、CEL 形式で条件を入力します(例:
assertion.role == 'gcp-users')。この例の条件により、ロールgcp-usersを持つユーザーのみがこのプロバイダを使用してログインできます。 - 詳細な監査ロギングを有効にするには、[詳細なロギング] で [属性値の監査ログを有効にする] ボタンをクリックします。
Workforce Identity 連携の詳細な監査ロギングでは、IdP から受信した情報が Logging に記録されます。詳細な監査ロギングは、Workforce Identity プール プロバイダの構成のトラブルシューティングに役立ちます。詳細な監査ロギングを使用して属性マッピング エラーのトラブルシューティングを行う方法については、一般的な属性マッピング エラーをご覧ください。Logging の料金については、Google Cloud Observability の料金をご覧ください。
Workforce Identity プール プロバイダの詳細な監査ロギングを無効にするには、
gcloud iam workforce-pools providers createの実行時に--detailed-audit-loggingフラグを省略します。詳細な監査ロギングを無効にするには、プロバイダを更新することもできます。
- 必須: [OIDC 1] に、IdP からの件名を入力します(例:
- プロバイダを作成するには、[送信] をクリックします。
SAML 2.0 を使用して Microsoft Entra ID で多数のグループを構成する
このセクションでは、SAML 2.0 プロトコルを使用して、Microsoft Entra ID から Workforce Identity 連携に最大 400 個のグループをマッピングする方法について説明します。
Microsoft Entra ID アプリケーションを構成する
アプリケーションを構成するには、次の操作を行います。
-
Microsoft Entra ID ポータルで、次の操作を行います。
- 新しいアプリケーションを登録するには、新しいアプリケーションを登録するの手順に沿って操作してください。
- 既存のアプリケーションを更新するには、次の操作を行います。
- [Identity] > [Applications] > [Enterprise applications] に移動します。
- 更新するアプリケーションを選択します。
-
証明書とシークレットの手順に沿って、アプリケーションに新しいクライアント シークレットを作成します。クライアント シークレットの値は 1 回しか表示されないため、必ず記録してください。
作成または更新したアプリケーションの次の値をメモします。この値は、このドキュメントの後半で Workforce Identity プール プロバイダを構成するときに指定します。
Client IDIssuer URIClient SecretTenant ID
-
Microsoft Entra ID グループを取得するには、Workforce Identity 連携が Microsoft Graph API を使用して Microsoft Entra ID のユーザー情報にアクセスして、管理者の同意を付与できるように API 権限を追加します。Microsoft Entra ID で次の操作を行います。
- [API permissions] に移動します。
- [Add a Permission] をクリックします。
- [Microsoft API] を選択します。
- [Application permissions] を選択します。
- 検索フィールドに「
User.ReadBasic.All」と入力します。 - [権限を追加] をクリックします。
Microsoft Entra ID グループは、グループ オブジェクト ID として取得できます。メールが有効なグループの場合はグループのメールアドレスとして取得できます。
グループをグループのメールアドレスとして取得する場合は、次の手順が必要です。
- Microsoft Entra ID グループをグループのメールアドレスとして取得する手順は次のとおりです。グループをグループ オブジェクト ID として取得する場合は、この手順をスキップします。
- 検索フィールドに「
GroupMember.Read.All」と入力します。 - [Add permissions] をクリックします。
- ドメイン名の [Grant admin consent] をクリックします。
- 表示されたダイアログで [Yes] をクリックします。
- 前に作成または更新した Microsoft Entra ID アプリケーションの [Overview] ページに移動します。
- [Endpoints] をクリックします。
発行元 URI は、パス
/.well-known/openid-configurationを省略した OIDC メタデータ ドキュメントの URI です。たとえば、OIDC メタデータ ドキュメントが
https://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/.well-known/openid-configurationの場合、発行元 URI はhttps://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/です。 - 検索フィールドに「
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: Workforce Identity プールの Google Cloud 組織の組織 ID。Workforce Identity プールは、組織内のすべてのプロジェクトとフォルダで使用できます。DISPLAY_NAME: 省略可。Workforce Identity プールの表示名。DESCRIPTION: 省略可。Workforce Identity プールの説明。SESSION_DURATION: 省略可。セッション継続時間。sを付加した数値で表します(例:3600s)。セッション継続時間は、この Workforce プールの Google Cloud アクセス トークン、コンソール(連携)ログイン セッション、gcloud CLI ログイン セッションの有効期間を決定します。セッション継続時間のデフォルトは 1 時間(3,600 秒)です。セッション継続時間は 15 分(900 秒)~12 時間(43,200 秒)の範囲で指定する必要があります。
コンソール
Workforce Identity プールを作成するには、次の操作を行います。
Google Cloud コンソールで、[Workforce Identity プール] ページに移動します。
Workforce Identity プールの組織を選択します。Workforce Identity プールは、組織内のすべてのプロジェクトとフォルダで使用できます。
[プールを作成] をクリックして、次の操作を行います。
[名前] フィールドに、プールの表示名を入力します。プール ID は、入力した名前から自動的に取得され、[名前] フィールドの下に表示されます。プール ID を更新するには、プール ID の横にある [編集] をクリックします。
省略可: [説明] にプールの説明を入力します。
Workforce Identity プールを作成するには、[次へ] をクリックします。
Workforce Identity プールのセッション継続時間は、デフォルトで 1 時間(3,600 秒)に設定されます。セッション継続時間は、この Workforce プールの Google Cloud アクセス トークン、コンソール(連携)、gcloud CLI ログイン セッションの有効期間を決定します。プールを作成したら、プールを更新してカスタムのセッション継続時間を設定できます。セッション継続時間は 15 分(900 秒)から 12 時間(43,200 秒)にする必要があります。
SAML 2.0 の Workforce Identity プール プロバイダを構成する
gcloud
SAML Workforce Identity プール プロバイダを作成するには、次のコマンドを実行します。
gcloud iam workforce-pools providers create-saml PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=global \
--display-name=DISPLAY_NAME \
--idp-metadata-path=XML_METADATA_PATH \
--attribute-mapping=ATTRIBUTE_MAPPING \
--extra-attributes-issuer-uri=EXTRA_ATTRIBUTES_ISSUER_URI \
--extra-attributes-client-id=EXTRA_ATTRIBUTES_CLIENT_ID \
--extra-attributes-client-secret-value=EXTRA_ATTRIBUTES_CLIENT_SECRET \
--extra-attributes-type=EXTRA_ATTRIBUTES_TYPE \
--extra-attributes-filter=EXTRA_ATTRIBUTES_FILTER \
--detailed-audit-logging
次のように置き換えます。
-
PROVIDER_ID: 一意のプロバイダ ID。接頭辞gcp-は予約されているため、プールやプロバイダ ID では使用できません。 -
WORKFORCE_POOL_ID: Workforce プール ID -
DISPLAY_NAME: プロバイダの表示名。 -
XML_METADATA_PATH: SAML 2.0 XML メタデータ ファイルのパス。 -
ATTRIBUTE_MAPPING: Microsoft Entra ID から Google Cloudへの属性のマッピング。 たとえば、Microsoft Entra ID のgroups属性とsubject属性をマッピングするには、次の属性マッピングを使用します。--attribute-mapping="google.groups=assertion.groups, google.subject=assertion.sub"
詳細については、属性のマッピングをご覧ください。
-
EXTRA_ATTRIBUTES_ISSUER_URI: Microsoft Entra ID アプリケーションの発行元 URI。 -
EXTRA_ATTRIBUTES_CLIENT_ID: Microsoft Entra ID アプリケーションのクライアント ID。 -
EXTRA_ATTRIBUTES_CLIENT_SECRET: Microsoft Entra ID アプリケーションの追加のクライアント シークレット。 -
EXTRA_ATTRIBUTES_TYPE:azure-ad-groups-mailを使用して、グループのメールアドレスを取得します。azure-ad-groups-idを使用して、グループの ID を取得します。 -
EXTRA_ATTRIBUTES_FILTER: 省略可。グループの Microsoft Graph API をクエリするときに使用されるフィルタ式。このパラメータを使用すると、IdP から取得されるグループ数が上限(400 グループ)を下回るようにすることができます。次の例は、メール ID に接頭辞
salesが付いているグループを取得します。--extra-attributes-filter='"mail:sales"'
次の式は、表示名に
salesという文字列を含むグループを取得します。--extra-attributes-filter='"displayName:sales"'
-
Workforce Identity 連携の詳細な監査ロギングでは、IdP から受信した情報が Logging に記録されます。詳細な監査ロギングは、Workforce Identity プール プロバイダの構成のトラブルシューティングに役立ちます。詳細な監査ロギングを使用して属性マッピング エラーのトラブルシューティングを行う方法については、一般的な属性マッピング エラーをご覧ください。Logging の料金については、Google Cloud Observability の料金をご覧ください。
Workforce Identity プール プロバイダの詳細な監査ロギングを無効にするには、
gcloud iam workforce-pools providers createの実行時に--detailed-audit-loggingフラグを省略します。詳細な監査ロギングを無効にするには、プロバイダを更新することもできます。
コンソール
- Google Cloud コンソールで、[Workforce Identity プール] ページに移動します。
- [Workforce Identity プール] テーブルで、プロバイダを作成するプールを選択します。
- [プロバイダ] セクションで、[プロバイダを追加] をクリックします。
- [プロバイダ ベンダーを選択] リストで、ID プロバイダ(IdP)を選択します。
IdP がリストにない場合は、[汎用 ID プロバイダ] を選択します。
- [認証プロトコルを選択する] で、[SAML] を選択します。
- [プロバイダを作成する] セクションで、次の操作を行います。
- [名前] にプロバイダの名前を入力します。
- 省略可: [説明] にプロバイダの説明を入力します。
- [IDP メタデータ ファイル(XML)] で、このガイドで生成したメタデータ XML ファイルを選択します。
- 有効なプロバイダを作成するには、[プロバイダを有効にする] がオンになっていることを確認します。
- [続行] をクリックします。
- [Share your provider information] セクションで、URL をコピーします。IdP で、最初の URL をエンティティ ID として構成します。これにより、IdP にアプリケーションが識別されます。もう一方の URL をリダイレクト URI として構成します。これにより、ログイン後のアサーション トークンの送信先が IdP に通知されます。
- [続行] をクリックします。
- [プロバイダを構成する] セクションで、次の操作を行います。
- [属性のマッピング] で、
google.subjectの CEL 式を入力します。 - 省略可: 他のマッピングを入力するには、[マッピングを追加] をクリックして他のマッピングを入力します。次に例を示します。
- IdP として Microsoft Entra ID を選択した場合は、グループ数を増やすことができます。
- [追加属性を使用する] を選択します。
- [追加属性の発行元 URI] フィールドに、発行元 URL を入力します。
- [追加属性のクライアント ID] フィールドに、クライアント ID を入力します。
- [追加属性のクライアント シークレット] フィールドに、クライアント シークレットを入力します。
- [追加属性のタイプ] リストで、追加属性の属性タイプを選択します。
- [追加属性フィルタ] フィールドに、グループの Microsoft Graph API のクエリ実行時に使用されるフィルタ式を入力します。
- 省略可: 属性条件を追加するには、[条件を追加] をクリックし、属性条件を表す CEL 式を入力します。
たとえば、
ipaddr属性を特定の IP 範囲に制限するには、条件assertion.attributes.ipaddr.startsWith('98.11.12.')を設定します。この例の条件により、98.11.12.で始まる IP アドレスを持つユーザーだけが、この Workforce プロバイダを使用してログインできます。 - [続行] をクリックします。
- 詳細な監査ロギングを有効にするには、[詳細なロギング] で [属性値の監査ログを有効にする] ボタンをクリックします。
Workforce Identity 連携の詳細な監査ロギングでは、IdP から受信した情報が Logging に記録されます。詳細な監査ロギングは、Workforce Identity プール プロバイダの構成のトラブルシューティングに役立ちます。詳細な監査ロギングを使用して属性マッピング エラーのトラブルシューティングを行う方法については、一般的な属性マッピング エラーをご覧ください。Logging の料金については、Google Cloud Observability の料金をご覧ください。
Workforce Identity プール プロバイダの詳細な監査ロギングを無効にするには、
gcloud iam workforce-pools providers createの実行時に--detailed-audit-loggingフラグを省略します。詳細な監査ロギングを無効にするには、プロバイダを更新することもできます。
この例では、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にそれぞれマッピングしています。 - [属性のマッピング] で、
- プロバイダを作成するには、[送信] をクリックします。
グループに IAM ロールを付与する
このセクションでは、 Google Cloud リソースのグループにロールを付与します。Workforce Identity 連携のプリンシパル ID の詳細については、IAM ポリシーで Workforce プールユーザーを表すをご覧ください。
次の例では、Microsoft Entra ID グループ内のユーザーにストレージ管理者ロール(roles/storage.admin)を付与します。
gcloud projects add-iam-policy-binding PROJECT_ID \
--role="roles/storage.admin" \
--member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
次のように置き換えます。
-
PROJECT_ID: プロジェクト ID WORKFORCE_POOL_ID: Workforce Identity プールの ID-
GROUP_ID: グループ ID。Workforce Identity プール プロバイダの作成に使用された--extra-attributes-typeの値によって異なります。azure-ad-groups-mail: グループ ID はメールアドレスです(例:admin-group@altostrat.com)。azure-ad-groups-id: グループ ID はグループの UUID です(例:abcdefgh-0123-0123-abcdef)。
ログインしてアクセスをテストする
このセクションでは、Workforce Identity プールユーザーとしてログインし、 Google Cloud リソースにアクセスできることを確認します。
ログイン
このセクションでは、連携ユーザーとしてログインし、Google Cloud リソースにアクセスする方法について説明します。
コンソール(連携)ログイン
Google Cloud Workforce Identity 連携コンソール(コンソール(連携))にログインするには、次の操作を行います。
-
コンソール(連携)のログインページに移動します。
- プロバイダ名を入力します。形式は次のとおりです。
locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
プロンプトが表示されたら、Microsoft Entra ID でユーザー認証情報を入力します。
IdP 開始のログインを始める場合は、リレー URL に https://console.cloud.google/ を使用します。
gcloud CLI ブラウザベースのログイン
ブラウザベースのログインフローを使用して gcloud CLI にログインする方法は次のとおりです。
構成ファイルを作成する
ログイン構成ファイルを作成するには、次のコマンドを実行します。必要に応じて、--activate フラグを追加することで、このファイルを gcloud CLI のデフォルトとして有効にできます。その後、構成ファイルのパスを毎回指定しなくても gcloud auth login を実行できます。
gcloud iam workforce-pools create-login-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID \ --output-file=LOGIN_CONFIG_FILE_PATH
次のように置き換えます。
WORKFORCE_POOL_ID: Workforce プール IDPROVIDER_ID: プロバイダ IDLOGIN_CONFIG_FILE_PATH: 指定した構成ファイルのパス(例:login.json)
このファイルには、gcloud CLI でブラウザベースの認証フローを有効にし、Workforce Identity プール プロバイダで構成された IdP にオーディエンスを設定するために使用するエンドポイントが含まれています。このファイルに機密情報は含まれていません。
出力は次のようになります。
{ "type": "external_account_authorized_user_login_config", "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID", "auth_url": "https://auth.cloud.google/authorize", "token_url": "https://sts.googleapis.com/v1/oauthtoken", "token_info_url": "https://sts.googleapis.com/v1/introspect" }
gcloud auth login がこの構成ファイルを自動的に使用しないようにするには、gcloud config unset auth/login_config_file を実行して設定を解除します。
ブラウザベースの認証を使用してログインする
ブラウザベースのログイン認証を使用して認証するには、次のいずれかの方法を使用します。
-
構成ファイルの作成時に
--activateフラグを使用した場合、またはgcloud config set auth/login_config_fileで構成ファイルを有効にした場合、gcloud CLI は構成ファイルを自動的に使用します。gcloud auth login
-
構成ファイルの場所を指定してログインするには、次のコマンドを実行します。
gcloud auth login --login-config=LOGIN_CONFIG_FILE_PATH
-
環境変数を使用して構成ファイルの場所を指定するには、
CLOUDSDK_AUTH_LOGIN_CONFIG_FILEを構成パスに設定します。
ブラウザベースのログインを無効にする
ログイン構成ファイルの使用を停止するには、次の手順を行います。
-
構成ファイルの作成時に
--activateフラグを使用した場合、またはgcloud config set auth/login_config_fileで構成ファイルを有効にした場合は、次のコマンドを実行して設定を解除する必要があります。gcloud config unset auth/login_config_file
-
CLOUDSDK_AUTH_LOGIN_CONFIG_FILE環境変数が設定されている場合は、クリアします。
gcloud CLI ヘッドレス ログイン
gcloud CLI を使用して Microsoft Entra ID にログインする手順は次のとおりです。
OIDC
ログイン リクエストを送信するの手順に沿って操作します。OIDC を使用して、Microsoft Entra ID でユーザーをアプリケーションにログインさせます。
リダイレクト URL の
id_tokenパラメータから ID トークンをコピーし、ローカルマシン上の安全な場所にあるファイルに保存します。後のステップで、PATH_TO_OIDC_ID_TOKEN をこのファイルのパスに設定します。次のコマンドを実行して、この手順の後半の例に似た構成ファイルを生成します。
gcloud iam workforce-pools create-cred-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \ --subject-token-type=urn:ietf:params:oauth:token-type:id_token \ --credential-source-file=PATH_TO_OIDC_ID_TOKEN \ --workforce-pool-user-project=WORKFORCE_POOL_USER_PROJECT \ --output-file=config.json次のように置き換えます。
WORKFORCE_POOL_ID: Workforce Identity プールの ID。WORKFORCE_PROVIDER_ID: Workforce Identity プール プロバイダ ID。PATH_TO_OIDC_ID_TOKEN: IdP トークンが保存されているファイルのパス。WORKFORCE_POOL_USER_PROJECT: 割り当てと課金に使用されるプロジェクト番号または ID。プリンシパルには、このプロジェクトに対するserviceusage.services.use権限が必要です。
コマンドが完了すると、Microsoft Entra ID によって次の構成ファイルが作成されます。
{ "type": "external_account", "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID", "subject_token_type": "urn:ietf:params:oauth:token-type:id_token", "token_url": "https://sts.googleapis.com/v1/token", "workforce_pool_user_project": "WORKFORCE_POOL_USER_PROJECT", "credential_source": { "file": "PATH_TO_OIDC_CREDENTIALS" } }gcloud CLI を開き、次のコマンドを実行します。
gcloud auth login --cred-file=PATH_TO_OIDC_CREDENTIALSPATH_TO_OIDC_CREDENTIALS は、前の手順の出力ファイルのパスに置き換えます。
gcloud CLI は、認証情報を Security Token Service エンドポイントに透過的に送信します。これは、エンドポイントで一時的な Google Cloud アクセス トークンと交換されます。
これで、Google Cloudに gcloud CLI コマンドを実行できるようになりました。
SAML
Microsoft Entra ID アプリケーションにユーザーをログインさせ、SAML レスポンスを取得します。
Microsoft Entra ID から返された SAML レスポンスをローカルマシンの安全な場所に保存し、次のようにパスを保存します。
SAML_ASSERTION_PATH=SAML_ASSERTION_PATH次のコマンドを実行して、認証情報の構成ファイルを生成します。
gcloud iam workforce-pools create-cred-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \ --subject-token-type=urn:ietf:params:oauth:token-type:saml2 \ --credential-source-file=SAML_ASSERTION_PATH \ --workforce-pool-user-project=PROJECT_ID \ --output-file=config.json次のように置き換えます。
WORKFORCE_PROVIDER_ID: このガイドの前半で作成した Workforce Identity プール プロバイダの ID。WORKFORCE_POOL_ID: このガイドの前半で作成した Workforce Identity プールの ID。SAML_ASSERTION_PATH: SAML アサーション ファイルのパスPROJECT_ID: プロジェクト ID
生成された構成ファイルは次のようになります。
{ "type": "external_account", "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID", "subject_token_type": "urn:ietf:params:oauth:token-type:saml2", "token_url": "https://sts.googleapis.com/v1/token", "credential_source": { "file": "SAML_ASSERTION_PATH" }, "workforce_pool_user_project": "PROJECT_ID" }Workforce Identity 連携のトークン交換を使用して gcloud CLI にログインするには、次のコマンドを実行します。
gcloud auth login --cred-file=config.jsongcloud CLI は、Microsoft Entra ID の認証情報を一時的な Google Cloud アクセス トークンと透過的に交換します。アクセス トークンを使用すると、 Google Cloudにアクセスできます。
次のような出力が表示されます。
Authenticated with external account user credentials for: [principal://iam.googleapis.com/locations/global/workforcePools/
WORKFORCE_POOL_ID/subject/USER_ID].認証されたアカウントとアクティブなアカウントを一覧表示するには、次のコマンドを実行します。
gcloud auth list
テストアクセス
これで、Workforce Identity 連携をサポートし、アクセス権が付与されている Google Cloud プロダクトにアクセスできるようになりました。このドキュメントの前半で、プロジェクト TEST_PROJECT_ID の gcloud projects add-iam-policy-binding で指定したグループ ID 内のすべての ID にストレージ管理者ロール(roles/storage.admin)を付与しました。
ここでは、Cloud Storage バケットを一覧取得して、そのバケットにアクセスできるかどうかをテストします。
コンソール(連携)
コンソール(連携)を使用してアクセス権があることを確認するには、次の操作を行います。
Cloud Storage ページに移動します。
TEST_PROJECT_IDの既存バケットの一覧が表示できることを確認します。
gcloud CLI
gcloud CLI を使用してアクセス権があることを確認するには、アクセス権のあるプロジェクトの Cloud Storage バケットとオブジェクトを一覧取得します。これを行うには、次のコマンドを実行します。プリンシパルには、指定したプロジェクトに対する serviceusage.services.use 権限が必要です。
gcloud storage ls --project="TEST_PROJECT_ID"
ユーザーを削除する
Workforce Identity 連携は、連携ユーザー ID のユーザー メタデータとリソースを作成します。IdP でユーザーを削除する場合は、 Google Cloudでこれらのリソースも明示的に削除する必要があります。詳しくは、Workforce Identity 連携ユーザーとそのデータを削除するをご覧ください。
削除されたユーザーにリソースが引き続き関連付けられていることがあります。これは、ユーザーのメタデータとリソースの削除には長時間実行オペレーションが必要になるためです。ユーザー ID の削除を開始した後、削除前にユーザーが開始したプロセスは、プロセスが完了するかキャンセルされるまで引き続き実行されます。
SCIM を構成する
このセクションでは、Workforce Identity プールで SCIM テナントを構成する方法について説明します。
各 Workforce Identity プールで 1 つの SCIM テナントのみがサポートされます。すでに SCIM テナントが存在するプールに新しい SCIM テナントを構成するには、まず既存のテナントを完全に削除する必要があります。
SCIM テナントの --claim-mapping フラグに使用できるのは、特定の Common Expression Language(CEL)式のみです。サポートされている式については、トークンと SCIM 属性をマッピングするをご覧ください。
System for Cross-domain Identity Management(SCIM)を構成するには、次の操作を行う必要があります。
Google Cloudで SCIM テナントとトークンを構成する
Google Cloudで SCIM テナントを構成する手順は次のとおりです。
-
SCIM テナントを作成します。
gcloud iam workforce-pools providers scim-tenants create SCIM_TENANT_ID \ --workforce-pool="WORKFORCE_POOL_ID" \ --provider="PROVIDER_ID" \ --display-name="SCIM_TENANT_DISPLAY_NAME" \ --description="SCIM_TENANT_DESCRIPTION" \ --claim-mapping="CLAIM_MAPPING" \ --location="global"次のように置き換えます。
SCIM_TENANT_ID: SCIM テナントの ID。WORKFORCE_POOL_ID: このドキュメントで作成した Workforce プールの ID。PROVIDER_ID: このドキュメントで作成した Workforce Identity プール プロバイダの ID。SCIM_TENANT_DISPLAY_NAME: SCIM テナントの表示名。SCIM_TENANT_DESCRIPTION: SCIM テナントの説明。CLAIM_MAPPING: 属性マッピングのカンマ区切りリスト。次の属性マッピングを使用することをおすすめします。 SCIM テナントでマッピングするgoogle.subject=user.externalId,google.group=group.externalId
google.subject属性は、--attribute-mappingフラグを使用して、Workforce Identity プール プロバイダのgoogle.subject属性でマッピングされる同じ ID を一意に参照する必要があります。 SCIM テナントの作成後に、クレーム マッピングを更新することはできません。置き換えるには、SCIM テナントを完全に削除して、すぐに新しいテナントを作成します。SCIM を使用する際の考慮事項の詳細については、SCIM のサポートをご覧ください。
-
コマンドが完了したら、次の操作を行います。
-
出力の
baseUriフィールドに、https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID形式の URI 全体を保存します。この URI を IdP に提供する必要があります。 -
または、URI から
SCIM_TENANT_UIDのみを保存します。この UID は、このドキュメントで後述する SCIM テナントに IAM ポリシーを設定するために必要です。
-
出力の
-
SCIM トークンを作成します。
gcloud iam workforce-pools providers scim-tenants tokens create SCIM_TOKEN_ID \ --display-name DISPLAY_NAME \ --scim-tenant SCIM_TENANT_ID \ --workforce-pool WORKFORCE_POOL_ID \ --provider PROVIDER_ID \ --location global次のように置き換えます。
SCIM_TOKEN_ID: SCIM トークンの IDDISPLAY_NAME: SCIM トークンの表示名WORKFORCE_POOL_ID: Workforce プールの IDSCIM_TENANT_ID: SCIM テナントの IDPROVIDER_ID: Workload Identity プール プロバイダの ID
-
gcloud iam workforce-pools providers scim-tenants tokens createコマンドが完了したら、次の操作を行います。-
出力で、
SCIM_TOKENの値をsecurityTokenフィールドに保存します。このセキュリティ トークンを IdP に提供する必要があります。セキュリティ トークンはこの出力にのみ表示されます。紛失した場合は、新しい SCIM トークンを作成する必要があります。 -
SCIM_TOKENが組織のポリシーによって拒否されているかどうかを確認するには、次のコマンドを実行します。 コマンドが権限関連のエラーで失敗した場合は、後の手順で説明するcurl -v -H "Authorization: Bearer SCIM_TOKEN" https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID/Users
gcloud organizations add-iam-policy-bindingを実行します。コマンドが成功した場合は、その手順をスキップできます。
-
出力で、
-
SCIM テナントとトークンに IAM ポリシーを設定します。前の手順の
curlコマンドが権限関連のエラーで失敗した場合は、次のコマンドを実行する必要があります。gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member=serviceAccount:SERVICE_AGENT_EMAIL \ --role roles/iam.scimSyncer次のように置き換えます。
- ORGANIZATION_ID: 組織の ID。
- SERVICE_AGENT_EMAIL: サービス エージェントのメールアドレス。メールアドレスは
o-ORGANIZATION_ID-SCIM_TENANT_UID@gcp-sa-iamscim.iam.gserviceaccount.comの形式で指定します。SCIM_TENANT_UID は、SCIM テナントの作成時に返されます。
IdP でグループをプロビジョニングする場合は、displayName フィールドで指定された各グループの表示名が SCIM テナント内で一意であることを確認してください。Microsoft Entra ID のグループと SCIM の詳細については、グループをご覧ください。
Microsoft Entra ID で SCIM を構成する
Microsoft Entra ID で SCIM を構成するには、次の操作を行います。
- Azure Portal を開き、グローバル管理者権限を持つユーザーとしてログインします。
- [Microsoft Entra ID] > [Enterprise アプリ] の順に選択します。
- [新しいアプリケーション] をクリックします。
- [Microsoft Entra ギャラリーを参照する] で、[独自のアプリケーションの作成] をクリックします。
-
表示された [独自のアプリケーションの作成] パネルで、次の操作を行います。
- [お使いのアプリの名前はなんですか?] に、アプリの名前を入力します。
- [ギャラリーに見つからないその他のアプリケーションを統合します(ギャラリー以外)] を選択します。
- アプリを作成するには、[作成] をクリックします。
-
アプリケーションで、次の操作を行います。
- [管理] セクションで [プロビジョニング] をクリックします。
- 右側に表示されるペインで、[新しい構成] をクリックします。
-
[管理者資格情報] の [テナントの URL] に、SCIM テナントの作成時に取得した SCIM URL に
?aadOptscim062020を追加して入力します。 ベース URI の末尾に?aadOptscim062020を追加する必要があります。このクエリ パラメータは、Microsoft Entra ID で必須とされており、SCIM PATCH リクエストが SCIM RFC 規格に準拠していることを確認します。詳しくは、Microsoft のドキュメントをご覧ください。
最終的に、Microsoft Entra ID のテナント URL は、次の形式にする必要があります。
https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID?aadOptscim062020
SCIM_TENANT_UIDを SCIM テナント UID に置き換えます。 - [シークレット トークン] に、SCIM テナントの作成時に取得したシークレット トークンを入力します。
- Workforce Identity 連携で SCIM 構成をテストするには、[テスト接続] をクリックします。
- 構成を保存するには、[作成] をクリックします。
- [管理] セクションで、次の操作を行います。
- [属性マッピング] をクリックします。
- [Provision Microsoft Entra ID Users] をクリックします。
-
[属性マッピング] ページで、次の操作を行います。
-
[属性マッピング] テーブルで、externalId の行を見つけて、その行の [編集] をクリックします。
[属性の編集] ページで、次の操作を行います。
-
[この属性を使用してオブジェクトを照合する] で、
Yesを選択します。 -
[照合の優先順位] に「
2」と入力します。 -
[ソース属性] プルダウン リストで、
objectIdを選択します。 - 属性マッピングを保存するには、[OK] をクリックします。
-
[この属性を使用してオブジェクトを照合する] で、
-
[属性マッピング] テーブルで、userName の行を見つけて、その行の [編集] をクリックします。
[属性の編集] ページで、次の操作を行います。
-
[この属性を使用してオブジェクトを照合する] で、
Noを選択します。 - 属性マッピングを保存するには、[OK] をクリックします。
-
[この属性を使用してオブジェクトを照合する] で、
-
[属性マッピング] テーブルで、externalId の行を見つけて、その行の [編集] をクリックします。
[属性の編集] ページで、次の操作を行います。
-
[照合の優先順位] に「
1」と入力します。 - 属性マッピングを保存するには、[OK] をクリックします。
-
[照合の優先順位] に「
-
[属性マッピング] テーブルで、externalId の行を見つけて、その行の [編集] をクリックします。
[属性の編集] ページで、次の操作を行います。
- [Provision Microsoft Entra ID Groups] をクリックします。
-
[属性マッピング] ページで、次の操作を行います。
-
[属性マッピング] テーブルで、externalId の行を見つけて、その行の [編集] をクリックします。
[属性の編集] ページで、次の操作を行います。
-
[この属性を使用してオブジェクトを照合する] で、
Yesを選択します。 -
[照合の優先順位] に「
2」と入力します。 -
[ソース属性] プルダウン リストで、
objectIdを選択します。 - 属性マッピングを保存するには、[OK] をクリックします。
-
[この属性を使用してオブジェクトを照合する] で、
-
[属性マッピング] テーブルで、displayName の行を見つけて、その行の [編集] をクリックします。
[属性の編集] ページで、次の操作を行います。
-
[この属性を使用してオブジェクトを照合する] で、
Noを選択します。 - 属性マッピングを保存するには、[OK] をクリックします。
-
[この属性を使用してオブジェクトを照合する] で、
-
[属性マッピング] テーブルで、externalId の行を見つけて、その行の [編集] をクリックします。
[属性の編集] ページで、次の操作を行います。
-
[照合の優先順位] に「
1」と入力します。 - 属性マッピングを保存するには、[OK] をクリックします。
-
[照合の優先順位] に「
-
[属性マッピング] テーブルで、externalId の行を見つけて、その行の [編集] をクリックします。
[属性の編集] ページで、次の操作を行います。
プロバイダを更新して SCIM を有効にする
プロバイダの SCIM を有効にするには、次の操作を行います。
OIDC
gcloud iam workforce-pools providers update-oidc PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=LOCATION \
--scim-usage=enabled-for-groups
次のように置き換えます。
PROVIDER_ID: Workload Identity プール プロバイダの IDWORKFORCE_POOL_ID: Workforce プールの IDLOCATION: Workforce プールのロケーション
SAML
gcloud iam workforce-pools providers update-saml PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=LOCATION \
--scim-usage=enabled-for-groups
次のように置き換えます。
PROVIDER_ID: Workload Identity プール プロバイダの IDWORKFORCE_POOL_ID: Workforce プールの IDLOCATION: Workforce プールのロケーション
トークンと SCIM 属性をマッピングする
Workforce Identity プール プロバイダと、プロバイダ用に構成された SCIM テナントの両方で、属性を一貫してマッピングする必要があります。Workforce Identity プール プロバイダには --attribute-mapping フラグを使用し、SCIM テナントには --claim-mapping フラグを使用します。ユーザーの google.subject にマッピングされる IdP 属性は、トークンまたは SCIM マッピングで定義されているかどうかにかかわらず、同じ ID を一意に参照する必要があります。SCIM を使用する際の属性のマッピングの詳細については、SCIM のサポート セクションをご覧ください。
次の表は、トークン クレームの属性と SCIM 属性をマッピングする方法を示しています。
| Google の属性 | Workforce Identity プール プロバイダのマッピング | SCIM テナントのマッピング |
|---|---|---|
google.subject |
assertion.oid |
user.externalId |
google.subject |
assertion.email |
user.emails[0].value |
google.subject |
assertion.email.lowerAscii() |
user.emails[0].value.lowerAscii() |
google.subject |
assertion.preferred_username |
user.userName |
google.group プロバイダが --scim-usage=enabled-for-groups で更新されていることを確認します |
N/A |
group.externalId |
SCIM テナントを強制削除する
SCIM テナントを強制削除する手順は次のとおりです。
- プロバイダに
--scim-usage=enabled-for-groupsが設定されている場合は、プロバイダの構成から無効にします。gcloud iam workforce-pools providers update-oidc --provider=PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --location= global --scim-usage=SCIM_USAGE_UNSPECIFIED次のように置き換えます。
PROVIDER_ID: Workload Identity プール プロバイダの IDWORKFORCE_POOL_ID: Workforce プールの ID
- SCIM テナントを削除します。
gcloud iam workforce-pools providers scim-tenants delete SCIM_TENANT_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --provider=PROVIDER_ID \ --hard-delete \ --location=global次のように置き換えます。
SCIM_TENANT_ID: 削除する SCIM テナントの IDWORKFORCE_POOL_ID: Workforce プールの IDPROVIDER_ID: Workload Identity プール プロバイダの ID
次のステップ
- Workforce Identity 連携ユーザーとそのデータを削除する
- Workforce Identity 連携をサポートする Google Cloud プロダクトを確認する
- コンソール(連携)へのユーザー アクセスを設定する