All Products
Search
Document Center

Resource Access Management:Masuk ke Alibaba Cloud dari aplikasi web

Last Updated:Sep 11, 2026

Topik ini menjelaskan cara aplikasi web Anda menggunakan alur kode otorisasi OAuth 2.0 untuk mengakses API Alibaba Cloud atas nama pengguna.

Prasyarat

  • Sebelum aplikasi web Anda dapat mengakses API Alibaba Cloud atas nama pengguna, Anda harus membuat sebuah application. Berikan informasi penting seperti nama, cakupan (scope) OAuth, dan URI pengalihan (redirect URIs). Untuk informasi selengkapnya, lihat Create an application. Setelah membuat application, Anda dapat menemukan client ID-nya. Pada halaman Enterprise Applications, temukan client ID application Anda dalam daftar application.

    Catatan

    Setelah Anda membuat application, application tersebut dapat bertindak atas nama pengguna dalam Akun Alibaba Cloud Anda. Untuk bertindak atas nama pengguna dari Akun Alibaba Cloud lain, Anda harus memperoleh otorisasi dari akun tersebut.

  • Buat client secret. Untuk informasi selengkapnya, lihat Create a client secret. Client secret (client_secret) hanya ditampilkan saat pembuatan dan tidak dapat diambil kembali nanti. Simpan dengan aman.

Ikhtisar alur otorisasi

基本流程

  1. Pengguna masuk ke aplikasi web melalui browser.

  2. Aplikasi web mengalihkan pengguna ke titik akhir otorisasi OAuth 2.0 Alibaba Cloud.

    Catatan

    Jika pengguna belum masuk ke Alibaba Cloud, mereka akan dialihkan terlebih dahulu ke halaman masuk Alibaba Cloud.

  3. Pengguna masuk dan memberikan otorisasi kepada application pada layar persetujuan (consent screen).

  4. Layanan OAuth 2.0 Alibaba Cloud mengalihkan pengguna kembali ke aplikasi web dengan kode otorisasi (authorization code).

  5. Aplikasi web menukar kode otorisasi tersebut dengan token akses (access token).

  6. Layanan OAuth 2.0 Alibaba Cloud mengembalikan token akses (access_token) ke aplikasi web.

  7. Aplikasi web menggunakan token akses tersebut untuk memanggil API Alibaba Cloud atas nama pengguna.

    Catatan

    Karena token akses mewakili pengguna, application dapat mengakses sumber daya pengguna tersebut.

Dapatkan token akses

Langkah 1: Minta kode otorisasi

Titik akhir otorisasi: https://signin.alibabacloud.com/oauth2/v1/auth.

Parameter permintaan:

Parameter

Wajib

Deskripsi

client_id

Ya

Client ID dari application Anda.

redirect_uri

Ya

Salah satu URI pengalihan yang telah Anda tentukan saat membuat application.

response_type

Ya

Jenis respons. Menurut protokol OAuth 2.0, nilai ini harus code.

scope

Tidak

Daftar cakupan OAuth yang dipisahkan spasi. Jika parameter ini dihilangkan, permintaan akan menggunakan semua cakupan yang dikonfigurasi untuk application tersebut secara default.

access_type

Tidak

Jenis akses yang diminta. Nilai yang valid:

  • online: Application tidak memerlukan akses offline untuk refresh token akses.

  • offline: Untuk permintaan yang memerlukan akses offline, layanan akan mengeluarkan refresh token. Application dapat menggunakan refresh token tersebut untuk refresh token akses sesuai kebutuhan.

Nilai default: online.

state

Tidak

Application dapat menggunakan parameter state untuk berbagai tujuan, seperti menyimpan status atau berfungsi sebagai nonce untuk mengurangi risiko CSRF. Jika Anda mengatur parameter state ke string apa pun, layanan OAuth 2.0 Alibaba Cloud akan menyertakan parameter state beserta nilainya dalam respons.

prompt

Tidak

Menentukan apakah server harus meminta pengguna untuk memberikan otorisasi.

Jika parameter ini disertakan, pengguna akan diminta memberikan otorisasi ulang kepada application, meskipun sebelumnya sudah memberikan otorisasi. Jika dihilangkan, pengguna hanya diminta memberikan otorisasi saat pertama kali menggunakan.

Nilai yang valid: admin_consent. Nilai ini memaksa server untuk menampilkan layar persetujuan sebelum mengembalikan informasi ke client.

Contoh permintaan:

https://signin.alibabacloud.com/oauth2/v1/auth?
client_id=123****&
redirect_uri=https://example.com/authcallback/&
response_type=code&
scope=openid /acs/ccc&
access_type=offline&
state=123456****

Parameter respons:

Parameter

Deskripsi

code

Kode otorisasi.

state

Nilai parameter state dalam permintaan.

