Configurer la fédération des identités des employés

Ce guide explique comment configurer la fédération d'identité de personnel avec un fournisseur d'identité compatible avec OIDC ou SAML 2.0.

Pour obtenir des instructions spécifiques à un fournisseur d'identité, consultez les articles suivants :

Avant de commencer

  1. Vous devez disposer d'une organisation Google Cloud déjà configurée.

  2. Enable the Identity and Access Management (IAM) and Resource Manager APIs.

    Enable the APIs

  3. Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

  4. Pour la connexion, votre fournisseur d'identité doit fournir des informations d'authentification signées : les fournisseurs d'identité OIDC doivent fournir un jeton JWT, et les réponses du fournisseur d'identité SAML doivent être signées.

  5. Pour recevoir des informations importantes sur les modifications concernant votre organisation ou vos produits Google Cloud, vous devez fournir des contacts essentiels. Pour en savoir plus, consultez la Présentation de la fédération des identités des employés.

Rôles requis

Pour obtenir les autorisations nécessaires pour configurer la fédération des identités des employés, demandez à votre administrateur de vous attribuer le rôle IAM d'administrateur de pool d'identités des employés (roles/iam.workforcePoolAdmin) sur l'organisation. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Le rôle de base Propriétaire (roles/owner) inclut également les autorisations permettant de configurer la fédération d'identité du personnel. Les rôles de base ne doivent pas être attribués dans un environnement de production, mais ils peuvent être attribués dans un environnement de développement ou de test.

Configurer la fédération des identités des employés

Pour configurer la fédération d'identité de personnel, vous devez créer un pool d'identités de personnel et un fournisseur de pool d'identités de personnel.

Créer un pool d'identités de personnel

Pour créer le pool, exécutez la commande suivante :

Console

Pour créer le pool d'identités de personnel, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Pools d'identités de personnel :

    Accéder aux pools d'identités de personnel

  2. Cliquez sur Créer un pool et procédez comme suit :

    1. Dans le champ Nom, saisissez le nom à afficher du pool. L'ID du pool est automatiquement dérivé du nom au fur et à mesure de la saisie, et s'affiche sous le champ Nom. Vous pouvez modifier l'ID du pool en cliquant sur Modifier à côté de l'ID du pool.

    2. Facultatif : Dans le champ Description, saisissez une description du pool.

    3. La durée de la session est définie par défaut. Pour saisir une durée de session personnalisée, cliquez sur Modifier. La durée de la session détermine la durée pendant laquelle les jetons d'accès Google Cloud, les sessions de connexion à la console (fédération) et les sessions de connexion à gcloud CLI de ce pool de personnel sont valides. La durée doit être supérieure à 15 minutes (900 s) et inférieure à 12 heures (43 200 s). Si la durée de la session n'est pas définie, elle est définie par défaut sur une durée d'une heure (3 600 s).

    4. Pour créer le pool à l'état "Activé", assurez-vous que le pool activé est activé.

    5. Pour créer le pool d'identités de personnel, cliquez sur Suivant.

gcloud

Pour créer le pool d'identités de personnel, exécutez la commande suivante :

gcloud iam workforce-pools create WORKFORCE_POOL_ID \
    --organization=ORGANIZATION_ID \
    --display-name="DISPLAY_NAME" \
    --description="DESCRIPTION" \
    --session-duration=SESSION_DURATION \
    --location=global

Remplacez les éléments suivants :

  • WORKFORCE_POOL_ID : ID que vous choisissez pour représenter votre pool de personnel Google Cloud. Pour plus d'informations sur la mise en forme de l'ID, consultez la section Paramètres de requête dans la documentation de l'API.
  • ORGANIZATION_ID : ID d'organisation numérique de votre organisation Google Cloud.
  • DISPLAY_NAME : facultatif. Un nom à afficher pour votre pool d'identités de personnel.
  • DESCRIPTION : facultatif. Description du pool d'identités de personnel
  • SESSION_DURATION : facultatif. Durée de la session, qui détermine la durée pendant laquelle les jetons d'accès Google Cloud, les sessions de connexion à la console (fédération) et les sessions de connexion à gcloud CLI de ce pool de personnel sont valides. La durée doit être supérieure à 15 minutes (900 s) et inférieure à 12 heures (43 200 s). Si la durée de la session n'est pas définie, elle est définie par défaut sur une durée d'une heure (3 600 s).

Créer un fournisseur de pools d'identités de personnel

