Workforce Identity 連携の SCIM プロビジョニング

ID プロバイダ(IdP)が System for Cross-domain Identity Management(SCIM)をサポートしている場合は、 でグループをプロビジョニングして管理するように IdP を構成できます。 Google Cloud

機能

Workforce Identity 連携の SCIM サポートには、次の機能があります。

  • ID の同期: IdP からユーザーデータの読み取り専用コピーを同期して 、ユーザー プロパティとメンバーシップの全体像を把握します Google Cloud。

  • グループのフラット化: SCIM は IdP からグループを処理し、ユーザーの直接的 および間接的(ネストされた)メンバーシップをすべてフラット化して、 Google Cloud グループ メンバーシップ サービス(GMS)に同期します。IAM は、これらのフラット化されたグループをポリシー チェックに使用し、IdP トークンでよく見られるサイズ制限を回避します。

  • Gemini Enterprise との統合: SCIM テナントは、Gemini Enterprise での共有をサポートしています。SCIM テナントでは、NotebookLM Enterprise 内でノートブックを共有する次の 2 つの機能が有効になります。

    • メールアドレスとグループのオートコンプリート

    • オブジェクト ID(UUID)ではなくグループ名の使用

    詳しくは、ノートブックを グループと共有するをご覧ください。

考慮事項

Workforce Identity 連携の SCIM サポートを使用する場合は、次の点に注意してください。

  • SCIM テナントを構成する前に、Workforce Identity プールとプロバイダを設定する必要があります。
  • 各 Workforce Identity プールで 1 つの SCIM テナントのみがサポートされます。同じ Workforce Identity プールで新しい SCIM テナントを構成するには、まず既存のテナントを削除する必要があります。SCIM テナントを削除する方法には、次の 2 通りがあります。
    • 削除(復元可能)(デフォルト): SCIM テナントを削除すると、30 日間の削除(復元可能)期間が開始されます。この間、当該テナントは非表示になり、使用できなくなります。また、同じ Workforce Identity プールに新しい SCIM テナントを作成することもできません。
    • 削除(復元不可): SCIM テナントを直ちに完全に削除するには、--hard-delete フラグを指定して削除コマンドを実行します。この操作は元に戻すことができません。削除の完了後すぐに、同じ Workforce Identity プールに新しい SCIM テナントを作成できます。あるいは、新しい Workforce Identity プールを作成して新しい SCIM テナントを追加することも、以前に SCIM テナントが構成されていない Workforce Identity プールを使用することもできます。
  • SCIM を使用する場合は、Workforce Identity プール プロバイダと SCIM テナントの両方で属性をマッピングします。google.subject 属性では、同じ ID を一意に参照する必要があります。google.subject は、Workforce Identity プール プロバイダでは --attribute-mapping フラグ、SCIM テナントでは --claim-mapping フラグを使用して指定します。一意でない ID 値をマッピングすると、 Google Cloud が異なる IdP ID を 同じ ID として扱う可能性があります。その結果、1 つのユーザーまたはグループ ID に付与されたアクセス権が他の ID にも適用される可能性があり、1 つの ID のアクセス権を取り消しても、すべての ID のアクセス権が取り消されない可能性があります。
  • SCIM を使用してグループをマッピングするには、--scim-usage=enabled-for-groups を設定します。SCIM を使用してグループをマッピングすると、Workforce Identity プール プロバイダで定義されているグループ マッピングは無視されます。SCIM で管理されているグループを参照するとき、マッピングされた属性は google.group ではなく google.groups です。google.groups は、トークンでマッピングされたグループのみを参照します。
  • SCIM を使用する場合、--attribute-mapping でマッピングされたトークンベースの属性は、引き続き認証とプリンシパル ID で使用できます。
  • Microsoft Entra ID の構成で、Gemini Enterprise で人が読めるグループ名を有効にするには、SCIM を使用します。

OIDC プロバイダと SAML プロバイダを SCIM 構成にマッピングする

Workforce Identity プール プロバイダ構成(--attribute-mapping)の属性マッピングと、SCIM テナント(--claim-mapping)のクレーム マッピングの間には整合性が必要です。google.subject(ユーザーの場合)の入力に使用される基盤となる IdP 属性は、トークン クレームから読み取られるか SCIM 属性から読み取られるかにかかわらず、同じである必要があります。

これらのマッピングに一貫性がない場合、ユーザーはログインできる可能性がありますが、SCIM プロビジョニングされたグループのメンバーとして認識されません。たとえば、プロバイダが google.subjectassertion.email を使用する場合、SCIM テナントも google.subject に同等の SCIM 属性(user.emails[0].value など)を使用する必要があります。

次の表に、トークン クレーム属性と SCIM 属性のマッピングを示します。

Google の属性 Workforce Identity プール プロバイダのマッピング SCIM テナントのマッピング(SCIM)
google.subject assertion.oid(EntraId) user.externalId
google.subject assertion.sub(Okta) user.externalId
google.subject assertion.preferred_username user.userName
google.subject assertion.preferred_username.lowerAscii() user.userName.lowerAscii()
google.subject assertion.email user.emails[0].value
google.subject assertion.email.lowerAscii() user.emails[0].value.lowerAscii()
google.group 該当なし(SCIM を使用してマッピング) group.externalId

