Résoudre les problèmes liés à la fédération des identités des employés

Cette page explique comment résoudre les problèmes courants liés à la fédération des identités des employés.

Inspecter la réponse du fournisseur d'identité

Cette section explique comment inspecter la réponse de votre fournisseur d'identité (IdP) pour résoudre les problèmes mentionnés dans ce document.

Connexion basée sur un navigateur

Pour inspecter la réponse renvoyée par votre IdP, générez un fichier HAR à l'aide de l'outil de votre choix. Par exemple, vous pouvez utiliser l'outil d'analyse HAR de Google Admin Toolbox, qui fournit des instructions pour générer un fichier HAR ainsi que les outils pour l'importer et l'analyser.

SAML

Pour inspecter la réponse du fournisseur d'identité SAML, procédez comme suit :

  1. Recherchez la valeur du paramètre de requête SAMLResponse dans le fichier HAR enregistré au niveau de l'URL avec le chemin /signin-callback.
  2. Décodez-la à l'aide d'un outil de votre choix, comme par exemple l'outil Encode/Decode de Google Admin Toolbox.

OIDC

Pour inspecter la réponse du fournisseur d'identité OIDC, procédez comme suit : Cette approche ne fonctionne pas avec le flux de code.

  1. Recherchez la valeur du paramètre de requête id_token dans le fichier HAR enregistré au niveau de l'URL avec le chemin /signin-callback.
  2. Décodez-le à l'aide de l'outil de débogage JWT de votre choix.

CLI gcloud

Pour inspecter la réponse de votre IdP lorsque vous utilisez gcloud CLI, copiez le contenu du fichier que vous avez transmis dans l'option --credential-source-file lors de l'exécution de la commande gcloud iam workforce-pools create-cred-config, puis procédez comme suit:

SAML

Décodez la réponse du fournisseur d'identité SAML à l'aide d'un outil de votre choix, comme par exemple l'outil Encode/Decode de Google Admin Toolbox.

OIDC

Décodez la réponse du fournisseur d'identité OIDC à l'aide d'un outil de débogage JWT de votre choix.

Consulter les journaux

Pour déterminer si Google Cloud communique avec votre IdP, et vérifier les informations sur les transactions, vous pouvez consulter les journaux Cloud Audit Logs. Pour afficher des exemples de journaux, consultez la page Exemples de journaux d'audit.

Erreurs de gestion de pools d'employés et de fournisseurs

Cette section fournit des suggestions permettant de résoudre les erreurs courantes que vous pourriez rencontrer lors de la gestion de pools et de fournisseurs.

Autorisation refusée

Cette erreur se produit lorsque l'utilisateur qui tente de configurer la fédération des identités des employés ne dispose pas du rôle IAM d'administrateur de pools d'employés (roles/iam.workforcePoolAdmin).

INVALID_ARGUMENT : configuration de l'authentification unique Web OIDC manquante

L'erreur suivante se produit lorsque les champs web-sso-response-type et web-sso-assertion-claims-behavior ne sont pas définis lors de la création d'un fournisseur de pools d'identités des employés OIDC :

ERROR: (gcloud.iam.workforce-pools.providers.create-oidc) INVALID_ARGUMENT: Missing OIDC web single sign-on config.

Pour résoudre cette erreur, suivez les étapes décrites dans la section Créer un fournisseur pour définir les champs de manière appropriée lorsque vous créez le fournisseur de pools d'identités des employés OIDC.

Limite de débit dépassée. Veuillez réessayer plus tard.

Cette erreur se produit lorsque vous avez atteint votre limite de quota pour les ressources de pool d'employés. Contactez votre responsable de compte Google Cloud pour demander une augmentation de quota.

Erreurs de connexion

Cette section fournit des suggestions permettant de résoudre les erreurs courantes qu'un utilisateur de la fédération des identités des employés peut rencontrer lorsqu'il se connecte.

Erreurs de connexion courantes

L'identifiant donné est rejeté par la condition d'attribut

Cette erreur se produit lorsque la condition d'attribut définie sur le fournisseur de pool d'identité des employés n'a pas été respectée.

Par exemple, considérons la condition d'attribut suivante :

SAML

'gcp-users' in assertion.attributes.groups

OIDC

'gcp-users' in assertion.groups

