Halaman ini menjelaskan resolusi untuk error Workload Identity Federation umum.
Google Cloud API tidak menerima kredensial yang diterbitkan dari SecurityTokenService
Token akses yang ditampilkan oleh
API SecurityTokenService
adalah
token akses federasi.
Meskipun sebagian besar API Google Cloud mendukung federasi identitas, metode API tertentu mungkin memiliki batasan. Untuk daftar batasan, lihat
Identity federation: 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 federasi dengan token akses
tanpa batasan dengan memanggil
GenerateAccessToken
.
Untuk mengetahui 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 terjadi 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 terkait JWK Anda, lakukan hal berikut:
Edit JWK Anda dan hapus kolom
x5c
(Rantai Sertifikat X.509) danx5t
(Sidik Jari SHA-1 Sertifikat X.509).{ "kty": "RSA", "use": "sig", "kid": "example-key-id", "alg": "RS256", "n": "base64url-modulus", "e": "AQAB" }
Pastikan kolom JWK yang tersisa diformat dengan benar seperti yang dijelaskan dalam spesifikasi OIDC.
Konfigurasi penyedia OIDC dengan JWK yang telah diupdate.
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.
Klaim google.subject yang dipetakan melebihi batas 127 byte
Jika Anda menerima error berikut, hal ini karena kredensial masuk yang diterima oleh
SecurityTokenService
API
membuat klaim google.subject
yang melebihi batas karakter:
{
"error": "invalid_request",
"error_description":"The size of mapped attribute google.subject exceeds the 127 bytes limit. Either modify your attribute mapping or the incoming assertion to produce a mapped attribute that is less than 127 bytes."
}
Untuk mengatasi masalah ini, gunakan fungsi extract
untuk menghapus karakter yang tidak diperlukan dan mengekstrak ID subjek unik dari klaim yang lebih panjang, misalnya:
google.subject=assertion.sub.extract('/users/{sub_claim}')
Error 429 Too Many Requests
Jika Anda menerima error 429 Too Many Requests
, saat meminta token dari API SecurityTokenService
, artinya project Google Cloud Anda telah melampaui batas kuota kecepatan untuk API tersebut.
Error ini menyertakan pesan yang mirip dengan berikut ini:
{
"error": "quota_exceeded",
"error_description":"The request was throttled due to rate limit: sts.googleapis.com/requests. Please retry after a few seconds."
}
Untuk mengatasi masalah ini, identifikasi nama metrik sts.googleapis.com/requests
yang diberikan dalam pesan error, temukan nama metrik yang sesuai di halaman Kuota IAM, konfirmasi bahwa persentase penggunaan melebihi kuota, lalu minta penambahan kuota.