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.subject に assertion.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: ユーザー リソースを管理します。サポートされているオペレーション:Create、Get、Update、Delete、Patch、Put。/Groups: グループ リソースを管理します。サポートされているオペレーション:Create、Get、Update、Delete、Patch。グループでは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 です。
フィルタなしでグループを取得して一覧表示する:
GetGroupAPI とListGroupsAPI は空のメンバーリストを返します。特定のグループのメンバーを取得するには、メンバー フィルタを指定してListGroupsAPI を使用します。無効なトークンを含む 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.userNameとuser.emails[0].valueの大文字と小文字を区別しない比較では、.lowerAscii()のみがサポートされています。
属性の制限事項
以降のセクションでは、ユーザー、グループ、エンタープライズ ユーザー スキーマ拡張機能の属性サポートについて説明します。
ユーザー属性
次の表に、ユーザー属性のサポートの詳細を示します。
| 属性 | サブ属性 | サポート対象 | 制限事項 |
|---|---|---|---|
userName |
該当なし | ○ | 該当なし |
name |
formatted、familyName、givenName、middleName、honorificPrefix、honorificSuffix |
○ | なし |
displayName |
該当なし | ○ | なし |
nickName |
該当なし | ○ | なし |
profileUrl |
該当なし | ○ | なし |
title |
該当なし | ○ | なし |
userType |
該当なし | ○ | なし |
preferredLanguage |
該当なし | ○ | なし |
locale |
該当なし | ○ | なし |
timezone |
該当なし | ○ | なし |
active |
該当なし | ○ | なし |
password |
該当なし | いいえ | 該当なし |
emails |
display、type、value、primary |
○ | work メールタイプのみがサポートされています。 |
phoneNumbers |
display、type、value、primary |
○ | 該当なし |
ims |
display、type、value |
○ | 該当なし |
photos |
display、type、value |
○ | 該当なし |
addresses |
formatted、streetAddress、locality、region、postalCode、country |
○ | なし |
groups |
該当なし | いいえ | 該当なし |
entitlements |
display、type、value |
○ | 該当なし |
roles |
type、value |
○ | display はサポートされていません。 |
x509Certificates |
type、value |
○ | display はサポートされていません。 |
グループ属性
次の表に、グループ属性のサポートの詳細を示します。
| 属性 | サポートされているサブ属性 |
|---|---|
displayName |
該当なし |
externalId |
該当なし |
members |
value、type、$ref、display |
エンタープライズ ユーザー スキーマ拡張機能の属性
次の表に、エンタープライズ ユーザー スキーマ拡張機能のサポートの詳細を示します。
| 属性 | サポートされているサブ属性 |
|---|---|
employeeNumber |
該当なし |
costCenter |
なし |
organization |
なし |
division |
なし |
department |
該当なし |
manager |
value、$ref、displayName |