サポートされているエンドポイントとサポートされていないエンドポイント

次の標準 SCIM プロトコル エンドポイントがサポートされています。

  • /Users: ユーザー リソースを管理します。サポートされているオペレーション: CreateGetUpdateDeletePatchPut

  • /Groups: グループ リソースを管理します。サポートされているオペレーション: CreateGetUpdateDeletePatch。グループでは PUT メソッドはサポートされていません。

  • /Schemas: スキーマ情報を取得します。

  • /ServiceProviderConfig: サービス プロバイダの構成を取得します。

次の SCIM プロトコル エンドポイントはサポートされていません。

  • /Me

  • /Bulk

  • /Search

  • /ResourceTypes

制限事項

以降のセクションでは、Workforce Identity 連携の SCIM 実装の制限事項と、SCIM 仕様(RFC 7643 と 7644)からの逸脱について説明します。

プロトコルの機能の制限事項

  • フィルタのサポート: /Users エンドポイントまたは /Groups エンドポイントを使用してユーザーまたはグループを一覧表示する場合、フィルタ式では eq(等しい)演算子のみがサポートされます。複数の eq フィルタを and で組み合わせることができます。` co`(含む)や `sw`(で始まる)などの他の SCIM フィルタ演算子はサポートされていません。

  • ページネーション: IAM SCIM API は、ユーザーまたはグループの一覧表示の標準ページネーションをサポートしていません。

    • startIndex: このパラメータは常に 1 です。startIndex に指定した値に関係なく、API は最大 100 件の結果を返します。

    • itemsPerPage: 1 つのレスポンスで返されるリソースの最大数は 100 です。

    • totalResults: API は、一致するリソースの実際の合計数を返しません。レスポンスの totalResults フィールドは、そのレスポンスで返されるアイテムの数と常に等しく、最大 100 です。

  • フィルタなしでグループを取得して一覧表示する: GetGroup API と ListGroups API は空のメンバーリストを返します。特定のグループのメンバーを取得するには、メンバー フィルタを指定して ListGroups API を使用します。

  • 無効なトークンを含む JSON レスポンス(仕様に準拠していない): 無効な API トークンを含む API は、401 HTTP error から Google Cloudを返します。レスポンスは、仕様で要求されている JSON 構造ではありません。

SCIM の動作の制限事項

  • 不変の識別子: にマッピングされた SCIM 属性の値は、 google.subject または google.group 内で 不変の識別子として扱われます Google Cloud。これらの値を変更する必要がある場合は、IdP からユーザーまたはグループを完全に削除し、新しい値で再作成する必要があります。

  • 単一のメールアドレスの要件: SCIM 同期を成功させるには、各ユーザーに work タイプのメールアドレスが 1 つだけ必要です。IdP が複数のメールを送信した場合、または指定された単一のメールが work として入力されていない場合、プロビジョニングまたは更新は失敗します。

  • 大文字と小文字を区別しない変換: SCIM クレーム マッピングでは、限定的な Common Expression Language(CEL)変換がサポートされています。 user.userNameuser.emails[0].value の大文字と小文字を区別しない比較では、.lowerAscii() のみがサポートされています。

属性の制限事項

以降のセクションでは、ユーザー、グループ、エンタープライズ ユーザー スキーマ拡張機能の属性サポートについて説明します。

ユーザー属性

次の表に、ユーザー属性のサポートの詳細を示します。

属性 サブ属性 サポート対象 制限事項
userName 該当なし 該当なし
name formattedfamilyNamegivenNamemiddleNamehonorificPrefixhonorificSuffix なし
displayName 該当なし なし
nickName 該当なし なし
profileUrl 該当なし なし
title 該当なし なし
userType 該当なし なし
preferredLanguage 該当なし なし
locale 該当なし なし
timezone 該当なし なし
active 該当なし なし
password 該当なし いいえ 該当なし
emails displaytypevalueprimary work メールタイプのみがサポートされています。
phoneNumbers displaytypevalueprimary 該当なし
ims displaytypevalue 該当なし
photos displaytypevalue 該当なし
addresses formattedstreetAddresslocalityregionpostalCodecountry なし
groups 該当なし いいえ 該当なし
entitlements displaytypevalue 該当なし
roles typevalue display はサポートされていません。
x509Certificates typevalue display はサポートされていません。

グループ属性

次の表に、グループ属性のサポートの詳細を示します。

属性 サポートされているサブ属性
displayName 該当なし
externalId 該当なし
members valuetype$refdisplay

エンタープライズ ユーザー スキーマ拡張機能の属性

次の表に、エンタープライズ ユーザー スキーマ拡張機能のサポートの詳細を示します。

属性 サポートされているサブ属性
employeeNumber 該当なし
costCenter なし
organization なし
division なし
department 該当なし
manager value$refdisplayName

次のステップ