Risolvere i problemi relativi alla federazione delle identità per i carichi di lavoro

Questa pagina descrive le soluzioni per gli errori comuni di Workload Identity Federation.

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 Google Cloud API supporti la federazione delle identità, alcuni metodi API potrebbero avere limitazioni. Per un elenco delle limitazioni, consulta Federazione delle identità: prodotti e limitazioni.

Se riscontri il seguente errore, potresti essere in procinto di utilizzare un token di accesso federato con un servizio che non lo 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 la sezione Recupero delle credenziali di breve durata con la federazione delle identità.

Inserire nella lista consentita un provider di identità da utilizzare con la federazione delle identità per i carichi di lavoro

Se provi a configurare un provider di identità non consentito come fornitore 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.

JWK di input 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, è possibile che gli endpoint protetti con certificati autofirmati non siano supportati da Google Cloud. In particolare, i campi x5c e x5t non sono supportati e devono essere rimossi dal JWK OIDC.

Per risolvere i problemi relativi al JWK:

  1. Modifica il JWK e rimuovi i campi x5c (catena di certificati X.509) e x5t (impronta digitale SHA-1 del certificato X.509).

    {
      "kty": "RSA",
      "use": "sig",
      "kid": "example-key-id",
      "alg": "RS256",
      "n": "base64url-modulus",
      "e": "AQAB"
    }
    
  2. Verifica che i restanti campi JWK siano formattati correttamente come descritto nella specifica OIDC.

  3. Configura il provider OIDC con il JWK aggiornato.

Errore durante la connessione all'emittente della credenziale specificata

Se ricevi il seguente errore, è possibile che Google Cloud non riesca a recuperare il documento di metadati OIDC o JWKS della tua 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 accessibili dall'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 il problema persiste, verifica che l'emittente del token e la rivendicazione iss nel token siano corretti.