Cette section explique comment créer un fournisseur de pools d'identités de personnel pour permettre aux utilisateurs de votre fournisseur d'identité d'accéder à Google Cloud. Vous pouvez configurer le fournisseur pour qu'il utilise le protocole OIDC ou SAML.

Créer un fournisseur de pools de personnel OIDC

Pour créer un fournisseur de pools d'identités de personnel à l'aide du protocole OIDC, procédez comme suit :

  1. Dans votre fournisseur d'identité OIDC, enregistrez une nouvelle application pour la fédération d'identité de personnel Google Cloud. Notez l'ID client et l'URI d'émetteur fournis par le fournisseur d'identité. Vous les utiliserez dans ce document.

  2. Si vous envisagez de configurer l'accès des utilisateurs à la console, ajoutez l'URL de redirection suivante à votre fournisseur d'identité OIDC :

    https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
    

    Pour savoir comment configurer la connexion à la console (fédération), consultez la section Configurer l'accès utilisateur à la console (fédération).

  3. Dans Google Cloud, pour créer le fournisseur, procédez comme suit :

    Console

    Flux de code

    Pour créer un fournisseur OIDC utilisant le flux avec code d'autorisation dans la console Google Cloud, procédez comme suit :

    1. Dans la console Google Cloud, accédez à la page Pools d'identités de personnel :

      Accéder aux pools d'identités de personnel

    2. Dans le tableau Pools d'identités de personnel, sélectionnez le pool pour lequel vous souhaitez créer le fournisseur.

    3. Dans le tableau Fournisseurs, cliquez sur Ajouter un fournisseur.

    4. Dans Sélectionner un protocole, sélectionnez Open ID Connect (OIDC).

    5. Dans Créer un fournisseur de pools, procédez comme suit :

      1. Dans Nom, saisissez un nom pour le fournisseur.
      2. Dans le champ Issuer (URL) (Émetteur (URL)), saisissez l'URI de l'émetteur. L'URI d'émetteur OIDC doit être dans un format d'URI valide et commencer par https. Exemple : https://example.com/oidc.
      3. Saisissez l'ID client, qui est l'ID client OIDC enregistré auprès de votre fournisseur d'identité OIDC. L'ID doit correspondre à la revendication aud du jeton JWT émis par votre fournisseur d'identité.
      4. Pour créer un fournisseur activé, assurez-vous que l'option fournisseur activé est activée.
      5. Cliquez sur Continuer.
    6. Dans Type de réponse, procédez comme suit : Le type de réponse n'est utilisé que pour un flux d'authentification unique basé sur le Web.

      1. Dans Type de réponse, sélectionnez Code.
      2. Dans Code secret du client, saisissez le code secret du client à partir de votre fournisseur d'identité.
      3. Dans le champ Comportement des revendications d'assertion, sélectionnez l'une des options suivantes :

        • Informations sur l'utilisateur et jeton d'ID
        • Jeton d'ID uniquement
      4. Cliquez sur Continuer.

    7. Dans Configurer le fournisseur, vous pouvez configurer un mappage d'attributs et une condition d'attribut. Pour créer un mappage d'attributs, procédez comme suit : Vous pouvez indiquer le nom du champ du fournisseur d'identité ou une expression au format CEL qui renvoie une chaîne.

      1. Obligatoire : dans OIDC 1, saisissez l'objet du fournisseur d'identité. Exemple : assertion.sub.

      2. Facultatif : pour ajouter des mappages d'attributs supplémentaires, procédez comme suit :

        1. Cliquez sur Ajouter un mappage.
        2. Dans Google n, où n est un nombre, saisissez l'une des clés compatibles avec Google Cloud.
        3. Dans le champ OIDC n correspondant, saisissez le nom du champ spécifique au fournisseur d'identité à mapper, au format CEL.
      3. Pour créer une condition d'attribut, procédez comme suit :

        1. Cliquez sur Ajouter une condition :
        2. Dans Conditions d'attribut, saisissez une condition au format CEL. Par exemple, assertion.role == 'gcp-users'. Cet exemple de condition garantit que seuls les utilisateurs disposant du rôle gcp-users peuvent se connecter via ce fournisseur.
    8. Pour créer le fournisseur, cliquez sur Envoyer.

    Flux implicite

    Pour créer un fournisseur OIDC utilisant un flux implicite dans la console Google Cloud, procédez comme suit :

    1. Dans la console Google Cloud, accédez à la page Pools d'identités de personnel :

      Accéder aux pools d'identités de personnel

    2. Dans le tableau Pools d'identités de personnel, sélectionnez le pool pour lequel vous souhaitez créer le fournisseur.

    3. Dans le tableau Fournisseurs, cliquez sur Ajouter un fournisseur.

    4. Dans Sélectionner un protocole, sélectionnez Open ID Connect (OIDC).

    5. Dans Créer un fournisseur de pools, procédez comme suit :

      1. Dans Nom, saisissez un nom pour le fournisseur.
      2. Dans le champ Issuer (URL) (Émetteur (URL)), saisissez l'URI de l'émetteur. L'URI d'émetteur OIDC doit être dans un format d'URI valide et commencer par https. Exemple : https://example.com/oidc.
      3. Saisissez l'ID client, qui est l'ID client OIDC enregistré auprès de votre fournisseur d'identité OIDC. L'ID doit correspondre à la revendication aud du jeton JWT émis par votre fournisseur d'identité.
      4. Pour créer un fournisseur activé, assurez-vous que l'option fournisseur activé est activée.
      5. Cliquez sur Continuer.
    6. Dans Type de réponse, procédez comme suit : Le type de réponse n'est utilisé que pour un flux d'authentification unique basé sur le Web.

      1. Dans Type de réponse, sélectionnez Jeton d'ID.
      2. Cliquez sur Continuer.
    7. Dans Configurer le fournisseur, vous pouvez configurer un mappage d'attributs et une condition d'attribut. Pour créer un mappage d'attributs, procédez comme suit : Vous pouvez indiquer le nom du champ du fournisseur d'identité ou une expression au format CEL qui renvoie une chaîne.

      1. Obligatoire : dans OIDC 1, saisissez l'objet du fournisseur d'identité. Exemple : assertion.sub.

      2. Facultatif : pour ajouter des mappages d'attributs supplémentaires, procédez comme suit :

        1. Cliquez sur Ajouter un mappage.
        2. Dans Google n, où n est un nombre, saisissez l'une des clés compatibles avec Google Cloud.
        3. Dans le champ OIDC n correspondant, saisissez le nom du champ spécifique au fournisseur d'identité à mapper, au format CEL.
      3. Pour créer une condition d'attribut, procédez comme suit :

        1. Cliquez sur Ajouter une condition :
        2. Dans Conditions d'attribut, saisissez une condition au format CEL. Par exemple, assertion.role == 'gcp-users'. Cet exemple de condition garantit que seuls les utilisateurs disposant du rôle gcp-users peuvent se connecter via ce fournisseur.

    8. Pour créer le fournisseur, cliquez sur Envoyer.

    gcloud

    Flux de code

    Pour créer un fournisseur OIDC qui utilise un flux avec code d'autorisation pour la connexion Web, exécutez la commande suivante :

    gcloud iam workforce-pools providers create-oidc PROVIDER_ID \
        --workforce-pool=WORKFORCE_POOL_ID \
        --display-name="DISPLAY_NAME" \
        --description="DESCRIPTION" \
        --issuer-uri="ISSUER_URI" \
        --client-id="OIDC_CLIENT_ID" \
    --client-secret-value="OIDC_CLIENT_SECRET" \ --web-sso-response-type="code" \ --web-sso-assertion-claims-behavior="merge-user-info-over-id-token-claims" \ --web-sso-additional-scopes="WEB_SSO_ADDITIONAL_SCOPES" \ --attribute-mapping="ATTRIBUTE_MAPPING" \ --attribute-condition="ATTRIBUTE_CONDITION" \ --jwk-json-path="JWK_JSON_PATH" \ --location=global

    Remplacez les éléments suivants :

    • PROVIDER_ID : ID de fournisseur unique. Le préfixe gcp- est réservé et ne peut pas être utilisé dans un ID de pool ou de fournisseur.
    • WORKFORCE_POOL_ID : ID du pool d'identités des employés auquel connecter votre fournisseur d'identité.
    • DISPLAY_NAME : nom à afficher convivial et facultatif pour le fournisseur. Par exemple : idp-eu-employees.
    • DESCRIPTION : description facultative du fournisseur de personnel. Par exemple : IdP for Partner Example Organization employees.
    • ISSUER_URI : URI de l'émetteur OIDC, dans un format d'URI valide, commençant par https. Exemple : https://example.com/oidc. Remarque : Pour des raisons de sécurité, ISSUER_URI doit utiliser le schéma HTTPS.
    • OIDC_CLIENT_ID : ID client OIDC enregistré auprès de votre fournisseur d'identité OIDC. L'ID doit correspondre à la revendication aud du JWT émis par votre fournisseur d'identité.
    • OIDC_CLIENT_SECRET : code secret du client OIDC.
    • WEB_SSO_ADDITIONAL_SCOPES : champs d'application supplémentaires facultatifs à envoyer au fournisseur d'identité OIDC pour la connexion basée sur le navigateur, via la console (fédération) ou via gcloud CLI.
    • ATTRIBUTE_MAPPING : mappage d'attributs. Voici un exemple de mappage d'attributs :
      google.subject=assertion.sub,
      google.groups=assertion.group1,
      attribute.costcenter=assertion.costcenter
      Cet exemple mappe les attributs de fournisseur d'identité subject, group1 et costcenter dans l'assertion OIDC avec les attributs google.subject, google.groups et attribute.costcenter, respectivement.
    • ATTRIBUTE_CONDITION : une condition d'attribut. Par exemple  assertion.role == 'gcp-users'. Cet exemple de condition garantit que seuls les utilisateurs disposant du rôle gcp-users peuvent se connecter via ce fournisseur.
    • JWK_JSON_PATH : chemin d'accès facultatif aux JWK OIDC importées localement. Si ce paramètre n'est pas spécifié, Google Cloud utilise à la place le chemin /.well-known/openid-configuration de votre IdP pour obtenir les JWK contenant les clés publiques. Pour en savoir plus sur les JWK OIDC importées localement, consultez la page Gérer les JWK OIDC.
    Dans la réponse de la commande, POOL_RESOURCE_NAME correspond au nom du pool, par exemple locations/global/workforcePools/enterprise-example-organization-employees.

    Flux implicite

    Pour créer un fournisseur OIDC qui utilise le flux implicite pour la connexion Web, exécutez la commande suivante :

    gcloud iam workforce-pools providers create-oidc PROVIDER_ID \
        --workforce-pool=WORKFORCE_POOL_ID \
        --display-name="DISPLAY_NAME" \
        --description="DESCRIPTION" \
        --issuer-uri="ISSUER_URI" \
        --client-id="OIDC_CLIENT_ID" \
        --web-sso-response-type="id-token" \
        --web-sso-assertion-claims-behavior="only-id-token-claims" \
        --web-sso-additional-scopes="WEB_SSO_ADDITIONAL_SCOPES" \
        --attribute-mapping="ATTRIBUTE_MAPPING" \
        --attribute-condition="ATTRIBUTE_CONDITION" \
        --jwk-json-path="JWK_JSON_PATH" \
        --location=global
    

    Remplacez les éléments suivants :

    • PROVIDER_ID : ID de fournisseur unique. Le préfixe gcp- est réservé et ne peut pas être utilisé dans un ID de pool ou de fournisseur.
    • WORKFORCE_POOL_ID : ID du pool d'identités des employés auquel connecter votre fournisseur d'identité.
    • DISPLAY_NAME : nom à afficher convivial et facultatif pour le fournisseur. Par exemple : idp-eu-employees.
    • DESCRIPTION : description facultative du fournisseur de personnel. Par exemple : IdP for Partner Example Organization employees.
    • ISSUER_URI : URI de l'émetteur OIDC, dans un format d'URI valide, commençant par https. Exemple : https://example.com/oidc. Remarque : Pour des raisons de sécurité, ISSUER_URI doit utiliser le schéma HTTPS.
    • OIDC_CLIENT_ID : ID client OIDC enregistré auprès de votre fournisseur d'identité OIDC. L'ID doit correspondre à la revendication aud du JWT émis par votre fournisseur d'identité.
    • WEB_SSO_ADDITIONAL_SCOPES : champs d'application supplémentaires facultatifs à envoyer au fournisseur d'identité OIDC pour la connexion basée sur le navigateur, via la console (fédération) ou via gcloud CLI.
    • ATTRIBUTE_MAPPING : mappage d'attributs. Voici un exemple de mappage d'attributs :
      google.subject=assertion.sub,
      google.groups=assertion.group1,
      attribute.costcenter=assertion.costcenter
      Cet exemple mappe les attributs de fournisseur d'identité subject, group1 et costcenter dans l'assertion OIDC avec les attributs google.subject, google.groups et attribute.costcenter, respectivement.
    • ATTRIBUTE_CONDITION : une condition d'attribut. Par exemple  assertion.role == 'gcp-users'. Cet exemple de condition garantit que seuls les utilisateurs disposant du rôle gcp-users peuvent se connecter via ce fournisseur.
    • JWK_JSON_PATH : chemin d'accès facultatif aux JWK OIDC importées localement. Si ce paramètre n'est pas spécifié, Google Cloud utilise à la place le chemin /.well-known/openid-configuration de votre IdP pour obtenir les JWK contenant les clés publiques. Pour en savoir plus sur les JWK OIDC importées localement, consultez la page Gérer les JWK OIDC.
    Dans la réponse de la commande, POOL_RESOURCE_NAME correspond au nom du pool, par exemple locations/global/workforcePools/enterprise-example-organization-employees.

    Le préfixe gcp- est réservé et ne peut pas être utilisé dans un ID de pool ou de fournisseur.

    Pour la fédération OIDC, vous pouvez utiliser assertion.NAME : une chaîne égale à la valeur de la revendication portant le même nom dans la charge utile du jeton d'ID.