Dans ce cas, l'erreur s'affiche si la liste des groupes envoyés dans l'attribut groups par votre fournisseur d'identité (IdP) ne contient pas gcp-users.

Pour résoudre cette erreur, procédez comme suit :

  1. Décrivez le fournisseur utilisé pour vous connecter et vérifiez que attributeCondition est correct. Pour en savoir plus sur les opérations compatibles dans les conditions, consultez la section Définition de langage.

  2. Suivez la procédure décrite dans la section Inspecter la réponse du fournisseur d'identité pour afficher les attributs renvoyés par le fournisseur d'identité, et vérifiez si la condition d'attribut est juste et correctement formée.

  3. Connectez-vous à la console d'administration de votre IdP et vérifiez si les attributs IdP référencés dans la condition d'attribut sont correctement configurés. Si nécessaire, consultez la documentation de votre fournisseur d'identité.

L'attribut mappé doit être de type STRING

Cette erreur se produit pour un fournisseur de pools d'identités des employés SAML lorsque l'attribut spécifié dans le message d'erreur est censé être une chaîne à valeur unique, mais qu'il est mappé à une liste dans le mappage des attributs.

Prenons l'exemple d'un fournisseur de pools d'identités des employés SAML disposant du mappage d'attributs attribute.role=assertion.attributes.userRole. Dans une assertion SAML, un Attribute peut comporter plusieurs tags AttributeValue, comme illustré dans l'exemple suivant. Par conséquent, tous les attributs SAML sont considérés comme des listes, donc assertion.attributes.userRole est une liste.

<saml:Attribute Name="userRole">
    <saml:AttributeValue>
      security-admin
    </saml:AttributeValue>
    <saml:AttributeValue>
      user
    </saml:AttributeValue>
</saml:Attribute>

Dans cet exemple, l'erreur suivante peut s'afficher :

The mapped attribute 'attribute.role' must be of type STRING

Pour résoudre ce problème, procédez comme suit :

  1. Décrivez le fournisseur utilisé pour vous connecter et identifiez l'attribut IdP défini dans le fichier attributeMapping. Vérifiez l'attribut en le comparant à l'attribut présenté dans le message d'erreur. Dans l'exemple précédent, un attribut IdP appelé userRole est mappé à l'attribut role, et l'attribut role apparaît dans l'exemple d'erreur ci-dessus.

  2. Suivez les instructions ci-dessous pour mettre à jour le mappage des attributs :

    • Si l'attribut à l'origine de l'erreur est de type liste, identifiez un autre attribut valable, stable et de type chaîne. Ensuite, mettez à jour le mappage d'attributs de façon à l'utiliser en référençant son premier élément. Dans l'exemple précédent, si myRole était identifié comme étant l'attribut IdP à valeur unique de substitution, le mappage d'attributs serait le suivant :

      attribute.role=assertion.attributes.myRole[0]
      
    • Si l'attribut est connu pour être à valeur unique, vous pouvez également mettre à jour le mappage d'attributs pour utiliser le premier élément de la liste. Pour l'exemple précédent, si userRole ne contient qu'un seul rôle, vous pouvez utiliser le mappage suivant :

      attribute.role=assertion.attributes.userRole[0]
      
    • Pour vous aider à sélectionner un identifiant de substitution stable et à valeur unique dans la liste, consultez la section Définition de langage et mettez à jour le mappage d'attributs en conséquence.

Consultez la section Inspecter la réponse du fournisseur d'identité pour voir la réponse renvoyée par le fournisseur d'identité.

Impossible d'obtenir une valeur pour google.subject à partir des identifiants fournis

Cette erreur se produit lorsque la revendication requise google.subject n'a pas pu être mappée à l'aide du mappage d'attributs que vous avez défini dans votre configuration de fournisseur de pools d'identités des employés.

