Questa pagina descrive le soluzioni per gli errori comuni di federazione delle identità dei carichi di lavoro.
L'APIGoogle Cloud non accetta le credenziali emesse da SecurityTokenService
I token di accesso restituiti dall'API
SecurityTokenService
sono
token di accesso federati.
Sebbene la maggior parte delle API Google Cloud supporti la federazione delle identità, alcuni metodi API potrebbero presentare limitazioni. Per un elenco delle limitazioni, vedi
Federazione delle identità: prodotti e limitazioni.
Se si verifica il seguente errore, potresti tentare di utilizzare un token di accesso federato con un servizio che non li supporta.
{
"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",
}
}
Per risolvere questo errore, scambia il token di accesso federato con un token di accesso senza restrizioni chiamando
GenerateAccessToken
.
Per ulteriori informazioni, consulta Recupero delle credenziali di breve durata con la federazione delle identità.
Inserire un provider di identità nella lista consentita per l'utilizzo con la federazione delle identità per i carichi di lavoro
Se provi a configurare un provider di identità non consentito come provider del pool di identità del workload, viene visualizzato il seguente errore:
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
Per risolvere il problema, segui le istruzioni riportate in Limitare la configurazione del provider di identità per inserire il provider di identità nella lista consentita per l'utilizzo con la federazione delle identità per i carichi di lavoro.
L'input JWK non è in un formato JSON valido
Se stai configurando un provider OIDC e ricevi l'errore Input JWK is
not in a valid json format
, il problema potrebbe essere che gli endpoint protetti con
certificati autofirmati non sono supportati da Google Cloud. Nello specifico,
i campi x5c
e x5t
non sono supportati e devono essere rimossi da OIDC
JWK.
Per risolvere i problemi relativi al JWK:
Modifica il JWK e rimuovi i campi
x5c
(catena di certificati X.509) ex5t
(impronta SHA-1 del certificato X.509).{ "kty": "RSA", "use": "sig", "kid": "example-key-id", "alg": "RS256", "n": "base64url-modulus", "e": "AQAB" }
Verifica che i campi JWK rimanenti siano formattati correttamente come descritto nella specifica OIDC.
Configura il provider OIDC con la JWK aggiornata.
Errore durante la connessione all'emittente della credenziale specificata
Se ricevi il seguente errore, il motivo potrebbe essere che Google Cloud non è in grado di recuperare il documento di metadati OIDC o JWKS del tuo IdP:
{
"error": "invalid_grant",
"error_description":"Error connecting to the given credential's issuer."
}
In genere questo errore si verifica perché gli endpoint non sono configurati per essere raggiungibili da internet pubblico. Per risolvere questo errore, verifica che l'endpoint OIDC sia disponibile pubblicamente e conforme alla specifica OIDC. Per maggiori informazioni, consulta Preparare il provider di identità esterno.
Se l'errore persiste, verifica che l'emittente del token, la rivendicazione iss
nel token, sia corretta.
L'attestazione google.subject mappata supera il limite di 127 byte
Se ricevi il seguente errore, significa che le credenziali in entrata ricevute dall'API
SecurityTokenService
generano un'asserzione google.subject
che supera il limite di caratteri:
{
"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."
}
Per risolvere il problema, utilizza la funzione extract
per rimuovere i caratteri non necessari ed estrarre un identificatore del soggetto univoco da
una rivendicazione più lunga, ad esempio:
google.subject=assertion.sub.extract('/users/{sub_claim}')
Errore 429 Too Many Requests
Se ricevi l'errore 429 Too Many Requests
durante la richiesta di un token dall'API SecurityTokenService
, significa che il tuo progetto Google Cloud ha superato il limite di quota di frequenza per l'API.
L'errore include un messaggio simile al seguente:
{
"error": "quota_exceeded",
"error_description":"The request was throttled due to rate limit: sts.googleapis.com/requests. Please retry after a few seconds."
}
Per risolvere il problema, identifica il nome della metrica sts.googleapis.com/requests
fornito nel messaggio di errore, individua il nome della metrica corrispondente nella
pagina delle quote IAM, verifica che la percentuale di utilizzo
superi la quota e poi richiedi un aumento della quota.