En esta página se describen las soluciones a los errores habituales de federación de Workload Identity.
La API deGoogle Cloud no acepta la credencial emitida por SecurityTokenService
Los tokens de acceso devueltos por la API
SecurityTokenService
son tokens de acceso federados.
Aunque la mayoría de las APIs admiten la federación de identidades, es posible que algunos métodos de API tengan limitaciones. Google Cloud Para ver una lista de las limitaciones, consulta Federación de identidades: productos y limitaciones.
Si te encuentras con el siguiente error, puede que estés intentando usar un token de acceso federado con un servicio que no los admite.
{
"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",
}
}
Para solucionar este error, cambia el token de acceso federado por un token de acceso sin restricciones llamando a GenerateAccessToken
.
Para obtener más información, consulta Obtener credenciales de duración reducida con la federación de identidades.
Incluir en una lista de permitidos un proveedor de identidades para usarlo con la federación de identidades de cargas de trabajo
Si intentas configurar un proveedor de identidades no permitido como proveedor de grupos de identidades de carga de trabajo, se producirá el siguiente error:
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
Para solucionar este problema, siga las instrucciones que se indican en el artículo sobre cómo restringir la configuración del proveedor de identidades para añadir el proveedor de identidades a la lista de permitidos y usarlo con la federación de identidades de cargas de trabajo.
El JWK de entrada no tiene un formato JSON válido
Si estás configurando un proveedor de OIDC y recibes el error Input JWK is
not in a valid json format
, puede deberse a que Google Cloudno admite los endpoints protegidos con certificados autofirmados. En concreto, los campos x5c
y x5t
no se admiten y deben eliminarse del JWK de OIDC.
Para solucionar los problemas con tu JWK, haz lo siguiente:
Edita tu JWK y elimina los campos
x5c
(cadena de certificados X.509) yx5t
(huella digital SHA-1 del certificado X.509).{ "kty": "RSA", "use": "sig", "kid": "example-key-id", "alg": "RS256", "n": "base64url-modulus", "e": "AQAB" }
Verifica que los campos JWK restantes tengan el formato correcto, tal como se describe en la especificación de OIDC.
Configura el proveedor de OIDC con el JWK actualizado.
Error al conectar con el emisor de la credencial proporcionada
Si recibe el siguiente error, puede deberse a que Google Cloud no puede obtener el documento de metadatos OIDC o JWKS de su proveedor de identidades:
{
"error": "invalid_grant",
"error_description":"Error connecting to the given credential's issuer."
}
Este error suele producirse porque los endpoints no están configurados para que se pueda acceder a ellos desde Internet público. Para solucionar este error, compruebe que el endpoint de OIDC esté disponible públicamente y cumpla la especificación de OIDC. Para obtener más información, consulta Preparar el proveedor de identidades externo.
Si sigues recibiendo el error, comprueba que el emisor del token y la reclamación iss
del token sean correctos.
La reclamación google.subject asignada supera el límite de 127 bytes
Si recibe el siguiente error, significa que las credenciales entrantes recibidas por la API SecurityTokenService
generan una reclamación google.subject
que supera el límite de caracteres:
{
"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."
}
Para solucionar este problema, utilice la función extract
para quitar los caracteres innecesarios y extraer un identificador de asunto único de una
reclamación más larga. Por ejemplo:
google.subject=assertion.sub.extract('/users/{sub_claim}')
Error 429 Too Many Requests
Si recibes el error 429 Too Many Requests
al solicitar un token de la API SecurityTokenService
, significa que tu proyecto Google Cloud ha superado el límite de cuota de frecuencia de la API.
El error incluye un mensaje similar al siguiente:
{
"error": "quota_exceeded",
"error_description":"The request was throttled due to rate limit: sts.googleapis.com/requests. Please retry after a few seconds."
}
Para solucionar este problema, identifique el sts.googleapis.com/requests
nombre de la métrica
proporcionado en el mensaje de error, localice el nombre de la métrica correspondiente en la
página de cuotas de gestión de identidades y accesos, confirme
que el porcentaje de uso supera la cuota y solicite un aumento de la cuota.