Halaman ini menjelaskan resolusi untuk error Workload Identity Federation umum.
Cloud de Confiance API tidak menerima kredensial yang diterbitkan dari SecurityTokenService
Token akses yang ditampilkan oleh
API SecurityTokenService
adalah
token akses federasi.
Meskipun sebagian besar API Cloud de Confiance mendukung federasi identitas, metode API tertentu mungkin memiliki batasan. Untuk mengetahui 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.
Input JWK bukan 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 Cloud de Confiance. Secara khusus,
kolom x5c dan x5t tidak didukung dan harus dihapus dari JWK OIDC.
Untuk mengatasi masalah terkait JWK, lakukan hal berikut:
Edit JWK Anda dan hapus kolom
x5c(X.509 Certificate Chain) danx5t(X.509 Certificate SHA-1 Thumbprint).{ "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 diperbarui.
Terjadi error saat menghubungkan ke penerbit kredensial yang diberikan
Jika Anda menerima error berikut, mungkin karena Cloud de Confiance by S3NS 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.
Permintaan AWS yang diberikan tidak berisi semua header yang diperlukan
Jika Anda menerima error berikut saat meminta token dari API
SecurityTokenService,
hal ini karena kolom headers di token GetCallerIdentity AWS Anda tidak
memiliki header yang diperlukan atau menyertakan header yang tidak didukung:
{
"error": "invalid_grant",
"error_description": "The given AWS request doesn't contain all the required headers."
}
Kolom headers token GetCallerIdentity hanya boleh menyertakan header permintaan HTTP berikut:
Authorization: Tanda tangan permintaan.host: Nama host kolomurl; misalnya,sts.amazonaws.com.x-amz-date: Waktu saat Anda mengirim permintaan, diformat sebagai string ISO 8601 Basic.x-goog-cloud-target-resource: Nama lengkap resource penyedia workload identity pool.x-amz-security-token: Token sesi. Hanya diperlukan jika Anda menggunakan kredensial keamanan sementara.
Error ini juga terjadi jika penanda tangan Signature Version 4 Anda menyertakan header tambahan, seperti x-amz-content-sha256, dalam permintaan bertanda tangan. Untuk mengatasi masalah ini, pastikan permintaan GetCallerIdentity Anda memiliki isi kosong dan kolom headers serta kolom SignedHeaders dari permintaan bertanda tangan hanya menyertakan header yang didukung. Untuk mengetahui informasi selengkapnya, lihat
Mengautentikasi workload menggunakan REST API.
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 Cloud de Confiance Anda telah melampaui batas kuota kecepatan untuk API tersebut.
Error tersebut 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.