Créer un fournisseur de pools de personnel SAML

  1. Dans votre fournisseur d'identité SAML, enregistrez une nouvelle application pour la fédération d'identité de personnel Google Cloud.

  2. Définissez la cible des assertions SAML. Il s'agit généralement du champ SP Entity ID de la configuration de votre fournisseur d'identité. Vous devez la définir sur l'URL suivante :

    https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID
    
  3. Si vous envisagez de configurer l'accès des utilisateurs à la console, dans votre IdP SAML, définissez l'URL de redirection ou le champ d'URL ACS (Assertion Consumer Service) sur l'URL suivante :

    https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
    

    Pour en savoir plus sur la configuration de la connexion à la console, consultez la section Configurer l'accès utilisateur à la console.

  4. Dans Google Cloud, créez un fournisseur de pools d'identités de personnel SAML en utilisant le document de métadonnées SAML de votre fournisseur d'identité. Vous pouvez télécharger le document XML des métadonnées SAML à partir de votre fournisseur d'identité. Ce document doit au moins inclure les éléments suivants :

    • Un ID d'entité SAML pour votre fournisseur d'identité.
    • L'URL d'authentification unique de votre fournisseur d'identité.
    • Une ou plusieurs clés publiques de signature. Pour plus d'informations sur les clés de signature, consultez la section Exigences relatives aux clés plus loin dans le présent guide.

