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

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

機能

Workforce Identity 連携の SCIM サポートは、次の機能を提供します。

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

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

  • Gemini Enterprise との統合: SCIM テナントは、Gemini Enterprise での共有をサポートしています。ユーザーは、グループのオブジェクト ID(UUID)ではなくグループ名を使用して、NotebookLM ノートブックをグループと共有できます。詳細については、ノートブックをグループと共有するをご覧ください。

考慮事項

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.groups ではなく google.group です。google.groups は、トークンでマッピングされたグループのみを参照します。
  • SCIM を使用する場合、--attribute-mapping でマッピングされたトークンベースの属性は、引き続き認証とプリンシパル ID で使用できます。
  • Microsoft Entra ID の構成では、Workforce Identity プール プロバイダを作成するときに --extended-attributes フラグを使用しないでください。

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 など)を使用する必要があります。

次の表に、一般的な IdP トークン クレームを SCIM 属性にマッピングする際の参照例を示します。

Google の属性 Workforce Identity プール プロバイダのマッピング(トークン) SCIM テナントのマッピング(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.subject assertion.sub 互換性がない
google.group 該当なし(SCIM を使用してマッピング) group.externalId

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

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

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

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

  • /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 です。API は、startIndex に指定した値に関係なく、最大 100 件の結果を返します。

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

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

SCIM の動作に関する制限事項

  • 不変の識別子: google.subject または google.group にマッピングされた SCIM 属性の値は、 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

次のステップ