Ce document explique comment configurer un locataire SCIM dans un pool d'identités des employés. Pour en savoir plus sur SCIM, consultez Provisionnement SCIM pour la fédération des identités des employés.
Chaque pool d'identités des employés ne prend en charge qu'un seul locataire SCIM. Pour configurer un locataire SCIM dans un pool qui en contient déjà un, vous devez d'abord supprimer définitivement le locataire existant.
L'indicateur --claim-mapping d'un locataire SCIM ne peut contenir que des expressions spécifiques du langage CEL (Common Expression Language). Pour savoir quelles expressions sont acceptées, consultez Mapper des attributs de jeton et SCIM.
Pour configurer le système SCIM (System for Cross-domain Identity Management) :
- Configurez un locataire et un jeton SCIM dans Google Cloud
- Configurez SCIM dans Okta
- Mettez à jour le fournisseur pour activer SCIM
- Vérifiez la synchronisation SCIM
Configurez un locataire et un jeton SCIM dans Google Cloud
Pour configurer un locataire SCIM dans Google Cloud:
-
Créez un locataire SCIM.
gcloud iam workforce-pools providers scim-tenants create SCIM_TENANT_ID \ --workforce-pool="WORKFORCE_POOL_ID" \ --provider="PROVIDER_ID" \ --display-name="SCIM_TENANT_DISPLAY_NAME" \ --description="SCIM_TENANT_DESCRIPTION" \ --claim-mapping="CLAIM_MAPPING" \ --location="global"Remplacez les éléments suivants :
SCIM_TENANT_ID: ID de votre locataire SCIM.WORKFORCE_POOL_ID: ID du pool d'identités des employés que vous avez créé précédemment dans ce document.PROVIDER_ID: ID du fournisseur de pools d'identités des employés que vous avez créé précédemment dans ce document.SCIM_TENANT_DISPLAY_NAME: nom à afficher de votre locataire SCIM.SCIM_TENANT_DESCRIPTION: description de votre locataire SCIM.CLAIM_MAPPING: liste de mappages d'attributs séparés par une virgule. Pour obtenir la liste complète des attributs de mappage, consultez Mapper des attributs de jeton et SCIM. Le mappage suivant est recommandé pour Gemini Enterprise :google.subject=user.emails[0].value.lowerAscii(),google.group=group.displayNameL'attribut
google.subjectque vous mappez dans le locataire SCIM doit faire référence de manière unique aux mêmes identités que celles mappées dans l'attributgoogle.subjectdu fournisseur de pools d'identités des employés à l'aide de l'indicateur--attribute-mapping. Une fois le locataire SCIM créé, vous ne pouvez plus mettre à jour le mappage des revendications. Pour le remplacer, vous pouvez supprimer définitivement le locataire SCIM et en créer un immédiatement. Pour en savoir plus sur les éléments à prendre en compte lors de l'utilisation de SCIM, consultez la section Compatibilité avec SCIM.
-
Une fois la commande terminée :
-
Dans le champ
baseUridu résultat, enregistrez l'URI complet, au formathttps://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID. Vous devez fournir cet URI à votre fournisseur d'identité. -
En outre, à partir de l'URI, enregistrez uniquement le
SCIM_TENANT_UID. Vous en aurez besoin pour définir une stratégie d'autorisation IAM sur le locataire SCIM plus loin dans ce document.
-
Dans le champ
-
Créez un jeton SCIM :
gcloud iam workforce-pools providers scim-tenants tokens create SCIM_TOKEN_ID \ --display-name DISPLAY_NAME \ --scim-tenant SCIM_TENANT_ID \ --workforce-pool WORKFORCE_POOL_ID \ --provider PROVIDER_ID \ --location globalRemplacez les éléments suivants :
SCIM_TOKEN_ID: ID du jeton SCIMDISPLAY_NAME: nom à afficher du jeton SCIMWORKFORCE_POOL_ID: ID du pool d'identités des employésSCIM_TENANT_ID: ID du locataire SCIMPROVIDER_ID: ID du fournisseur de pools d'identités des employés
-
Une fois la commande
gcloud iam workforce-pools providers scim-tenants tokens createterminée :-
Dans le résultat, enregistrez la valeur de
SCIM_TOKENdans lesecurityTokenchamp. Vous devez fournir ce jeton de sécurité à votre fournisseur d'identité. Le jeton de sécurité ne s'affiche que dans ce résultat. Si vous le perdez, vous devez créer un jeton SCIM. -
Pour vérifier si
SCIM_TOKENest rejeté par votre stratégie d'organisation, exécutez la commande suivante :curl -v -H "Authorization: Bearer SCIM_TOKEN" https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID/Users
Si la commande échoue avec une erreur liée aux autorisations, exécutez
gcloud organizations add-iam-policy-binding, comme décrit dans une étape ultérieure. Si la commande réussit, vous pouvez ignorer cette étape.
-
-
Définissez une stratégie d'autorisation IAM sur le locataire et le jeton SCIM. Si la commande
curld'une étape précédente a échoué avec une erreur liée aux autorisations, vous devez exécuter la commande suivante :gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member=serviceAccount:SERVICE_AGENT_EMAIL \ --role roles/iam.scimSyncerRemplacez les éléments suivants :
- ORGANIZATION_ID : ID de l'organisation.
- SERVICE_AGENT_EMAIL : adresse e-mail de l'agent de service. L'adresse e-mail est au format suivant :
o-ORGANIZATION_ID-SCIM_TENANT_UID@gcp-sa-iamscim.iam.gserviceaccount.com. SCIM_TENANT_UID est renvoyé lorsque vous créez le locataire SCIM.
Lorsque vous provisionnez des groupes dans votre fournisseur d'identité, assurez-vous que le nom à afficher de chaque groupe, tel qu'il est fourni dans
le displayName champ, est unique dans un locataire SCIM. Pour en savoir plus sur les groupes et
SCIM dans Microsoft Entra ID, consultez
Groupes.
Configurez SCIM dans Okta
Pour configurer SCIM dans Okta, dans votre application Okta existante :
- Connectez-vous à la console d'administration Okta.
- Accédez à Applications > Applications.
Sélectionnez ou créez votre application :
Pour sélectionner une application existante :
- Cliquez sur le nom de l'application que vous avez créée à l'aide du modèle de fédération des identités des employés Google Cloud.
-
Dans l'onglet General (Général) :
- Dans le volet App Settings (Paramètres de l'application), cliquez sur Edit (Modifier).
- Dans le champ Tenant (Locataire), saisissez l'ID de locataire obtenu à partir de la gcloud CLI.
- Cliquez sur Done (OK).
Pour créer une application :
- Cliquez sur Browse App Catalog (Parcourir le catalogue d'applications).
- Dans le champ Search (Rechercher), saisissez Google Cloud Workforce Identity Federation, puis sélectionnez l'intégration Google Cloud Workforce Identity Federation dans les résultats.
Cliquez sur Add Integration (Ajouter une intégration).
- Dans le champ Application, saisissez un nom pour votre application.
- Dans le champ Tenant (Locataire), saisissez l'ID de locataire obtenu à partir de la gcloud CLI.
- Cliquez sur Done (OK).
-
Dans l'onglet Provisioning (Provisionnement) :
Dans le volet Integration (Intégration), cliquez sur Edit (Modifier).
- Dans le champ API Token (Jeton d'API), saisissez le jeton SCIM que vous avez obtenu à partir de Google Cloud.
- Pour confirmer la validité du jeton d'API, cliquez sur Test Credentials (Tester les identifiants).
- Sélectionnez Import Groups (Importer des groupes).
- Cliquez sur Save (Enregistrer).
Dans le volet To App (Vers l'application), cliquez sur Edit (Modifier).
- Sélectionnez Create Users (Créer des utilisateurs), Update User Attributes (Mettre à jour les attributs utilisateur) et Deactivate users (Désactiver des utilisateurs).
- Cliquez sur Save (Enregistrer).
Mettez à jour le fournisseur pour activer SCIM
Pour activer SCIM pour un fournisseur :
OIDC
gcloud iam workforce-pools providers update-oidc PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=LOCATION \
--scim-usage=enabled-for-groups
Remplacez les éléments suivants :
PROVIDER_ID: ID du fournisseur de pools d'identités des employésWORKFORCE_POOL_ID: ID du pool d'identités des employésLOCATION: emplacement du pool d'identités des employés
SAML
gcloud iam workforce-pools providers update-saml PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=LOCATION \
--scim-usage=enabled-for-groups
Remplacez les éléments suivants :
PROVIDER_ID: ID du fournisseur de pools d'identités des employésWORKFORCE_POOL_ID: ID du pool d'identités des employésLOCATION: emplacement du pool d'identités des employés
Pour vérifier la synchronisation SCIM, consultez Vérifier la synchronisation SCIM.
Mapper des attributs de jeton et SCIM
Vous devez mapper les attributs de manière cohérente, à la fois dans le fournisseur de pools d'identités des employés et dans le locataire SCIM configuré pour le fournisseur. Pour le fournisseur de pools d'identités des employés, vous utilisez l'indicateur --attribute-mapping, et pour le locataire SCIM, vous utilisez l'indicateur --claim-mapping. L'attribut IdP mappé sur google.subject pour les utilisateurs doit faire référence de manière unique à la même identité, qu'elle soit définie dans un jeton ou un mappage SCIM. Pour en savoir plus sur le mappage des attributs lorsque vous utilisez SCIM, consultez la
section Compatibilité avec SCIM.
Le tableau suivant explique comment mapper des attributs dans des revendications de jeton et des attributs SCIM :
| Attribut Google | Mappage du fournisseur de pools d'identités des employés | Mappage du locataire SCIM |
|---|---|---|
google.subject |
assertion.sub |
user.externalId |
google.subject |
assertion.subject |
user.userName |
google.subject |
assertion.subject.lowerAscii() |
user.userName.lowerAscii() |
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 assurez-vous de mettre à jour votre fournisseur avec --scim-usage=enabled-for-groups |
N/A |
group.displayName |
Vérifiez la synchronisation SCIM
Après avoir configuré SCIM, vous pouvez utiliser curl pour vérifier que les utilisateurs et les groupes se synchronisent correctement avec Google Cloud. Ces commandes nécessitent un jeton SCIM valide et l'ID de votre locataire SCIM.
Vérifier la synchronisation des utilisateurs
Pour vérifier qu'un utilisateur a été synchronisé correctement, recherchez son userName à l'aide du filtre suivant :
curl -H "Authorization: Bearer SCIM_TOKEN" \ "https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID/Users?filter=userName%20eq%20%22USER_NAME%22"
Exemple de réponse :
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 1,
"Resources": [
{
"id": "USER_ID",
"userName": "USER_NAME",
...
}
]
}
Vérifier la synchronisation des groupes
Pour vérifier qu'un groupe a été synchronisé correctement, recherchez son displayName à l'aide du filtre suivant :
curl -H "Authorization: Bearer SCIM_TOKEN" \ "https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID/Groups?filter=displayName%20eq%20%22GROUP_NAME%22"
Exemple de réponse :
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 1,
"Resources": [
{
"id": "GROUP_ID",
"displayName": "GROUP_NAME",
...
}
]
}
Vérifier l'appartenance à un groupe
Pour vérifier si un utilisateur spécifique est membre d'un groupe, utilisez un filtre qui spécifie à la fois l'ID du groupe et l'ID de l'utilisateur.
curl -H "Authorization: Bearer SCIM_TOKEN" \ "https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID/Groups?filter=id%20eq%20%22GROUP_ID%22%20and%20members%20eq%20%22USER_ID%22"
Exemple de réponse si l'utilisateur est membre :
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 1,
"Resources": [
{
"id": "GROUP_ID",
"displayName": "GROUP_NAME",
...
}
]
}
Exemple de réponse si l'utilisateur n'est pas membre :
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 0,
"Resources": []
}
Remarque : Pour obtenir le GROUP_ID et le USER_ID, commencez par rechercher le groupe et l'utilisateur à l'aide des filtres displayName et userName. Les ID sont renvoyés dans le champ id de la réponse. Remplacez SCIM_TOKEN, SCIM_TENANT_UID, USER_NAME, GROUP_NAME, GROUP_ID et USER_ID par vos valeurs réelles.
Supprimer de force un locataire SCIM
Pour supprimer de force un locataire SCIM :
- Si
--scim-usage=enabled-for-groupsest défini pour votre fournisseur, désactivez-le dans la configuration du fournisseur :gcloud iam workforce-pools providers update-oidc PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --location=LOCATION \ --scim-usage=SCIM_USAGE_UNSPECIFIEDRemplacez les éléments suivants :
PROVIDER_ID: ID du fournisseur de pools d'identités des employésWORKFORCE_POOL_ID: ID du pool d'identités des employésLOCATION: emplacement du pool d'identités des employés
- Supprimez le locataire SCIM :
gcloud iam workforce-pools providers scim-tenants delete SCIM_TENANT_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --provider=PROVIDER_ID \ --hard-delete \ --location=globalRemplacez les éléments suivants :
SCIM_TENANT_ID: ID du locataire SCIM à supprimerWORKFORCE_POOL_ID: ID du pool d'identités des employésPROVIDER_ID: ID du fournisseur de pools d'identités des employés
Étape suivante
- Résoudre les problèmes liés au provisionnement SCIM
- Supprimer les utilisateurs et leurs données de la fédération des identités des employés
- Découvrez les Google Cloud produits compatibles avec la fédération des identités des employés
- Configurer l'accès utilisateur à la console (fédéré)