Console

Pour configurer le fournisseur SAML à l'aide de la console Google Cloud, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Pools d'identités de personnel :

    Accéder aux pools d'identités de personnel

  2. Dans le tableau Pools d'identités de personnel, sélectionnez le pool pour lequel vous souhaitez créer le fournisseur.

  3. Dans le tableau Fournisseurs, cliquez sur Ajouter un fournisseur.

  4. Dans Sélectionner un protocole, sélectionnez SAML.

  5. Dans Créer un fournisseur de pools, procédez comme suit :

    1. Dans Nom, saisissez un nom pour le fournisseur.

    2. Facultatif : Dans le champ Description, saisissez une description du fournisseur.

    3. Dans Fichier de métadonnées IdP (XML), sélectionnez le fichier XML de métadonnées que vous avez généré précédemment dans ce guide.

    4. Assurez-vous que l'option fournisseur activé est activée.

    5. Cliquez sur Continuer.

  6. Dans Configurer le fournisseur, procédez comme suit :

    1. Dans Mappage des attributs, saisissez une expression CEL pour google.subject.

    2. Facultatif : Pour définir d'autres mappages, cliquez sur Ajouter un mappage et saisissez d'autres mappages. Par exemple :

      google.subject=assertion.subject,
      google.groups=assertion.attributes['https://example.com/aliases'],
      attribute.costcenter=assertion.attributes.costcenter[0]
      Cet exemple mappe les attributs IdP assertion.subject, assertion.attributes['https://example.com/aliases'] et assertion.attributes.costcenter[0] sur les attributs Google Cloud google.subject, google.groups et google.costcenter, respectivement.

    3. Facultatif : pour ajouter une condition d'attribut, cliquez sur Ajouter une condition, puis saisissez une expression CEL représentant une condition d'attribut. Par exemple, pour limiter l'attribut ipaddr à une certaine plage d'adresses IP, vous pouvez définir la condition assertion.attributes.ipaddr.startsWith('98.11.12.'). Cet exemple de condition garantit que seuls les utilisateurs dont l'adresse IP commence par 98.11.12. peuvent se connecter en utilisant ce fournisseur de personnel.

    4. Cliquez sur Continuer.

  7. Pour créer le fournisseur, cliquez sur Envoyer.

