Si votre fournisseur d'identité (IdP) est compatible avec le System for Cross-domain Identity Management (SCIM), vous pouvez le configurer pour provisionner et gérer les utilisateurs et les groupes dans Google Cloud.
Capacités
La compatibilité SCIM de la fédération des identités des employés offre les fonctionnalités suivantes :
- Synchronisation des identités : synchronise les utilisateurs et les groupes de votre IdP externe avec Google Cloud pour maintenir une vue globale des identités des employés.
- Source principale pour les revendications : lorsque SCIM est activé pour un fournisseur de personnel, Google Cloud utilise les utilisateurs et les groupes SCIM synchronisés comme source de vérité pour les attributs utilisateur et les appartenances aux groupes pour l'évaluation des stratégies IAM.
- Saisie semi-automatique des identités : permet la saisie semi-automatique des utilisateurs et des groupes lorsque vous accordez l'accès et partagez des ressources (telles que des notebooks et des agents) dans Gemini Enterprise.
Remarques
Lorsque vous utilisez la compatibilité SCIM avec la fédération d'identité de personnel, les points suivants doivent être pris en compte :
- Vous devez configurer un pool d'identités de personnel et un fournisseur avant de configurer un locataire SCIM.
- Chaque pool d'identités de personnel n'est compatible qu'avec un seul locataire SCIM, associé à un seul fournisseur.
Vous ne pouvez pas activer l'utilisation de SCIM (
--scim-usage) sur un autre fournisseur du même pool. Pour configurer un locataire SCIM dans le même pool d'identités de personnel, vous devez d'abord supprimer celui qui existe déjà. Pour supprimer un locataire SCIM, utilisez l'une des méthodes suivantes :- Suppression réversible (par défaut) : la suppression d'un locataire SCIM lance une période de suppression réversible de 30 jours. Pendant cette période, le locataire est masqué et ne peut pas être utilisé. Vous ne pouvez pas non plus créer de locataire SCIM dans le même pool d'identités de personnel.
- Suppression définitive : pour supprimer définitivement et immédiatement un locataire SCIM, utilisez l'option
--hard-deleteavec la commande de suppression. Cette action est irréversible et vous permet de créer immédiatement un locataire SCIM dans le même pool d'identité des employés, sans attendre la période de conservation de 30 jours. Vous pouvez également créer un pool d'identités de personnel et un locataire SCIM, ou utiliser un pool d'identités de personnel qui n'a pas encore été configuré avec un locataire SCIM.
- Modes d'utilisation de SCIM (
--scim-usage) :enabled-for-groups(Gemini Enterprise) : utilise des groupes synchronisés avec SCIM pour l'autorisation IAM et l'évaluation des règles. Les attributs utilisateur continuent d'être extraits des jetons de connexion. Seuls les mappagesgoogle.subjectetgoogle.groupsont évalués.enabled-for-users-groups(Looker) (Aperçu) : utilise les données utilisateur et de groupe synchronisées avec SCIM comme source de revendications pour les workflows d'autorisation IAM et de connexion OAuth. Évaluegoogle.subject,google.groupet toutes les revendications utilisateur configurées (telles quegoogle.display_name,google.profile_photo,google.email,google.posix_usernameetattribute.KEYpersonnalisées).
- Exclusivité mutuelle : le paramètre
--scim-usage=enabled-for-users-groups(Aperçu) est mutuellement exclusif avec les attributs supplémentaires (extra_attributes_oauth2_client) et les attributs étendus (extended_attributes_oauth2_client). - Lorsque vous utilisez SCIM, vous mappez les attributs dans le fournisseur de pool d'identités de personnel et dans le locataire SCIM. L'attribut
google.subjectdoit faire référence de manière unique aux mêmes identités. Vous spécifiezgoogle.subjectdans le fournisseur de pool d'identités des employés à l'aide du flag--attribute-mappinget dans le locataire SCIM à l'aide du flag--claim-mapping. Le mappage de valeurs d'identité non uniques peut entraîner le traitement de différentes identités IdP comme une seule et même identité par Google Cloud . Par conséquent, l'accès accordé à une identité d'utilisateur ou de groupe peut s'étendre à d'autres, mais la révocation de l'accès à l'une d'elles ne le supprime pas forcément pour toutes. - Si vous activez l'utilisation de SCIM sur un fournisseur sans locataire SCIM associé, les tentatives de connexion échouent, car Google Cloud ne trouve pas de locataire SCIM pour ce fournisseur.
- Application de l'unicité : Google Cloud valide et applique l'unicité des attributs mappés sur
google.subject(utilisateurs) etgoogle.group(groupes) dans un locataire SCIM. Si les attributs mappés provisionnés par votre fournisseur d'identité entraînent des valeurs en double pourgoogle.subjectougoogle.grouplors de la synchronisation, le provisionnement échoue et une erreur HTTP409 Conflicts'affiche. Si un attribut mappé renvoie une valeur nulle ou vide, le provisionnement échoue et une erreur HTTP400 Bad Requests'affiche. - Limites de taille des attributs : la taille maximale des attributs utilisateur mappés sérialisés (à l'exclusion de
google.group) est de 16 Ko. Si les attributs mappés dépassent cette limite, les tentatives de connexion échouent. - Limite de jetons SCIM : chaque locataire SCIM accepte un maximum de deux jetons SCIM (par exemple, pour permettre la rotation des jetons sans temps d'arrêt). Si vous avez deux jetons, supprimez-en un avant d'en créer un autre.
- L'API SCIM (
iamscim.googleapis.com) est soumise à des quotas de débit différents de ceux des API de ressources IAM standards. Par défaut, les requêtes d'écriture et de lecture sont limitées à 3 000 requêtes par locataire SCIM,par organisation et par minute. Pour en savoir plus, consultez la page Quotas et limites.
Mappage des revendications
Lorsque vous configurez SCIM, vous définissez des mappages de revendications (--claim-mapping) dans le locataire SCIM pour mapper les attributs utilisateur et de groupe SCIM sur les attributs Google.
Attributs Google Cloud compatibles pour le mappage des revendications
Le tableau suivant liste les attributs Google Cloud que vous pouvez mapper dans votre locataire SCIM (--claim-mapping) à l'aide du langage CEL (Common Expression Language) :
| AttributGoogle Cloud | Exigence | Description | Expressions et limites acceptées |
|---|---|---|---|
google.subject |
Obligatoire |
Identifiant unique de l'utilisateur qui s'authentifie. L'attribut IdP sous-jacent utilisé pour remplir |
Limité aux expressions de base suivantes (ou avec .lowerAscii()) :
Longueur maximale : 127 octets. Remarque : Ce mappage est immuable une fois le locataire SCIM créé. Pour le mettre à jour, vous devez supprimer définitivement le locataire SCIM et le recréer. |
google.group |
Obligatoire pour les groupes SCIM | Identifiant unique de l'appartenance à un groupe synchronisé à l'aide de SCIM. | Limité aux expressions de base suivantes (ou avec .lowerAscii()) :
Remarque : Ce mappage est immuable une fois le locataire SCIM créé. Pour le mettre à jour, vous devez supprimer définitivement le locataire SCIM et le recréer. |
google.display_name |
Facultatif | Attribut qui définit le nom de l'utilisateur connecté dans la console Google Cloud . Il ne peut pas être utilisé dans les stratégies d'autorisation IAM. | Correspond à un attribut de chaîne (tel que user.displayName ou user.name.formatted). Longueur maximale : 100 octets. |
google.profile_photo |
Facultatif | URL de la vignette de la photo de l'utilisateur, visible en tant que photo de profil dans la console Google Cloud . Il ne peut pas être utilisé dans les stratégies d'autorisation IAM. | Doit renvoyer une chaîne d'URL valide (par exemple, user.photos.filter(p, p.type == 'thumbnail')[0].value ou user.photos[0].value). |
google.email |
Facultatif | Attribut utilisé pour mapper les adresses e-mail du fournisseur d'identité aux produits intégrés à l'aide de l'intégration du client OAuth de la fédération d'identité des employés. Il ne peut pas être utilisé dans les stratégies d'autorisation IAM. | Mappe un attribut d'adresse e-mail (tel que user.emails.filter(e, e.type == 'work')[0].value ou user.emails[0].value). |
google.posix_username |
Facultatif | Chaîne de nom d'utilisateur unique compatible avec POSIX utilisée pour SSH dans le navigateur et OS Login avec la fédération des identités des employés. Cet attribut ne peut pas être utilisé dans les stratégies d'autorisation IAM. | La longueur ne doit pas dépasser 32 caractères. |
attribute.KEY |
Facultatif |
Attributs personnalisés de votre IdP que vous pouvez utiliser pour définir votre stratégie d'autorisation dans une stratégie d'autorisation IAM. Remplacez KEY par le nom de l'attribut que vous souhaitez utiliser. Par exemple, vous pouvez définir un attribut personnalisé tel que |
Jusqu'à 50 règles de mappage d'attributs personnalisés. Taille maximale par règle : 256 caractères. |
Comportement basé sur l'utilisation de SCIM par le fournisseur (--scim-usage)
L'évaluation des mappages de revendications SCIM dépend du mode --scim-usage configuré sur le fournisseur de pools d'identités des employés :
enabled-for-groups(Gemini Enterprise) : seules les mises en correspondancegoogle.subjectetgoogle.groupsont évaluées. Tous les mappages de revendications utilisateur supplémentaires dans--claim-mappingsont ignorés.enabled-for-users-groups(Looker) (aperçu) : évaluegoogle.subject,google.groupet toutes les revendications utilisateur configurées (telles quegoogle.display_name,google.profile_photo,google.email,google.posix_usernameetattribute.<var>KEY</var>personnalisées).
Exemples de mappages pour la cohérence des sujets
Comme décrit dans Attributs compatibles pour le mappage des revendications, l'attribut IdP sous-jacent utilisé pour renseigner google.subject doit être identique dans le mappage du fournisseur (--attribute-mapping) et dans le locataire SCIM (--claim-mapping). Le tableau suivant présente des exemples de référence :
| Attribut Google | Mappage des fournisseurs de pools d'identités de personnel | Mappage de locataire SCIM (SCIM) |
|---|---|---|
google.subject |
assertion.oid (Entra ID) |
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() |
Points de terminaison acceptés et non acceptés
Les points de terminaison du protocole SCIM standard suivants sont acceptés :
/Users: gérez les ressources utilisateur. Opérations acceptées :Create,Get,Update,Delete,PatchetPut./Groups: gérer les ressources du groupe. Opérations acceptées :Create,Get,Update,DeleteetPatch. La méthodePUTn'est pas acceptée pour les groupes./Schemas: récupérer les informations du schéma./ServiceProviderConfig: récupérez la configuration du fournisseur de services.
Les points de terminaison du protocole SCIM suivants ne sont pas acceptés :
/Me/Bulk/Search/ResourceTypes
Limites
Les sections suivantes décrivent les limites et les écarts de l'implémentation SCIM de la fédération d'identité des employés par rapport aux spécifications SCIM (RFC 7643 et 7644).
Limites des fonctionnalités du protocole
Compatibilité avec les filtres : lorsque vous listez des utilisateurs ou des groupes à l'aide des points de terminaison
/Usersou/Groups, les expressions de filtre ne sont compatibles qu'avec l'opérateureq(égal à). Vous pouvez combiner plusieurs filtreseqavecand. Les autres opérateurs de filtre SCIM, tels queco(contient) ousw(commence par), ne sont pas acceptés.Pagination : l'API IAM SCIM n'est pas compatible avec la pagination standard pour lister les utilisateurs ou les groupes.
startIndex: ce paramètre est toujours1. L'API renvoie jusqu'à 100 résultats, quelle que soit la valeur que vous fournissez pourstartIndex.itemsPerPage: le nombre maximal de ressources renvoyées dans une même réponse est de 100.totalResults: l'API ne renvoie pas le nombre total réel de ressources correspondantes. Le champtotalResultsde la réponse est toujours égal au nombre d'éléments renvoyés dans cette réponse, avec un maximum de 100.
Les API Get Group et list Groups without filter
GetGroupetListGroupsrenvoient une liste de membres vide. Pour récupérer les membres d'un groupe spécifique, utilisez l'APIListGroupsavec un filtre de membres.Réponse JSON non conforme avec jetons non valides : les requêtes contenant un jeton d'API non valide renvoient un code d'état
HTTP 401à partir de Google Cloud. La réponse n'est pas un fichier JSON valide, comme l'exige la spécification SCIM.
Limites de comportement de SCIM
Identifiants immuables : les valeurs des attributs SCIM mappés sur
google.subjectougoogle.groupsont traitées comme des identifiants immuables dans Google Cloud. Si vous devez modifier ces valeurs, vous devez supprimer définitivement l'utilisateur ou le groupe de votre IdP, puis le recréer avec la nouvelle valeur.Identifiants uniques et non vides : Google Cloud impose l'unicité des valeurs mappées sur
google.subjectetgoogle.groupdans un locataire SCIM. La synchronisation des attributs mappés qui génèrent des valeurs en double pourgoogle.subjectougoogle.groupéchoue et renvoie une erreur HTTP409 Conflict. Les attributs mappés qui renvoient une valeur nulle ou vide échouent avec une erreur HTTP400 Bad Request.Exigence concernant l'adresse e-mail unique : pour que la synchronisation SCIM réussisse, chaque utilisateur doit disposer d'une seule adresse e-mail de type
work. Le provisionnement ou les mises à jour échoueront si votre IdP envoie plusieurs adresses e-mail ou si l'adresse e-mail fournie n'est pas de typework.Transformations non sensibles à la casse : les transformations CEL (Common Expression Language) limitées sont compatibles avec les mappages de revendications SCIM. Seule
.lowerAscii()est acceptée pour les comparaisons insensibles à la casse pouruser.userNameetuser.emails[0].value.
Limites des attributs
Les sections suivantes décrivent la compatibilité des attributs pour les utilisateurs, les groupes et l'extension du schéma utilisateur de l'entreprise.
Attributs utilisateur
Le tableau suivant répertorie les attributs utilisateur et leur disponibilité dans les revendications de la fédération des identités des employés :
| Attribut | Sous-attributs | Compatible avec le provisionnement SCIM | Limites | Compatible avec --claim-mapping |
|---|---|---|---|---|
userName |
N/A | Oui | N/A | Oui |
name |
formatted, familyName, givenName, middleName, honorificPrefix, honorificSuffix |
Oui | N/A | Oui |
displayName |
N/A | Oui | N/A | Oui |
nickName |
N/A | Oui | N/A | Oui |
profileUrl |
N/A | Oui | N/A | Oui |
title |
N/A | Oui | N/A | Oui |
userType |
N/A | Oui | N/A | Oui |
preferredLanguage |
N/A | Oui | N/A | Oui |
locale |
N/A | Oui | N/A | Oui |
timezone |
N/A | Oui | N/A | Oui |
active |
N/A | Oui | N/A | Oui |
password |
N/A | Non | N/A | Non |
emails |
display, type, value, primary |
Oui | Seul le type d'adresse e-mail work est accepté. |
Oui |
phoneNumbers |
display, type, value, primary |
Oui | N/A | Oui |
ims |
display, type, value |
Oui | N/A | Oui |
photos |
display, type, value |
Oui | N/A | Oui |
addresses |
formatted, streetAddress, locality, region, postalCode, country |
Oui | N/A | Oui |
groups |
N/A | Non | N/A | Non |
entitlements |
display, type, value |
Oui | N/A | Oui |
roles |
type, value |
Oui | Le caractère display n'est pas accepté. |
Oui |
x509Certificates |
type, value |
Oui | Le caractère display n'est pas accepté. |
Non |
Attributs des groupes
Le tableau suivant répertorie les attributs de groupe et leur disponibilité dans les revendications de la fédération des identités des employés :
| Attribut | Sous-attributs acceptés | Compatible avec --claim-mapping |
|---|---|---|
displayName |
N/A | Oui |
externalId |
N/A | Oui |
members |
value, type, $ref, display |
Non |
Attributs d'extension du schéma utilisateur Enterprise
Le tableau suivant détaille la compatibilité avec l'extension du schéma utilisateur Enterprise :
| Attribut | Sous-attributs acceptés | Compatible avec --claim-mapping |
|---|---|---|
employeeNumber |
N/A | Oui |
costCenter |
N/A | Oui |
organization |
N/A | Oui |
division |
N/A | Oui |
department |
N/A | Oui |
manager |
value, $ref, displayName |
Oui ($ref n'est compatible qu'avec le provisionnement SCIM, et non avec --claim-mapping) |
Étapes suivantes
- Configurer SCIM dans Microsoft Entra ID
- Configurer SCIM dans Okta
- Résoudre les problèmes de provisionnement SCIM
- Journalisation d'audit IAM SCIM