Pour résoudre cette erreur, procédez comme suit :

  1. Décrivez le fournisseur et inspectez l'élément attributeMapping. Identifiez le mappage configuré pour google.subject. Si le mappage est incorrect, mettez à jour le fournisseur de pools d'identités des employés.

  2. Consultez la section Inspecter la réponse du fournisseur d'identité pour voir la réponse renvoyée par le fournisseur d'identité. Inspectez la valeur de l'attribut à partir de la réponse du fournisseur d'identité mappée à google.subject dans vos mappages d'attributs.

    Si la valeur est vide ou incorrecte, connectez-vous à la console d'administration de votre IdP et inspectez les attributs configurés. Pour les attributs, vérifiez si l'utilisateur concerné dispose des données correspondantes dans votre IdP. Mettez à jour la configuration de votre IdP pour corriger les attributs ou les informations utilisateur en conséquence.

  3. Essayez de vous connecter à nouveau.

400. Il s'agit d'une erreur

Cette erreur se produit lorsque la requête n'a pas été reçue comme prévu ou qu'elle était incorrecte.

Pour résoudre cette erreur, procédez comme suit :

  1. Suivez les étapes de la section Indiquer à vos utilisateurs comment se connecter pour vérifier si vous suivez la bonne procédure de connexion.

  2. Comparez votre configuration de fournisseur de pools d'identités des employés avec votre configuration d'IdP.

Erreurs de connexion OIDC

Cette section fournit des suggestions permettant de résoudre les erreurs spécifiques à OIDC qu'un utilisateur de la fédération des identités des employés peut rencontrer lorsqu'il se connecte.

Erreur lors de la connexion à l'émetteur de l'identifiant donné

Cette erreur se produit lorsqu'un fournisseur de pools d'identités des employés OIDC ne parvient pas à atteindre le document de découverte OIDC ou l'URI JWKS.

Pour résoudre cette erreur, procédez comme suit :

  1. Décrivez le fournisseur et inspectez l'élément issuerUri configuré. Créez l'URL du document de découverte en ajoutant /.well-known/openid-configuration à votre URI d'émetteur. Par exemple, si votre issuerUri est https://example.com, l'URL du document de découverte sera https://example.com/.well-known/openid-configuration.

  2. Ouvrez l'URL du document de découverte dans une fenêtre de navigation privée.

    1. Si l'URL ne s'ouvre pas ou si le navigateur affiche une erreur 404, consultez la documentation de votre fournisseur d'identité pour identifier l'URI d'émetteur approprié. Si nécessaire, mettez à jour le issuerUri dans votre fournisseur de pools d'identités d'employés.

      Si votre fournisseur d'identité s'exécute sur site, consultez la documentation de votre IdP afin de le provisionner pour l'accès via Internet.

    2. Si l'URL s'ouvre, vérifiez les conditions suivantes :

      1. Vérifiez que l'URL ne redirige pas trop de fois avant de diffuser le document de découverte. Si tel est le cas, contactez l'administrateur de votre IdP pour résoudre le problème.
      2. Vérifiez le temps de réponse du fournisseur d'identité. Consultez votre administrateur IdP pour réduire la latence de réponse.
      3. Le document de découverte ouvert doit être au format JSON.
      4. Recherchez un champ jwks_uri dans le fichier JSON.

        1. Vérifiez que la valeur d'URL associée s'ouvre également.
        2. Vérifiez que l'URL remplit les conditions décrites précédemment dans ce guide.
    3. Essayez de vous connecter à nouveau.

Erreurs de connexion SAML

Cette section fournit des suggestions permettant de résoudre les erreurs spécifiques à SAML qu'un utilisateur de la fédération des identités des employés peut rencontrer lorsqu'il se connecte.

Échec de validation de la signature dans SAMLResponse

Cette erreur se produit pour un fournisseur de pools d'identités des employés SAML lorsque la signature sur la réponse IdP ne peut être validée par aucun des certificats X.509 fournis dans le fichier XML de métadonnées IdP que vous avez configuré dans votre fournisseur de pools d'identités des employés. Cette erreur est souvent due à la rotation du certificat de validation de votre IdP alors que vous n'avez pas mis à jour la configuration du fournisseur de pools d'identités des employés avec le dernier fichier XML de métadonnées IdP.

Pour résoudre cette erreur, procédez comme suit :

  1. Facultatif : suivez la procédure décrites dans la section Inspecter la réponse du fournisseur d'identité pour voir la réponse renvoyée par le fournisseur d'identité et localiser le champ X509Certificate. Décrivez le fournisseur que vous avez utilisé pour vous connecter et inspectez le champ X509Certificate présent dans la valeur idpMetadataXml définie sur le fournisseur de pools d'identités des employés. Comparez le certificat à celui vu dans la réponse renvoyée par votre IdP. Les certificats doivent correspondre.

  2. Connectez-vous à la console d'administration de votre IdP et téléchargez le dernier XML de métadonnées.

  3. Mettez à jour le fournisseur de pools d'identités des employés avec le XML de métadonnées IdP téléchargé.

  4. Essayez de vous connecter à nouveau.

