Cette page décrit les solutions aux erreurs courantes de la fédération d'identités de charge de travail.
L'APIGoogle Cloud n'accepte pas les identifiants émis par SecurityTokenService
Les jetons d'accès renvoyés par l'API SecurityTokenService
sont des jetons d'accès fédérés.
Bien que la plupart des API Google Cloud soient compatibles avec la fédération d'identité, certaines méthodes d'API peuvent présenter des limites. Pour obtenir la liste des limites, consultez Fédération des identités : produits et limites.
Si vous rencontrez l'erreur suivante, il est possible que vous tentiez d'utiliser un jeton d'accès fédéré avec un service qui ne les accepte pas.
{
"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 le jeton d'accès fédéré contre un jeton d'accès non restreint en appelant GenerateAccessToken
.
Pour en savoir plus, consultez 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.
Le JWK d'entrée n'est pas au format JSON valide
Si vous configurez un fournisseur OIDC et que vous recevez l'erreur Input JWK is
not in a valid json format
, cela peut être dû au fait que les points de terminaison sécurisés avec des certificats autosignés ne sont pas compatibles avec Google Cloud. Plus précisément, les champs x5c
et x5t
ne sont pas compatibles et doivent être supprimés du JWK OIDC.
Pour résoudre les problèmes liés à votre JWK, procédez comme suit :
Modifiez votre JWK et supprimez les champs
x5c
(chaîne de certificats X.509) etx5t
(empreinte numérique SHA-1 du certificat X.509).{ "kty": "RSA", "use": "sig", "kid": "example-key-id", "alg": "RS256", "n": "base64url-modulus", "e": "AQAB" }
Vérifiez que les champs JWK restants sont correctement formatés, comme décrit dans la spécification OIDC.
Configurez le fournisseur OIDC avec le JWK mis à jour.
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.
La revendication google.subject mappée dépasse la limite de 127 octets.
Si vous recevez l'erreur suivante, cela signifie que les identifiants entrants reçus par l'API SecurityTokenService
génèrent une revendication google.subject
qui dépasse la limite de caractères :
{
"error": "invalid_request",
"error_description":"The size of mapped attribute google.subject exceeds the 127 bytes limit. Either modify your attribute mapping or the incoming assertion to produce a mapped attribute that is less than 127 bytes."
}
Pour résoudre ce problème, utilisez la fonction extract
pour supprimer les caractères inutiles et extraire un identifiant de sujet unique d'une revendication plus longue, par exemple :
google.subject=assertion.sub.extract('/users/{sub_claim}')
Erreur 429 : Trop de requêtes
Si vous recevez l'erreur 429 Too Many Requests
lorsque vous demandez un jeton à l'API SecurityTokenService
, cela signifie que votre projet Google Cloud a dépassé sa limite de quota de débit pour l'API.
L'erreur inclut un message semblable à celui-ci :
{
"error": "quota_exceeded",
"error_description":"The request was throttled due to rate limit: sts.googleapis.com/requests. Please retry after a few seconds."
}
Pour résoudre ce problème, identifiez le nom de la métrique sts.googleapis.com/requests
fourni dans le message d'erreur, recherchez le nom de la métrique correspondante sur la page des quotas IAM, vérifiez que le pourcentage d'utilisation dépasse le quota, puis demandez une augmentation du quota.