Nesta página, descrevemos as resoluções de erros comuns com a federação de identidade da carga de trabalho.
A APIGoogle Cloud não aceita a credencial emitida por SecurityTokenService
Os tokens de acesso retornados pela
API
SecurityTokenService
são
tokens de acesso federados.
Embora a maioria das APIs do Google Cloud seja compatível com a federação de identidade, alguns métodos de API podem ter limitações. Para ver uma lista de limitações, consulte
Federação de identidade: produtos e limitações.
Se você encontrar o seguinte erro, talvez esteja tentando usar um token de acesso federado com um serviço que não é compatível com eles.
{
"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 resolver esse erro, troque o token de acesso federado por um token de acesso
sem restrições chamando
GenerateAccessToken
.
Para mais informações, consulte Como receber credenciais de curta duração com federação de identidade.
Adicionar um provedor de identidade à lista de permissões para uso com a federação de identidade da carga de trabalho
Se você tentar configurar um provedor de identidades não permitido como um provedor de pool de identidades de carga de trabalho, encontrará o seguinte erro:
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 resolver esse problema, siga as instruções em Restringir a configuração do provedor de identidade para colocar o provedor de identidade na lista de permissões para uso com a federação de identidade da carga de trabalho.
A JWK de entrada não está em um formato JSON válido
Se você estiver configurando um provedor OIDC e receber o erro Input JWK is
not in a valid json format
, talvez seja porque os endpoints protegidos com certificados autoassinados não são compatíveis com Google Cloud. Especificamente, os campos x5c
e x5t
não são compatíveis e precisam ser removidos do JWK
OIDC.
Para resolver problemas com sua JWK, faça o seguinte:
Edite seu JWK e remova os campos
x5c
(cadeia de certificados X.509) ex5t
(impressão digital SHA-1 do certificado X.509).{ "kty": "RSA", "use": "sig", "kid": "example-key-id", "alg": "RS256", "n": "base64url-modulus", "e": "AQAB" }
Verifique se os campos restantes do JWK estão formatados corretamente, conforme descrito na especificação OIDC.
Configure o provedor OIDC com o JWK atualizado.
Erro ao se conectar ao emissor da credencial
Se você receber o seguinte erro, talvez seja porque Google Cloud não consegue buscar o documento de metadados OIDC ou JWKS do seu IdP:
{
"error": "invalid_grant",
"error_description":"Error connecting to the given credential's issuer."
}
Esse erro geralmente ocorre porque os endpoints não estão configurados para serem acessíveis pela Internet pública. Para resolver esse erro, verifique se o endpoint do OIDC está disponível publicamente e em conformidade com a especificação do OIDC. Para mais informações, consulte Como preparar o provedor de identidade externo.
Se você ainda receber o erro, verifique se o emissor do token e a declaração iss
estão corretos.
A declaração google.subject mapeada excede o limite de 127 bytes
Se você receber o seguinte erro, é porque as credenciais recebidas pela
API SecurityTokenService
geram uma declaração google.subject
que excede o limite 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 resolver esse problema, use a função extract
para remover caracteres desnecessários e extrair um identificador de assunto exclusivo de uma
declaração mais longa, por exemplo:
google.subject=assertion.sub.extract('/users/{sub_claim}')
Erro 429: há muitas solicitações
Se você receber o erro 429 Too Many Requests
ao solicitar um token da API SecurityTokenService
, isso significa que o projeto Google Cloud excedeu o limite de cota de taxa para a API.
O erro inclui uma mensagem semelhante a esta:
{
"error": "quota_exceeded",
"error_description":"The request was throttled due to rate limit: sts.googleapis.com/requests. Please retry after a few seconds."
}
Para resolver esse problema, identifique o nome da métrica sts.googleapis.com/requests
fornecido na mensagem de erro, localize o nome correspondente na página de cota do IAM, confirme se a porcentagem de uso excede a cota e solicite um aumento.