Anda dapat menggunakan Cloud OAuth API (cloudoauth.googleapis.com) untuk menukar
kode otorisasi atau token refresh dengan token akses OAuth 2.0 Google Cloud
dan token ID OpenID Connect (OIDC) yang berumur pendek. Dalam integrasi Workforce Identity Federation, aplikasi Anda kemudian dapat memverifikasi token ID yang ditampilkan menggunakan kunci publik organisasi Anda dan menggunakan token akses untuk memanggilGoogle Cloud API atas nama pengguna gabungan.
Sebelum memulai
- Mengonfigurasi workforce identity pool dan penyedia workforce identity pool. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi Workforce Identity Federation.
- Mendaftarkan klien OAuth dan membuat kredensial klien. Untuk mengetahui informasi selengkapnya, lihat Mengelola aplikasi OAuth.
-
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.
Metode autentikasi
Untuk mengautentikasi klien OAuth Anda dengan Cloud OAuth API, teruskan client ID dan rahasia klien Anda dengan salah satu cara berikut:
Autentikasi Dasar HTTP (direkomendasikan): Teruskan client ID dan rahasia klien berenkode base64 di header
Authorization:-H "Authorization: Basic $(echo -n 'CLIENT_ID:CLIENT_SECRET' | base64)"
Parameter isi permintaan: Teruskan parameter
client_iddanclient_secretdalam isi permintaan.
Menukarkan kode otorisasi dengan token
Setelah pengguna gabungan login dengan penyedia identitas (IdP) mereka di
endpoint otorisasi terpaduGoogle Cloud
(https://auth.cloud.google/authorize), endpoint otorisasi akan mengalihkan
pengguna ke URI pengalihan aplikasi Anda dengan kode otorisasi. Untuk
menukarkan kode otorisasi ini dengan token akses, token refresh, dan
token ID OIDC, kirim permintaan HTTP POST ke endpoint cakupan organisasi
(tenant tunggal):
Autentikasi Dasar HTTP (direkomendasikan):
curl -X POST https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/token \ -H "Authorization: Basic BASE64_ENCODED_CREDENTIALS" \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "grant_type=authorization_code" \ --data-urlencode "code=AUTHORIZATION_CODE" \ --data-urlencode "redirect_uri=REDIRECT_URI"
Parameter isi permintaan:
curl -X POST https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/token \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "grant_type=authorization_code" \ --data-urlencode "code=AUTHORIZATION_CODE" \ --data-urlencode "redirect_uri=REDIRECT_URI" \ --data-urlencode "client_id=CLIENT_ID" \ --data-urlencode "client_secret=CLIENT_SECRET"
Ganti kode berikut:
ORGANIZATION_ID: ID organisasi Google Cloud numerik Anda.BASE64_ENCODED_CREDENTIALS: string berenkode base64 dariCLIENT_ID:CLIENT_SECRET.AUTHORIZATION_CODE: kode otorisasi yang ditampilkan oleh endpoint otorisasi terpadu Google Cloud (https://auth.cloud.google/authorize).REDIRECT_URI: URI pengalihan yang dikonfigurasi di klien OAuth Anda.CLIENT_ID: client ID OAuth Anda yang terdaftar.CLIENT_SECRET: rahasia klien OAuth Anda.
Memperbarui token akses
Saat masa berlaku token akses berakhir, gunakan jenis pemberian refresh_token untuk mendapatkan token akses baru yang berumur singkat dari endpoint khusus organisasi (tenant tunggal):
curl -X POST https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/token \ -H "Authorization: Basic BASE64_ENCODED_CREDENTIALS" \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "grant_type=refresh_token" \ --data-urlencode "refresh_token=REFRESH_TOKEN" \ --data-urlencode "redirect_uri=REDIRECT_URI"
Ganti kode berikut:
ORGANIZATION_ID: ID organisasi Google Cloud numerik Anda.BASE64_ENCODED_CREDENTIALS: string berenkode base64 dariCLIENT_ID:CLIENT_SECRET.REFRESH_TOKEN: token refresh yang sebelumnya ditampilkan oleh endpoint token.REDIRECT_URI: URI pengalihan yang dikonfigurasi di klien OAuth Anda.
Kolom respons token
Saat pertukaran token berhasil, Cloud OAuth API akan menampilkan status HTTP 200 OK
yang berisi kolom berikut:
| Kolom | Jenis | Deskripsi |
|---|---|---|
access_token |
string |
Token akses OAuth 2.0 yang dikeluarkan oleh Cloud OAuth API untuk memanggil Google Cloud API. |
refresh_token |
string |
Token refresh yang digunakan untuk mendapatkan token akses baru saat masa berlaku token saat ini berakhir. |
expires_in |
integer |
Sisa masa aktif token akses dalam detik (biasanya 3599).
|
token_type |
string |
Jenis token (misalnya, Bearer). |
scope |
string |
Daftar cakupan yang terkait dengan token. |
id_token |
string |
Token ID OIDC yang berisi klaim identitas yang diautentikasi. |
Untuk mengetahui informasi tentang respons error yang ditampilkan oleh Cloud OAuth API, lihat Error pertukaran token Cloud OAuth API.
Memverifikasi token ID OIDC
Untuk integrasi OIDC Looker, Anda dapat memverifikasi tanda tangan kriptografis
id_token yang ditampilkan oleh Cloud OAuth API menggunakan
JSON Web Key (JWK) publik organisasi Anda.
Ambil JWK publik organisasi dengan salah satu cara berikut:
- Buat kueri endpoint JSON Web Key Set (JWKS) secara langsung: Kirim permintaan HTTP
GETkehttps://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/.well-known/jwks.json. - Menggunakan dokumen discovery OIDC: Kirim permintaan
GETHTTP ke endpoint discovery OIDC (https://auth.cloud.google/oidc/organizations/ORGANIZATION_ID/.well-known/openid-configuration) untuk mengambil URL endpoint JWKS dari kolomjwks_uri.
Di kedua URL endpoint, ganti ORGANIZATION_ID dengan ID organisasi Google Cloud numerik Anda.
Langkah berikutnya
- Mengambil info pengguna dengan Cloud OAuth API
- Mengambil grup perusahaan dengan Cloud OAuth API
- Ringkasan Cloud OAuth API
- Mengelola aplikasi OAuth untuk Workforce Identity Federation
- Referensi API REST Cloud OAuth