Fehlerbehebung bei der Identitätsföderation von Arbeitslasten

Auf dieser Seite werden Lösungen für häufige Fehler der Workload Identity-Föderation beschrieben.

DieGoogle Cloud API akzeptiert keine von SecurityTokenService ausgestellten Anmeldedaten

Die von der SecurityTokenService API zurückgegebenen Zugriffstokens sind föderierte Zugriffstokens. Die meisten Google Cloud APIs unterstützen die Identitätsföderation, aber bestimmte API-Methoden können Einschränkungen haben. Eine Liste der Einschränkungen finden Sie unter Identity-Föderation: Produkte und Einschränkungen.

Wenn der folgende Fehler auftritt, versuchen Sie möglicherweise, ein föderiertes Zugriffstoken mit einem Dienst zu verwenden, der diese nicht unterstützt.

{
  "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",
  }
}

Um diesen Fehler zu beheben, tauschen Sie das föderierte Zugriffstoken gegen ein uneingeschränktes Zugriffstoken aus, indem Sie GenerateAccessToken aufrufen. Weitere Informationen finden Sie unter Kurzlebige Anmeldedaten mit Identitätsföderation abrufen.

Identitätsanbieter zur Verwendung mit der Workload Identity-Föderation auf die Zulassungsliste setzen

Wenn Sie versuchen, einen nicht zulässigen Identitätsanbieter als Workload Identity-Poolanbieter zu konfigurieren, tritt der folgende Fehler auf:

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

Folgen Sie der Anleitung unter Konfiguration des Identitätsanbieters einschränken, um dieses Problem zu beheben und den Identitätsanbieter für die Verwendung mit der Workload Identity-Föderation zuzulassen.

Die JWK-Eingabe hat kein gültiges JSON-Format.

Wenn Sie einen OIDC-Anbieter konfigurieren und die Fehlermeldung Input JWK is not in a valid json format erhalten, kann das daran liegen, dass Endpunkte, die mit selbst signierten Zertifikaten gesichert sind, von Google Cloudnicht unterstützt werden. Insbesondere werden die Felder x5c und x5t nicht unterstützt und müssen aus der OIDC-JWK entfernt werden.

So beheben Sie Probleme mit Ihrer JWK:

  1. Bearbeiten Sie die JWK und entfernen Sie die Felder x5c (X.509-Zertifikatskette) und x5t (SHA-1-Fingerabdruck des X.509-Zertifikats).

    {
      "kty": "RSA",
      "use": "sig",
      "kid": "example-key-id",
      "alg": "RS256",
      "n": "base64url-modulus",
      "e": "AQAB"
    }
    
  2. Prüfen Sie, ob die übrigen JWK-Felder wie in der OIDC-Spezifikation beschrieben korrekt formatiert sind.

  3. Konfigurieren Sie den OIDC-Anbieter mit der aktualisierten JWK.

Fehler beim Herstellen einer Verbindung zum Aussteller der angegebenen Anmeldedaten

Wenn Sie die folgende Fehlermeldung erhalten, kann das daran liegen, dass Google Cloud das OIDC-Metadatendokument oder den JWKS Ihres IdP nicht abrufen kann:

{
  "error": "invalid_grant",
  "error_description":"Error connecting to the given credential's issuer."
 }

Dieser Fehler tritt in der Regel auf, wenn die Endpunkte nicht so konfiguriert sind, dass sie über das öffentliche Internet erreichbar sind. Prüfen Sie, ob der OIDC-Endpunkt öffentlich zugänglich und der OIDC-Spezifikation entspricht, um diesen Fehler zu beheben. Weitere Informationen finden Sie unter Externen Identitätsanbieter vorbereiten.

Wenn der Fehler weiterhin auftritt, prüfen Sie, ob der Tokenaussteller und der iss-Anspruch im Token korrekt sind.