Panduan ini menjelaskan cara mengambil klaim standar OpenID Connect (OIDC), klaim direktori kustom, dan keanggotaan grup untuk pengguna workforce yang diautentikasi menggunakan endpoint /userinfo di Cloud OAuth API (cloudoauth.googleapis.com).
Sebelum memulai
- Mengonfigurasi workforce identity pool dan penyedia workforce identity pool. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi Workforce Identity Federation.
- Mendaftarkan klien OAuth dan menukar kode otorisasi dengan token akses. Untuk mengetahui informasi selengkapnya, lihat Menukarkan token dengan Cloud OAuth API.
- Pastikan token akses Anda menyertakan cakupan
openid. -
Aktifkan Cloud OAuth API, jika belum diaktifkan.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan izin
serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Service Usage Admin (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.
Endpoint lingkup organisasi
Cloud OAuth API menyediakan endpoint cakupan organisasi (tenant tunggal) yang dapat Anda gunakan saat aplikasi klien dan resource Anda dibatasi untuk organisasiGoogle Cloud tertentu:
Metode
organizations.userinfo
Cloud OAuth API mengambil klaim standar OpenID Connect (OIDC), klaim kustom, dan keanggotaan grup untuk pengguna yang diautentikasi di organisasi tertentu.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
TOKEN: token akses OAuth 2.0 berumur pendek yang diperoleh dari endpoint pertukaran token.ORGANIZATION_ID: ID organisasi Google Cloud numerik Anda.
Metode HTTP dan URL:
GET https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/userinfo
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Untuk workforce identity pool tanpa penyediaan SCIM yang diaktifkan, endpoint akan menampilkan atribut profil, klaim kustom, dan keanggotaan grup secara inline:
{
"sub": "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/user@example.com",
"email": "user@example.com",
"custom_claim1": "engineering",
"custom_claim2": "us-west",
"groups": [
"looker-developers",
"analytics-viewers"
]
}
Klaim pengguna dan grup terdistribusi SCIM
Saat permintaan berhasil, endpoint /userinfo akan menampilkan status HTTP 200 OK
dan objek JSON yang berisi klaim untuk pengguna yang diautentikasi.
Format klaim bergantung pada apakah penyedia pool workforce identity Anda menggunakan penyediaan SCIM:
Klaim inline (pool identitas non-SCIM)
Untuk workforce identity pool tanpa penyediaan SCIM yang diaktifkan, endpoint menampilkan atribut profil, klaim kustom, dan keanggotaan grup secara inline:
{
"sub": "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/user@example.com",
"email": "user@example.com",
"custom_claim1": "engineering",
"custom_claim2": "us-west",
"groups": [
"looker-developers",
"analytics-viewers"
]
}
Klaim terdistribusi (kumpulan identitas yang mendukung SCIM)
Untuk workforce identity pool dengan penyediaan SCIM yang diaktifkan, keanggotaan grup
ditampilkan sebagai klaim terdistribusi. Responsnya mencakup _claim_names dan
_claim_sources yang merujuk ke endpoint /groups:
{
"sub": "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/user@example.com",
"name": "Jane Doe",
"email": "user@example.com",
"_claim_names": {
"groups": "src1"
},
"_claim_sources": {
"src1": {
"endpoint": "https://cloudoauth.googleapis.com/v1/common/groups"
}
}
}
Kolom klaim
Respons berisi kolom klaim standar dan terdistribusi berikut:
| Kolom | Jenis | Deskripsi |
|---|---|---|
sub |
string |
ID akun utama unik untuk pengguna yang diautentikasi di workforce identity pool. |
name |
string |
Nama lengkap pengguna, jika tersedia dari penyedia identitas. |
email |
string |
Alamat email pengguna yang diautentikasi. |
groups |
array of strings |
(Khusus non-SCIM) Daftar keanggotaan grup perusahaan untuk pengguna. |
_claim_names |
object |
(Khusus yang mengaktifkan SCIM) Objek JSON yang memetakan nama klaim terdistribusi (seperti groups) ke ID sumber di _claim_sources. |
_claim_sources |
object |
(Khusus yang mendukung SCIM) Objek JSON yang menentukan endpoint sumber untuk setiap ID klaim terdistribusi. |
Untuk mengetahui informasi tentang respons error yang ditampilkan oleh endpoint /userinfo, lihat
Error grup dan info pengguna Cloud OAuth.