La fédération d'identité de charge de travail pour les connexions Google BigQuery, Google Cloud Pub/Subet Google Cloud Storage est prise en charge par tout fournisseur d'identité qui prend en charge OpenID Connect (OIDC) ou SAML 2.0.
Ces exemples concernent AWS avec Amazon Cognito et Microsoft Azure.
AWS
Configurer la fédération d'identité de charge de travail dans Amazon Cognito
Créez un fournisseur d'identité OIDC (IdP) avec Cognito en suivant les instructions de la documentation Amazon:
- Étape 1. Création d'un pool d'utilisateurs
- Étape 2. Ajout d'un client d'application et configuration de l'interface utilisateur hébergée
Pour plus d'informations, voir Démarrer avec Amazon Cognito.
Créez un groupe et un utilisateur dans le IdP à l'aide de la console AWS . Vous pouvez également utiliser l'interface de ligne de commande AWS :
CLIENT_ID=YourClientId ISSUER_URL=https://cognito-idp.YourRegion.amazonaws.com/YourPoolId POOL_ID=YourPoolId USERNAME=YourUsername PASSWORD=YourPassword GROUPNAME=YourGroupName aws cognito-idp admin-create-user --user-pool-id $POOL_ID --username $USERNAME --temporary-password Temp-Pass1 aws cognito-idp admin-set-user-password --user-pool-id $POOL_ID --username $USERNAME --password $PASSWORD --permanent aws cognito-idp create-group --group-name $GROUPNAME --user-pool-id $POOL_ID aws cognito-idp admin-add-user-to-group --user-pool-id $POOL_ID --username $USERNAME --group-name $GROUPNAME
Dans la console AWS , cliquez sur Afficher l'interface utilisateur hébergée et connectez-vous à l'interface utilisateur du fournisseur d'identité dans un navigateur pour vous assurer que toute nouvelle demande d'authentification par mot de passe est résolue.
Obtenez un IdToken avec l'interface de ligne de commande AWS :
aws cognito-idp admin-initiate-auth --auth-flow ADMIN_USER_PASSWORD_AUTH --client-id $CLIENT_ID --auth-parameters USERNAME=$USERNAME,PASSWORD=$PASSWORD --user-pool-id $POOL_ID
Pour plus d'informations sur le flux d'authentification des pools d'utilisateurs Amazon Cognito, voir AdminInitiateAuth.
Configurer Google Cloud pour Amazon Cognito
Lorsque vous créez le fournisseur dans Google Cloud, utilisez les paramètres suivants:
- Définissez Issuer (URL) sur
https://cognito-idp.YourRegion.amazonaws.com/YourPoolId
. - Définissez Audience autorisée sur votre ID client.
- Sous Mappage d'attributs, mappez
google.subject
àassertion.sub
.
Créer la connexion avec la fédération d'identité de charge de travail Amazon Cognito
Choisissez la méthode d'authentification Fédération d'identité de charge de travail avec jeton d'accès .
Pour la zone Security Token Service audience , utilisez le format suivant:
//iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID
Pour la zone Adresse électronique du compte de service, entrez l'adresse électronique du compte de service Google dont l'identité doit être usurpée. Pour plus d'informations, voir Créer un compte de service pour la charge de travail externe.
(Facultatif) Indiquez une valeur pour la durée de vie du jeton de compte de service en secondes. La durée de vie par défaut d'un jeton d'accès de compte de service est d'une heure. Pour plus d'informations, voir les informations d'identification provenant d'une URL.
Définissez Format de jeton sur
Text
Définissez Type de jeton sur
ID token
Azure
Configurer la fédération d'identité de charge de travail dans Azure
Définissez un URI d'ID d'application pour l'application. Vous pouvez utiliser l'URI d'ID d'application par défaut (
api://APPID
) ou spécifier un URI personnalisé.
Vous pouvez ignorer les instructions relatives à la création d'une identité gérée.Suivez les instructions pour créer un nouveau secret d'application afin d'obtenir un jeton d'accès avec l'API REST.
Pour plus d'informations, voir Configurer la fédération des identités de la charge de travail avec Azure.
Configurez Google Cloud pour Azure
- Suivez les instructions : Configurer la fédération d'identité de la charge de travail.
- Suivez les instructions : Créez le pool d'identités et le fournisseur de charge de travail. Lorsque vous configurez le fournisseur, utilisez les paramètres suivants:
- Définissez Issuer (URL) sur
https://sts.windows.net/TENANTID/
, oùTENANTID
est l'ID locataire que vous avez reçu lors de la configuration d' Azure Active Directory. - Définissez l' audience autorisée sur l'ID client que vous avez reçu lors de la configuration de l'enregistrement de l'application. Vous pouvez également spécifier un autre URI d'ID d'application que vous avez utilisé lors de la configuration de l'identité d'application dans Azure.
- Sous Mappage d'attributs, mappez
google.subject
àassertion.sub
.
- Définissez Issuer (URL) sur
Création de la connexion avec la fédération d'identité de charge de travail Azure
Choisissez l'une des méthodes d'authentification suivantes:
- Workload Identity Federation avec jeton d'accès
- Workload Identity Federation avec URL de jeton
Pour le champ Security Token Service audience, utilisez le format décrit dans Authentifier une charge de travail qui utilise l'API REST. Par exemple :
//iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID
Pour la zone Adresse électronique du compte de service, entrez l'adresse électronique du compte de service Google dont l'identité doit être usurpée. Pour plus d'informations, voir Créer un compte de service pour la charge de travail externe.
(Facultatif) Indiquez une valeur pour la durée de vie du jeton de compte de service en secondes. La durée de vie par défaut d'un jeton d'accès de compte de service est d'une heure. Pour plus d'informations, voir les informations d'identification provenant d'une URL.
Si vous avez spécifié Workload Identity Federation avec l'URL de jeton, utilisez les valeurs suivantes:
- URL de jeton:
https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token
. Cette URL va extraire un jeton d' Azure. - Méthode HTTP:
POST
- En-têtes HTTP:
"Content-Type"="application/x-www-form-urlencoded;charset=UTF-8","Accept"="application/json"
- Corps de la demande:
grant_type=client_credentials&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&scope=APPLICATION_ID_URI/.default
- URL de jeton:
Pour Type de jeton, sélectionnez Jeton d'ID pour un fournisseur d'identité conforme à la spécification OpenID Connect (OIDC). Pour plus d'informations, voir Types de jetons.
L'option Format de jeton dépend de cette sélection d'authentification:
- Fédération d'identité de charge de travail avec jeton d'accès: sélectionnez Texte si vous avez fourni la valeur de jeton brute dans la zone Jeton d'accès .
- Workload Identity Federation avec URL de jeton: pour une réponse de l'URL de jeton au format JSON avec le jeton d'accès renvoyé dans une zone nommée
access_token
, utilisez les paramètres suivants:- Format de jeton:
JSON
- Nom de zone de jeton:
access_token
- Format de jeton: