Panduan ini menjelaskan cara menukar kredensial eksternal, kode otorisasi,
atau token refresh dengan Google Cloud token akses menggunakan Cloud OAuth API
(cloudoauth.googleapis.com) dalam integrasi
Workforce Identity Federation.
Sebelum memulai
- Konfigurasi workforce identity pool dan penyedia. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi Workforce Identity Federation.
- Daftarkan klien OAuth dan buat kredensial klien. Untuk mengetahui informasi selengkapnya, lihat Mengelola aplikasi OAuth.
-
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.
Metode autentikasi
Cloud OAuth API mendukung dua metode autentikasi klien:
Autentikasi Dasar HTTP (direkomendasikan): Teruskan ID klien dan secret klien yang dienkode 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
Untuk menukar kode otorisasi Google Cloud dengan token akses dan token refresh, kirim permintaan HTTP POST:
Endpoint lingkup organisasi (single-tenant)
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"
Kredensial 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:
BASE64_ENCODED_CREDENTIALS: string berenkode Base64 dariCLIENT_ID:CLIENT_SECRET.AUTHORIZATION_CODE: kode otorisasi yang dikeluarkan oleh Google Cloud.REDIRECT_URI: URI pengalihan yang dikonfigurasi di klien OAuth Anda.ORGANIZATION_ID: ID organisasi Google Cloud numerik Anda.CLIENT_ID: ID klien OAuth terdaftar Anda.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 masa berlakunya singkat:
Endpoint lingkup organisasi (single-tenant)
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 REFRESH_TOKEN dengan token refresh yang sebelumnya ditampilkan oleh endpoint
token.
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 token saat ini berakhir. |
expires_in |
integer |
Masa aktif token akses yang tersisa 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.
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 OAuth Cloud