gcloud

Pour configurer le fournisseur SAML en utilisant gcloud CLI, procédez comme suit :

  gcloud iam workforce-pools providers create-saml PROVIDER_ID \
      --workforce-pool=WORKFORCE_POOL_ID \
      --display-name="DISPLAY_NAME" \
      --description="DESCRIPTION" \
      --idp-metadata-path=METADATA_FILE_PATH \
      --attribute-mapping="ATTRIBUTE_MAPPING" \
      --attribute-condition="ATTRIBUTE_CONDITION" \
      --location=global

Remplacez les éléments suivants :

  • PROVIDER_ID : ID du fournisseur
  • WORKFORCE_POOL_ID : ID du pool
  • DISPLAY_NAME est le nom à afficher du fournisseur. Par exemple : idp-eu-employees.
  • DESCRIPTION : description du fournisseur de pool d'identités de personnel. Par exemple : IdP for Partner Example Organization EU employees.
  • METADATA_FILE_PATH : chemin d'accès aux métadonnées SAML.
  • ATTRIBUTE_MAPPING : mappage d'attributs. Exemple :

    google.subject=assertion.subject,
    google.groups=assertion.attributes['https://example.com/aliases'],
    attribute.costcenter=assertion.attributes.costcenter[0]
    Cet exemple mappe les attributs IdP assertion.subject, assertion.attributes['https://example.com/aliases'] et assertion.attributes.costcenter[0] sur les attributs Google Cloud google.subject, google.groups et google.costcenter, respectivement.

  • ATTRIBUTE_CONDITION : condition d'attribut. Par exemple, pour limiter l'attribut ipaddr à une certaine plage d'adresses IP, vous pouvez définir la condition assertion.attributes.ipaddr.startsWith('98.11.12.'). Cet exemple de condition garantit que seuls les utilisateurs dont l'adresse IP commence par 98.11.12. peuvent se connecter en utilisant ce fournisseur de personnel.

