Menukarkan token dengan Cloud OAuth API

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

  1. Konfigurasi workforce identity pool dan penyedia. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi Workforce Identity Federation.
  2. Daftarkan klien OAuth dan buat kredensial klien. Untuk mengetahui informasi selengkapnya, lihat Mengelola aplikasi OAuth.
  3. 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

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_id dan client_secret dalam 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 dari CLIENT_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