Contoh respons:

GET HTTP/1.1 302 Found
Location: https://example.com/authcallback/?code=ABAFDGDFXYZW888&state=123456****

Langkah 2: Tukar kode dengan token akses

Titik akhir token: https://oauth.alibabacloud.com/v1/token.

Parameter permintaan:

Parameter

Wajib

Deskripsi

code

Ya

Kode otorisasi.

Kode otorisasi yang Anda terima di Langkah 1.

client_id

Ya

Client ID dari application Anda.

redirect_uri

Ya

URI pengalihan.

URI ini harus sesuai dengan nilai yang ditentukan dalam permintaan otorisasi Langkah 1.

grant_type

Ya

Menurut protokol OAuth 2.0, nilainya harus authorization_code.

client_secret

Ya

Client secret untuk application Anda.

Contoh permintaan:

POST /v1/token HTTP/1.1
Host: oauth.alibabacloud.com
Content-Type: application/x-www-form-urlencoded
code=ABAFDGDFXYZW888&
client_id=123****&
client_secret=`your_client_secret`&
redirect_uri=https://example.com/authcallback/&
grant_type=authorization_code

Parameter respons:

Parameter

Deskripsi

access_token

Token yang memberikan akses ke API Alibaba Cloud atas nama pengguna. Application Anda tidak boleh mengurai token ini; cukup gunakan apa adanya dalam pemanggilan API Anda.

Token akses mewakili identitas pengguna, dan application menggunakan token ini untuk mengakses API Alibaba Cloud. Application tidak perlu memahami makna token tersebut dan dapat langsung menggunakannya.

expires_in

Masa berlaku token akses, dalam detik.

token_type

Jenis token akses. Nilainya selalu Bearer.

id_token

Token ID.

JWT (JSON Web Token) yang berisi informasi identitas pengguna. Token ini hanya dikembalikan jika parameter scope dalam permintaan otorisasi awal mencakup openid.

refresh_token

Token penyegaran.

Token ini hanya dikembalikan jika parameter access_type dalam permintaan otorisasi awal diatur ke offline.

scope

Daftar cakupan yang dipisahkan spasi yang telah diberikan untuk token akses.

Jika application memerlukan cakupan otorisasi selain openid, Anda harus memverifikasi bahwa nilai scope yang dikembalikan mencakup semua cakupan yang dibutuhkan oleh application Anda.

Jika application Anda belum diberikan scope yang ditentukan, Anda harus meminta otorisasi lagi. Untuk melakukannya, minta kode otorisasi seperti dijelaskan dalam Langkah 1 dari https://signin.alibabacloud.com/oauth2/v1/auth dan atur parameter prompt=admin_consent.

Contoh respons:

{
  "access_token": "eyJraWQiOiJrMTIzNCIsImVu****",
  "token_type": "Bearer",
  "expires_in": "3600",
  "refresh_token": "Ccx63VVeTn2dxV7ovXXfLtAqLLERA****",
  "id_token": "eyJhbGciOiJIUzI1****",
  "scope": "openid /acs/ccc"
}

Refresh token akses

Titik akhir token: https://oauth.alibabacloud.com/v1/token.

Parameter permintaan:

Parameter

Wajib

Deskripsi

refresh_token

Ya

Token penyegaran yang Anda terima dalam pertukaran token awal.

client_id

Ya

Client ID dari application Anda.

grant_type

Ya

Menurut protokol OAuth 2.0, nilainya harus refresh_token.

client_secret

Tidak

Client secret untuk application Anda.

Contoh permintaan:

POST /v1/token HTTP/1.1
Host: oauth.alibabacloud.com
Content-Type: application/x-www-form-urlencoded
refresh_token=Ccx63VVeTn2dxV7ovXXfLtAqLLERAH1Bc&
client_id=123****&
client_secret=`your_client_secret`&
grant_type=refresh_token

Parameter respons:

Parameter

Deskripsi

access_token

Token akses baru.

expires_in

Masa berlaku token akses, dalam detik.

token_type

Jenis token akses. Nilainya adalah Bearer.

Contoh respons:

{
  "access_token": "eyJraWQiOiJrMTIzNCIsImVu****",
  "token_type": "Bearer",
  "expires_in": "3600"
}

Cabut token penyegaran

Setelah aplikasi web Anda memperoleh token penyegaran, Anda harus mencabut token tersebut ketika pengguna keluar (sign out) atau memutuskan akun mereka dari application Anda.

Titik akhir pencabutan: https://oauth.alibabacloud.com/v1/revoke.

Parameter permintaan:

Parameter

Wajib

Deskripsi

token

Ya

Token penyegaran yang akan dicabut.

client_id

Ya

Client ID dari application Anda.

client_secret

Tidak

Client secret untuk application Anda.