Vous devrez peut-être patienter quelques minutes avant que le fournisseur ne commence à accepter les requêtes.

Pour la fédération SAML, vous pouvez utiliser les mots clés suivants dans les mappages et conditions d'attributs :

  • assertion.subject : chaîne égale à l'attribut NameID de l'assertion SAML.
  • assertion.attributes.NAME : liste de chaînes égale aux valeurs des attributs portant le même nom dans l'assertion SAML.

Facultatif : accepter les assertions SAML chiffrées provenant de votre fournisseur d'identité

Pour permettre à votre fournisseur d'identité SAML 2.0 de produire des assertions SAML chiffrées pouvant être acceptées par la fédération des identités des employés, procédez comme suit :

  • Dans la fédération des identités des employés, procédez comme suit :
    • Créez une paire de clés asymétriques pour votre fournisseur de pools d'identités de personnel.
    • Téléchargez un fichier de certificat contenant la clé publique.
    • Configurez votre fournisseur d'identité SAML pour qu'il utilise la clé publique pour chiffrer les assertions SAML émises.
  • Dans votre fournisseur d'identité, procédez comme suit :
    • Activer le chiffrement des assertions, également appelé chiffrement de jeton.
    • Importez la clé publique que vous avez créée dans la fédération des identités des employés.
    • Vérifiez que votre fournisseur d'identité génère des assertions SAML chiffrées.
Notez que, même avec les clés de fournisseur de chiffrement SAML configurées, la fédération des identités des employés peut toujours traiter une assertion en texte brut.

Créer des clés de chiffrement d'assertion SAML pour la fédération des identités des employés

Cette section vous guide dans la création d'une paire de clés asymétriques permettant à la fédération des identités des employés d'accepter les assertions SAML chiffrées.

Google Cloud utilise la clé privée pour déchiffrer les assertions SAML émises par votre fournisseur d'identité. Pour créer une paire de clés asymétriques à utiliser avec le chiffrement SAML, exécutez la commande suivante. Pour en savoir plus, consultez la page Algorithmes de chiffrement SAML compatibles.

