0 / 0
Retourner à la version anglaise de la documentation
Exemples de fédération d'identité de charge de travail
Dernière mise à jour : 28 nov. 2024
Exemples de fédération d'identité de charge de travail

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

  1. Créez un fournisseur d'identité OIDC (IdP) avec Cognito en suivant les instructions de la documentation Amazon:

    Pour plus d'informations, voir Démarrer avec Amazon Cognito.

  2. 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
    
  3. 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.

  4. 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

  1. Choisissez la méthode d'authentification Fédération d'identité de charge de travail avec jeton d'accès .

  2. 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
    
  3. 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.

  4. (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.

  5. Définissez Format de jeton sur Text

  6. Définissez Type de jeton sur ID token

Azure

Configurer la fédération d'identité de charge de travail dans Azure

  1. Créez une application Azure AD et un principal de service.

  2. 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.

  3. 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

  1. Suivez les instructions : Configurer la fédération d'identité de la charge de travail.
  2. 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.

Création de la connexion avec la fédération d'identité de charge de travail Azure

  1. Choisissez l'une des méthodes d'authentification suivantes:

    • Workload Identity Federation avec jeton d'accès
    • Workload Identity Federation avec URL de jeton
  2. 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
    
  3. 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.

  4. (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.

  5. 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
  6. 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.

  7. 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

En savoir plus