Provisionnement SCIM pour la fédération d'identité de personnel

Si votre fournisseur d'identité (IdP) est compatible avec le système SCIM (System for Cross-domain Identity Management), vous pouvez le configurer pour provisionner et gérer des groupes dans Google Cloud.

Capacités

La compatibilité SCIM avec la fédération d'identité de personnel offre les fonctionnalités suivantes :

  • Synchronisation des identités : synchronisez des copies en lecture seule des données utilisateur de votre IdP pour obtenir une vue globale des propriétés et des appartenances des utilisateurs dans Google Cloud.

  • Aplatissement des groupes : SCIM traite les groupes de votre IdP afin que toutes les appartenances directes et indirectes (imbriquées) d'un utilisateur soient aplaties et synchronisées avec le Google Cloud service d'appartenance aux groupes (GMS). IAM utilise ensuite ces groupes aplatis pour les vérifications de stratégie, ce qui permet de surmonter les contraintes de taille souvent rencontrées dans les jetons IdP.

  • Intégration de Gemini Enterprise : les locataires SCIM sont compatibles avec le partage dans Gemini Enterprise. Le locataire SCIM active deux fonctionnalités liées au partage de notebooks dans NotebookLM Enterprise :

    • Saisie semi-automatique pour les adresses e-mail et les groupes

    • Utilisation du nom du groupe au lieu de son ID d'objet (UUID)

    Pour en savoir plus, consultez Partager un notebook avec un groupe.

Remarques

Lorsque vous utilisez la compatibilité SCIM avec la fédération d'identité de personnel, les remarques suivantes s'appliquent :

  • 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. Étant donné qu'un locataire SCIM est créé sous un fournisseur de pool d'identités de personnel spécifique, seul ce fournisseur peut utiliser SCIM pour les groupes. Vous ne pouvez pas activer l'utilisation de SCIM (--scim-usage=enabled-for-groups ou --scim-usage=enabled-for-users-groups) sur un autre fournisseur du même pool. Pour configurer un nouveau locataire SCIM dans le même pool d'identités de personnel, vous devez d'abord supprimer celui qui existe. 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 ce délai, 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-delete avec 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és de personnel une fois la suppression terminée. 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 été configuré auparavant avec un locataire SCIM.
  • Lorsque vous utilisez SCIM, vous mappez des attributs dans le fournisseur de pool d'identités de personnel et dans le locataire SCIM. L'attribut google.subject doit faire référence de manière unique aux mêmes identités. Vous spécifiez google.subject dans le fournisseur de pool d'identités de personnel à l'aide de l'option --attribute-mapping et dans le locataire SCIM à l'aide de l'option --claim-mapping. Le mappage de valeurs d'identité non uniques peut entraîner le traitement par de différentes identités IdP comme une seule et même identité. Google Cloud Par conséquent, l'accès accordé à une identité utilisateur ou de groupe peut s'étendre à d'autres, mais la révocation de l'accès à l'une d'elles peut ne pas le supprimer de toutes.
  • Pour utiliser SCIM afin de mapper des groupes, définissez --scim-usage=enabled-for-groups (ou --scim-usage=enabled-for-users-groups) sur le fournisseur de pool d'identités de personnel auquel le locataire SCIM est associé. Lorsque vous mappez des groupes à l'aide de SCIM, tout mappage de groupe défini dans ce fournisseur est ignoré au profit des groupes gérés par SCIM. Lorsque vous faites référence à des groupes gérés par SCIM, l'attribut mappé est google.group, et non google.groups. google.groups ne fait référence qu'aux groupes mappés par jeton. Si vous activez l'utilisation de SCIM sur un fournisseur auquel aucun locataire SCIM n'est associé, les tentatives de connexion via ce fournisseur échouent au moment de l'exécution, car Google Cloud ne trouve pas de locataire SCIM sous le chemin d'accès de ce fournisseur.
  • Application de l'unicité Google Cloud valide et applique l'unicité des attributs mappés sur google.subject (utilisateurs) et google.group (groupes) dans un locataire SCIM. Si les attributs mappés provisionnés par votre IdP entraînent des valeurs en double pour google.subject ou google.group lors de la synchronisation, le provisionnement échoue avec une erreur HTTP 409 Conflict. Si un attribut mappé renvoie une valeur nulle ou vide, le provisionnement échoue avec une erreur HTTP 400 Bad Request.
  • Lorsque vous utilisez SCIM, les attributs basés sur des jetons mappés avec --attribute-mapping peuvent toujours être utilisés pour l'authentification et dans les identifiants principaux.
  • Pour la configuration de Microsoft Entra ID, utilisez SCIM pour activer les noms de groupe lisibles par l'homme dans Gemini Enterprise.
  • 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.

Mapper des fournisseurs OIDC et SAML à la configuration SCIM

Le mappage d'attributs dans la configuration du fournisseur de pool d'identités de personnel (--attribute-mapping) et les mappages de revendications dans le locataire SCIM (--claim-mapping) doivent être cohérents. L'attribut IdP sous-jacent utilisé pour remplir google.subject (pour les utilisateurs) doit être le même, qu'il soit lu à partir d'une revendication de jeton ou d'un attribut SCIM.

