Memecahkan masalah Workload Identity Federation

Halaman ini menjelaskan resolusi untuk error Workload Identity Federation umum.

Google Cloud API tidak menerima kredensial yang dikeluarkan dari SecurityTokenService

Token akses yang ditampilkan oleh SecurityTokenService API adalah token akses gabungan. Meskipun sebagian besar Google Cloud API mendukung federasi identitas, metode API tertentu mungkin memiliki batasan. Untuk mengetahui daftar batasan, lihat Federasi identitas: produk dan batasan.

Jika mengalami error berikut, Anda mungkin mencoba menggunakan token akses gabungan dengan layanan yang tidak mendukungnya.

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

Untuk mengatasi error ini, tukarkan token akses gabungan dengan token akses tanpa batasan dengan memanggil GenerateAccessToken. Untuk informasi selengkapnya, lihat Memperoleh kredensial berjangka pendek dengan federasi identitas.

Daftar Penyedia Identitas yang diberi izin untuk digunakan dengan Workload Identity Federation

Jika Anda mencoba mengonfigurasi penyedia identitas yang tidak diizinkan sebagai penyedia workload identity pool, Anda akan mengalami error berikut:

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

Untuk mengatasi masalah ini, ikuti petunjuk tentang Membatasi konfigurasi penyedia identitas guna mengizinkan penyedia identitas untuk digunakan dengan Workload Identity Federation.

JWK input tidak dalam format JSON yang valid

Jika Anda mengonfigurasi penyedia OIDC dan menerima error Input JWK is not in a valid json format, hal ini dapat disebabkan karena endpoint yang diamankan dengan sertifikat yang ditandatangani sendiri tidak didukung oleh Google Cloud. Secara khusus, kolom x5c dan x5t tidak didukung dan harus dihapus dari JWK OIDC.

Untuk mengatasi masalah pada JWK, lakukan tindakan berikut:

  1. Edit JWK Anda dan hapus kolom x5c (X.509 Certificate Chain) dan x5t (X.509 Certificate SHA-1 Thumbprint).

    {
      "kty": "RSA",
      "use": "sig",
      "kid": "example-key-id",
      "alg": "RS256",
      "n": "base64url-modulus",
      "e": "AQAB"
    }
    
  2. Pastikan kolom JWK yang tersisa diformat dengan benar seperti yang dijelaskan dalam spesifikasi OIDC.

  3. Konfigurasikan penyedia OIDC dengan JWK yang diperbarui.

Terjadi error saat menghubungkan ke penerbit kredensial yang diberikan

Jika Anda menerima error berikut, mungkin karena Google Cloud tidak dapat mengambil dokumen metadata OIDC atau JWKS IdP Anda:

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

Error ini biasanya terjadi karena endpoint tidak dikonfigurasi agar dapat dijangkau dari internet publik. Untuk mengatasi error ini, pastikan endpoint OIDC tersedia untuk publik dan sesuai dengan spesifikasi OIDC. Untuk informasi selengkapnya, lihat Menyiapkan penyedia identitas eksternal.

Jika Anda masih menerima error, periksa apakah penerbit token, yang mengklaim iss dalam token sudah benar.