gcloud iam workforce-pools providers keys create KEY_ID \
    --workforce-pool WORKFORCE_POOL_ID \
    --provider PROVIDER_ID \
    --location global \
    --use encryption \
    --spec KEY_SPECIFICATION

Remplacez les éléments suivants :

  • KEY_ID : nom de la clé de votre choix
  • WORKFORCE_POOL_ID : ID du pool
  • PROVIDER_ID : ID du fournisseur
  • KEY_SPECIFICATION : spécification de clé, qui peut être rsa-2048, rsa-3072 ou rsa-4096.

Une fois la paire de clés créée, pour télécharger la clé publique dans un fichier de certificat, exécutez la commande suivante. Seule la fédération des identités des employés a accès à la clé privée.

gcloud iam workforce-pools providers keys describe KEY_ID \
    --workforce-pool WORKFORCE_POOL_ID \
    --provider PROVIDER_ID \
    --location global \
    --format "value(keyData.key)" \
    > CERTIFICATE_PATH

Remplacez les éléments suivants :

  • KEY_ID : nom de la clé
  • WORKFORCE_POOL_ID : ID du pool
  • PROVIDER_ID : ID du fournisseur
  • CERTIFICATE_PATH : chemin d'accès dans lequel écrire le certificat (par exemple, saml-certificate.cer ou saml-certificate.pem)

Configurer votre fournisseur d'identité compatible avec SAML 2.0 pour émettre des assertions SAML chiffrées

Configurez votre fournisseur d'identité SAML pour utiliser le certificat public téléchargé à la dernière étape afin de chiffrer les assertions SAML qu'il émet. Consultez l'équipe de votre fournisseur d'identité pour obtenir des instructions spécifiques.

Après avoir configuré votre fournisseur d'identité pour chiffrer les assertions SAML, nous vous recommandons de vérifier que les assertions générées sont bien chiffrées. Même si le chiffrement des assertions SAML est configuré, la fédération des identités des employés peut toujours traiter les assertions en texte brut.

Supprimer des clés de chiffrement de fédération des identités des employés

Pour supprimer les clés de chiffrement SAML, exécutez la commande suivante :
  gcloud iam workforce-pools providers keys delete KEY_ID \
      --workforce-pool WORKFORCE_POOL_ID \
      --provider PROVIDER_ID \
      --location global

Remplacez les éléments suivants :

  • KEY_ID : nom de la clé
  • WORKFORCE_POOL_ID : ID du pool
  • PROVIDER_ID : ID du fournisseur

Algorithmes de chiffrement SAML compatibles

La fédération des identités des employés est compatible avec les algorithmes de transport de clés suivants :

La fédération des identités des employés est compatible avec les algorithmes de chiffrement de bloc suivants :

Exigences concernant les clés de signature SAML X.509

Les spécifications de clé suivantes s'appliquent aux clés de signature SAML X.509 :

  • Une clé publique RSA encapsulée dans un certificat X.509 v3.

  • Exigences de validité des certificats :

    • notBefore : horodatage pour les 7 prochains jours
    • notAfter : horodatage pour les 20 prochaines années
  • Algorithmes recommandés :

Un fournisseur de pools d'identités de personnel ne peut être configuré qu'avec un maximum de trois clés de signature. Lorsque plusieurs clés existent, Google Cloud les parcourt et tente d'utiliser chaque clé non expirée pour répondre à une requête d'échange de jetons.

Pour des raisons de sécurité, nous vous recommandons vivement de ne pas réutiliser la même paire de clés avec d'autres services.

Gestion des clés