Le destinataire de l'assertion SAML n'est pas défini sur l'URL ACS appropriée

Cette erreur se produit pour un fournisseur de pools d'identités des employés SAML lorsque la réponse du fournisseur d'identité contient une valeur incorrecte pour le champ Recipient sur le tag SubjectConfirmationData.

Pour résoudre cette erreur, mettez à jour le champ Recipient URL / Redirect URL, ou le champ équivalent dans la configuration de votre IdP, afin d'utiliser l'URL de redirection décrite dans la section Configurer des URL de redirection dans votre fournisseur d'identité, puis essayez de vous connecter à nouveau.

Suivez la procédure décrite dans la section inspecter la réponse du fournisseur d'identité pour voir la réponse renvoyée, et vérifiez que le champ Recipient est correct.

Par exemple, pour le fournisseur de pools d'identités des employés locations/global/workforcePools/example-pool/providers/example-provider, le Recipient contenant l'URL de redirection apparaît comme suit dans la réponse SAML du fournisseur d'identité :

<SubjectConfirmationData Recipient="https://auth.cloud.google/signin-callback/locations/global/workforcePools/example-pool/providers/example-provider"

La destination SAMLResponse ne correspond pas à l'URL de rappel RP

Cette erreur se produit pour un fournisseur de pools d'identités des employés SAML lorsque la réponse du fournisseur d'identité contient une valeur incorrecte pour le champ Destination sur le tag Response.

Pour résoudre cette erreur, mettez à jour le champ Destination URL / Redirect URL, ou le champ équivalent dans la configuration de votre IdP, afin d'utiliser l'URL de redirection décrite dans la section Configurer des URL de redirection dans votre fournisseur d'identité.

Suivez la procédure décrite dans la section inspecter la réponse du fournisseur d'identité pour voir la réponse renvoyée, et vérifiez que le champ Destination est correct.

Par exemple, pour un fournisseur de pools d'identités des employés locations/global/workforcePools/example-pool/providers/example-provider, le Destination contenant l'URL de redirection apparaîtra comme suit dans la réponse SAML du fournisseur d'identité :

<Response Destination="https://auth.cloud.google/signin-callback/locations/global/workforcePools/example-pool/providers/example-provider"

Assertion non valide : NameID manquant ou vide

Cette erreur se produit lorsque la réponse SAML reçue de votre fournisseur d'identité ne contient pas le champ NameId ou qu'il contient une valeur vide.

Pour résoudre cette erreur, consultez la documentation de votre IdP pour la configurer de façon à envoyer le NameID, qui est le sujet d'une assertion SAML, généralement l'utilisateur authentifié.

Suivez la procédure décrite dans la section Inspecter la réponse du fournisseur d'identité pour voir la réponse renvoyée par le fournisseur d'identité et le NameID qui a été défini.

Tous les <AudienceRestriction> doivent contenir l'ID d'entité RP SAML

Cette erreur se produit lorsque les tags AudienceRestriction de la réponse SAML de votre IdP ne définissent pas de tag Audience avec une valeur représentant l'ID d'entité du fournisseur de pools d'identités des employés.

Pour résoudre cette erreur, procédez comme suit :

  1. Consultez la documentation de votre IdP pour savoir comment configurer l'audience dans les tags AudienceRestriction qu'elle envoie dans la réponse SAML. En règle générale, l'audience est configurée en définissant le champ Entity ID ou Audience dans votre configuration d'IdP. Consultez la section Créer un fournisseur de pools d'identités des employés SAML pour connaître la valeur SP Entity ID à définir.

  2. Après avoir mis à jour votre configuration d'IdP, essayez de vous connecter à nouveau.

Suivez la procédure décrite dans la section Inspecter la réponse du fournisseur d'identité pour voir la réponse renvoyée par le fournisseur d'identité et les AudienceRestriction qui ont été définis.