Memecahkan masalah workload identity federation

Halaman ini menjelaskan resolusi untuk error workload identity federation umum.

Google Cloud API tidak menerima kredensial yang diterbitkan dari SecurityTokenService

Jika mengalami error berikut, Anda mungkin mencoba mengakses Google Cloud API secara langsung menggunakan kredensial yang diterbitkan dari SecurityTokenService, bukan menukarnya dengan kredensial akun layanan terlebih dahulu.

{
  "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 kredensial yang dibuat dari SecurityTokenService dengan token akun layanan dengan memanggil GenerateAccessToken. Untuk informasi selengkapnya, lihat Memperoleh kredensial berjangka pendek dengan federasi identitas.

Mengizinkan penyedia identitas 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.

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.