Fehlerbehebung bei Workload Identity-Föderation

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

Die Google Cloud API akzeptiert keine von SecurityTokenService ausgestellten Anmeldedaten

Wenn der folgende Fehler auftritt, versuchen Sie möglicherweise, direkt mit Anmeldedaten aus SecurityTokenService auf eine Google Cloud API zuzugreifen, anstatt sie zuerst gegen Anmeldedaten für ein Dienstkonto auszutauschen.

{
  "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 die aus SecurityTokenService erstellten Anmeldedaten gegen ein Dienstkonto-Token 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 zulassen

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.

Fehler beim Herstellen einer Verbindung zum Aussteller der angegebenen Anmeldedaten

Wenn Sie den folgenden Fehler erhalten, kann dies daran liegen, dass Google Cloud das OIDC-Metadatendokument Ihres IdP oder JWKS nicht abrufen kann:

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

Dieser Fehler tritt normalerweise auf, weil die Endpunkte nicht so konfiguriert sind, dass sie über das öffentliche Internet erreichbar sind. Prüfen Sie, ob der OIDC-Endpunkt öffentlich verfügbar und mit der OIDC-Spezifikation kompatibel ist, um diesen Fehler zu beheben. Weitere Informationen finden Sie unter Externen Identitätsanbieter vorbereiten.

Wenn Sie weiterhin den Fehler erhalten, prüfen Sie, ob der Tokenaussteller die Anforderung iss im Token korrekt hat.