Si ces mappages sont incohérents, les utilisateurs peuvent être en mesure de se connecter, mais ne seront pas reconnus comme membres de leurs groupes provisionnés par SCIM. Par exemple, si le fournisseur utilise assertion.email pour google.subject, le locataire SCIM doit également utiliser l'attribut SCIM équivalent (par exemple, user.emails[0].value) pour google.subject.

Le tableau suivant présente les mappages entre les attributs de revendication de jeton et les attributs SCIM :

Attribut Google Mappage du fournisseur de pool d'identités de personnel Mappage du locataire 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 N/A (mappé à l'aide de SCIM) group.externalId

Points de terminaison compatibles et non compatibles

Les points de terminaison de protocole SCIM standards suivants sont compatibles :

  • /Users : gérez les ressources utilisateur. Opérations compatibles : Create, Get, Update, Delete, Patch et Put.

  • /Groups : gérez les ressources de groupe. Opérations compatibles : Create, Get, Update, Delete et Patch. La méthode PUT n'est pas compatible avec les groupes.

  • /Schemas : récupérez les informations de schéma.

  • /ServiceProviderConfig : récupérez la configuration du fournisseur de services.

Google Cloud

Les points de terminaison de protocole SCIM suivants ne sont pas compatibles :

  • /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é de personnel 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 /Users ou /Groups, les expressions de filtre ne sont compatibles qu'avec l'opérateur eq (égal à). Vous pouvez combiner plusieurs filtres eq avec and. Les autres opérateurs de filtre SCIM, tels que co (contient) ou sw (commence par), ne sont pas compatibles.

  • 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 toujours 1. L'API renvoie jusqu'à 100 résultats, quelle que soit la valeur que vous fournissez pour startIndex.

    • itemsPerPage: le nombre maximal de ressources renvoyées dans une seule réponse est de 100.

    • totalResults: l'API ne renvoie pas le nombre total réel de ressources correspondantes. Le champ totalResults de la réponse est toujours égal au nombre d'éléments renvoyés dans cette réponse, avec un maximum de 100.

  • Obtenir un groupe et lister les groupes sans filtre : les API GetGroup et ListGroups renvoient une liste de membres vide. Pour récupérer les membres d'un groupe spécifique, utilisez l'API ListGroups avec un filtre de membre.

  • Réponse JSON non conforme avec des jetons non valides : les API qui contiennent un jeton d'API non valide génèrent une 401 HTTP error de la part de Google Cloud. La réponse n'est pas une structure JSON, comme l'exigent les spécifications.

Limites du comportement SCIM

  • Identifiants immuables : les valeurs des attributs SCIM mappés sur google.subject ou google.group sont 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 : applique l'unicité des valeurs mappées sur google.subject et google.group dans un locataire SCIM. La synchronisation des attributs mappés qui entraînent des valeurs en double pour google.subject ou google.group échoue avec une erreur HTTP 409 Conflict. Les attributs mappés qui renvoient une valeur nulle ou vide échouent avec une erreur HTTP 400 Bad Request.

  • Exigence d'une seule adresse e-mail : pour que la synchronisation SCIM réussisse, chaque utilisateur doit avoir exactement une adresse e-mail de type work. Le provisionnement ou les mises à jour échouent si votre IdP envoie plusieurs e-mails ou si l'e-mail unique fourni n'est pas de type work.

  • Transformations ne tenant pas compte de la casse : les transformations limitées du langage CEL (Common Expression Language) sont compatibles avec les mappages de revendications SCIM. Seul .lowerAscii() est compatible avec les comparaisons ne tenant pas compte de la casse pour user.userName et user.emails[0].value.

Limites des attributs

Les sections suivantes décrivent la compatibilité des attributs pour les utilisateurs, les groupes et l'extension de schéma utilisateur d'entreprise.

Attributs utilisateur

Le tableau suivant détaille la compatibilité avec les attributs utilisateur :

Attribut Sous-attributs Compatible Limites
userName N/A Oui N/A
name formatted, familyName, givenName, middleName, honorificPrefix, honorificSuffix Oui N/A
displayName N/A Oui N/A
nickName N/A Oui N/A
profileUrl N/A Oui N/A
title N/A Oui N/A
userType N/A Oui N/A
preferredLanguage N/A Oui N/A
locale N/A Oui N/A
timezone N/A Oui N/A
active N/A Oui N/A
password N/A Non N/A
emails display, type, value, primary Oui Seul le type d'e-mail work est compatible.
phoneNumbers display, type, value, primary Oui N/A
ims display, type, value Oui N/A
photos display, type, value Oui N/A
addresses formatted, streetAddress, locality, region, postalCode, country Oui N/A
groups N/A Non N/A
entitlements display, type, value Oui N/A
roles type, value Oui display n'est pas compatible.
x509Certificates type, value Oui display n'est pas compatible.

Attributs des groupes

Le tableau suivant détaille la compatibilité avec les attributs de groupe :

Attribut Sous-attributs compatibles
displayName N/A
externalId N/A
members value, type, $ref, display

Attributs d'extension de schéma utilisateur d'entreprise

Le tableau suivant détaille la compatibilité avec l'extension de schéma utilisateur d'entreprise :

Attribut Sous-attributs compatibles
employeeNumber N/A
costCenter N/A
organization N/A
division N/A
department N/A
manager value, $ref, displayName

Étape suivante