Pour mettre à jour les clés de signature de votre fournisseur d'identité, procédez comme suit :

  1. Créez une paire de clés asymétriques et configurez le fournisseur d'identité SAML avec la paire de clés. Vous devez d'abord la marquer comme inactive, puis l'activer ultérieurement.

  2. Téléchargez un document XML de métadonnées SAML à partir de votre fournisseur d'identité.

  3. Mettez à jour la ressource du fournisseur de pool d'identités de personnel à l'aide du document de métadonnées SAML. Lorsque plusieurs clés existent, Google Cloud les parcourt et tente d'utiliser chaque clé non expirée pour répondre à une requête d'échange de jetons.

    Pour mettre à jour le fournisseur de pools d'identité de personnel avec les métadonnées SAML, exécutez la commande suivante.

    gcloud iam workforce-pools providers update-saml PROVIDER_ID \
        --workforce-pool=WORKFORCE_POOL_ID \
        --idp-metadata-path=SAML_METADATA_FILE_PATH \
        --location=global
    

    Remplacez les éléments suivants :

    • PROVIDER_ID : ID du fournisseur
    • WORKFORCE_POOL_ID : ID du pool d'identités de personnel
    • SAML_METADATA_FILE_PATH : chemin d'accès au fichier de métadonnées SAML
  4. Attendez la fin de l'opération renvoyée à l'étape précédente (l'opération doit être marquée comme terminée), puis activez la nouvelle clé de signature dans votre fournisseur d'identité SAML. L'ancienne clé de signature est marquée comme inactive. Les assertions émises par votre fournisseur d'identité sont signées à l'aide de la nouvelle clé.

Bien que facultatives, les étapes suivantes sont des bonnes pratiques que nous vous recommandons de suivre :

  1. Supprimez l'ancienne clé de signature (désormais inactive) de votre fournisseur d'identité.
  2. Téléchargez le document XML des métadonnées SAML à partir de votre fournisseur d'identité.
  3. Mettez à jour la ressource du fournisseur de pool d'identités de personnel à l'aide du document de métadonnées SAML. Google Cloud refuse les assertions signées avec la clé de signature arrivée à expiration. Pour mettre à jour le document, exécutez la commande suivante :

    gcloud iam workforce-pools providers update-saml PROVIDER_ID \
        --workforce-pool=WORKFORCE_POOL_ID \
        --idp-metadata-path=SAML_METADATA_FILE_PATH \
        --location=global
    

    Remplacez les éléments suivants :

    • PROVIDER_ID : ID du fournisseur
    • WORKFORCE_POOL_ID : ID du pool d'identités de personnel
    • SAML_METADATA_FILE_PATH : chemin d'accès aux métadonnées SAML

Contrainte de suppression de clé

Google Cloud refuse les assertions signées à l'aide d'une clé supprimée.

Représenter les utilisateurs de pools de personnel dans les stratégies IAM

Le tableau suivant présente les identifiants principaux utilisables pour attribuer des rôles à un seul utilisateur, à un groupe d'utilisateurs, à des utilisateurs porteurs d'une revendication spécifique ou à tous les utilisateurs d'un pool de personnel.

Identités Format d'identifiant
Identité unique d'un pool d'identités de personnel principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/SUBJECT_ATTRIBUTE_VALUE
Toutes les identités de personnel d'un groupe principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/group/GROUP_ID
Toutes les identités de personnel porteuses d'une valeur d'attribut spécifique principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
Toutes les identités d'un pool d'identités de personnel principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/*

Attribuer des rôles IAM aux comptes principaux

Vous pouvez attribuer des rôles aux comptes principaux, par exemple à des identités uniques, des groupes d'identités ou un pool entier.

Pour attribuer un rôle sur un projet à un compte principal, exécutez la commande suivante :

gcloud projects add-iam-policy-binding PROJECT_ID \
    --role="ROLE" \
    --member="PRINCIPAL"

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet
  • ROLE : rôle à définir
  • PRINCIPAL : compte principal. Consultez la section Identifiants principaux pour la fédération des identités des employés.

Dans l'exemple suivant, la commande accorde le rôle d'administrateur Storage (roles/storage.admin) à toutes les identités du groupe GROUP_ID :

gcloud projects add-iam-policy-binding my-project \
    --role="roles/storage.admin" \
    --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"

Pour en savoir plus sur le format de compte principal, consultez la section Identifiants principaux de la fédération d'identité de personnel.

Supprimer des comptes utilisateur

La fédération d'identité de personnel crée des métadonnées et des ressources utilisateur pour les identités des utilisateurs fédérées. Si, par exemple, vous choisissez de supprimer des utilisateurs dans votre IdP, vous devez également supprimer explicitement ces ressources dans Google Cloud. Pour ce faire, consultez Supprimer des utilisateurs de la fédération d'identité des employés et leurs données.

Il est possible que des ressources continuent d'être associées à un utilisateur qui a été supprimé. En effet, la suppression de métadonnées et de ressources utilisateur nécessite une opération de longue durée. Une fois que vous avez lancé la suppression de l'identité d'un utilisateur, les processus lancés par l'utilisateur avant la suppression peuvent continuer à s'exécuter jusqu'à ce qu'ils soient terminés ou annulés.

Étape suivante