Résoudre les problèmes liés à la fédération d'identités de charge de travail

Cette page décrit les solutions aux les erreurs courantes de fédération d'identités de charge de travail.

L'API Google Cloud n'accepte pas les identifiants émis par SecurityTokenService

Si vous rencontrez l'erreur suivante, il est possible que vous tentiez d'accéder directement à une API Google Cloud à l'aide d'un identifiant émis par SecurityTokenService plutôt que de l'avoir échangé contre un identifiant de compte de service.

{
  "error": {
    "code": 401,
    "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
    "status": "UNAUTHENTICATED",
  }
}

Pour résoudre cette erreur, échangez les identifiants générés à partir de SecurityTokenService contre un jeton de compte de service en appelant GenerateAccessToken. Pour en savoir plus, consultez la page Obtenir des identifiants éphémères avec la fédération d'identité.

Ajouter un fournisseur d'identité à la liste d'autorisation pour l'utiliser avec la fédération d'identité de charge de travail

Si vous tentez de configurer un fournisseur d'identité non autorisé en tant que fournisseur de pool d'identités de charge de travail, vous rencontrez l'erreur suivante :

FAILED_PRECONDITION: Precondition check failed.
- '@type': type.googleapis.com/google.rpc.PreconditionFailure
  violations:
  - description: "Org Policy violated for value: '{PROVIDER}'."
    subject: orgpolicy:projects/{PROJECT}/locations/global/workloadIdentityPools/{POOL}
    type: constraints/iam.workloadIdentityPoolProviders

Pour résoudre ce problème, suivez les instructions de la section Restreindre la configuration du fournisseur d'identité afin d'ajouter le fournisseur d'identité à la liste d'autorisation pour l'utiliser avec la fédération d'identité de charge de travail.

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

Si vous rencontrez l'erreur suivante, cela peut être dû au fait que Google Cloud ne parvient pas à récupérer le document de métadonnées OIDC de votre fournisseur d'identité ou JWKS :

{
  "error": "invalid_grant",
  "error_description":"Error connecting to the given credential's issuer."
 }

La cause de cette erreur est généralement le fait que les points de terminaison ne sont pas configurés pour être accessibles depuis l'Internet public. Pour la résoudre, vérifiez que le point de terminaison OIDC est accessible au public et conforme à la spécification OIDC. Pour en savoir plus, consultez la page Préparer le fournisseur d'identité externe.

Si vous continuez à recevoir cette erreur, vérifiez que l'émetteur du jeton, c'est-à-dire la revendication iss dans le jeton, est correct.