Mengambil info pengguna dengan Cloud OAuth API

Panduan ini menjelaskan cara mengambil klaim standar OpenID Connect (OIDC), klaim direktori kustom, dan keanggotaan grup untuk pengguna tenaga kerja yang diautentikasi dengan menggunakan endpoint /userinfo di Cloud OAuth API (cloudoauth.googleapis.com).

Sebelum memulai

  1. Konfigurasi workforce identity pool dan penyedia. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi Workforce Identity Federation.
  2. Mendaftarkan klien OAuth dan menukar kode otorisasi dengan token akses. Untuk mengetahui informasi selengkapnya, lihat Menukarkan token dengan Cloud OAuth API.
  3. Pastikan token akses Anda menyertakan cakupan openid.
  4. Aktifkan Cloud OAuth API.

    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 Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.

    Mengaktifkan API

Endpoint lingkup organisasi

Cloud OAuth API menyediakan endpoint cakupan organisasi (single-tenant) yang dapat Anda gunakan saat aplikasi dan resource klien Anda dibatasi untukGoogle Cloud organisasi 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 pengaktifan penyediaan SCIM, 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 pengguna dan grup yang didistribusikan 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 (kumpulan identitas non-SCIM)

Untuk workforce identity pool tanpa pengaktifan penyediaan SCIM, 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 terdistribusi (kumpulan identitas yang mendukung SCIM)

Untuk workforce identity pool dengan penyediaan SCIM yang diaktifkan, keanggotaan grup ditampilkan sebagai klaim terdistribusi. Respons mencakup _claim_names dan _claim_sources yang mereferensikan 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 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 mendukung 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 info pengguna dan grup Cloud OAuth.

Langkah berikutnya