All Products
Search
Document Center

Alibaba Cloud Service Mesh:Konfigurasikan Single Sign-On berbasis OIDC pada gerbang masuk

Last Updated:Mar 12, 2026

Saat beberapa aplikasi berbagi gerbang masuk Service Mesh (ASM), masing-masing biasanya menerapkan logika autentikasinya sendiri—menduplikasi upaya dan meningkatkan risiko keamanan. OpenID Connect (OIDC), sebuah lapisan identitas yang dibangun di atas OAuth 2.0, memungkinkan single sign-on (SSO) di tingkat gerbang: pengguna login sekali, dan gerbang meneruskan Token Web JSON (JWT) yang telah diverifikasi ke setiap aplikasi backend tanpa perubahan kode apa pun.

Cara kerja

  1. Pengguna mengirim permintaan ke gerbang masuk.

  2. Gerbang memeriksa apakah terdapat cookie sesi yang valid. Jika tidak ada, gerbang mengalihkan pengguna ke halaman login penyedia identitas (IdP).

  3. Setelah autentikasi, IdP mengalihkan kembali pengguna ke URL callback gerbang (/oauth2/callback) dengan kode otorisasi.

  4. Gerbang menukar kode tersebut dengan token, menetapkan cookie sesi, dan meneruskan permintaan ke backend dengan JWT dalam header Authorization.

  5. Backend membaca identitas pengguna dari muatan JWT—tidak diperlukan panggilan langsung ke IdP.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

Setelah IdP dikonfigurasi, kumpulkan nilai-nilai berikut untuk konfigurasi OIDC:

redirect URI:   http://<ingress-gateway-ip>/oauth2/callback
issuer URL:     https://eiam-api-cn-hangzhou.aliyuncs.com/v2/<idaas-instance-id>/app_<app-id>/oidc
client ID:      <your-client-id>
client secret:  <your-client-secret>
Penting

Redirect URI harus persis sesuai dengan URL callback yang didaftarkan di IdP Anda. Ketidaksesuaian akan menyebabkan kegagalan autentikasi karena IdP menolak permintaan callback tersebut.

Catatan

Prosedur berikut menggunakan Alibaba Cloud Identity as a Service (IDaaS) sebagai IdP. Jika Anda menggunakan IdP OIDC yang dikelola sendiri seperti Keycloak, lihat Integrate Keycloak with ASM to implement single sign-on.

Konfigurasikan pengaturan OIDC

  1. Login ke Konsol ASM. Di panel navigasi sebelah kiri, pilih Service Mesh > Mesh Management.

  2. Di halaman Mesh Management, klik nama instans ASM target. Di panel navigasi sebelah kiri, pilih ASM Gateways > Ingress Gateway.

  3. Di halaman Ingress Gateway, klik gerbang masuk target. Di panel navigasi sebelah kiri, pilih Gateway Security > OIDC Single Sign-On.

  4. Pada langkah OIDC Config, aktifkan Enable gateway OIDC Single Sign-On dan konfigurasikan parameter berikut.

    Catatan

    Untuk menemukan endpoint yang tersedia dan cakupan yang didukung, kueri endpoint konfigurasi well-known IdP Anda:

    curl <your-issuer-url>/.well-known/openid-configuration | jq
    ParameterDeskripsi
    Redirect addressProtokol dan alamat untuk callback OIDC. Dalam contoh ini, pilih Use ingressgateway IP address dan http.
    Callback AddressURL lengkap tempat IdP mengalihkan pengguna setelah autentikasi.
    OIDC Issuer URLURL yang digunakan untuk mengidentifikasi dan mengotentikasi penerbit OIDC. Gerbang menurunkan endpoint discovery dari URL ini untuk mengambil kunci publik dan endpoint IdP.
    Client IDClient ID yang diberikan oleh IdP saat Anda mendaftarkan aplikasi.
    Client SecretClient secret yang diberikan oleh IdP.
    Cookie SecretString seed untuk cookie sesi aman, yang dapat dikodekan dalam Base64.
    Cookie ExpireBerapa lama cookie sesi tetap valid. Atur ke 0 agar cookie tidak kedaluwarsa.
    Cookie refresh intervalSeberapa sering cookie sesi direfresh. Atur ke 0 untuk menonaktifkan refresh otomatis.
    ScopesCakupan OIDC yang diminta dari IdP (misalnya, openid, email, profile). IdP harus mendukung cakupan yang ditentukan.

    OIDC configuration

  5. Klik Next.

Konfigurasikan aturan pencocokan path

  1. Pada langkah Matching Rule, konfigurasikan path permintaan mana yang memerlukan autentikasi OIDC. Dalam contoh ini, pilih Auth If Matched dan atur path ke /productpage. Permintaan ke /productpage dialihkan ke IdP untuk autentikasi, sedangkan permintaan ke path lain dilewatkan tanpa pemeriksaan OIDC.

    ParameterDeskripsi
    Match ModeMengontrol bagaimana aturan path diterapkan. Nilai yang valid: Auth If Matched — permintaan ke path yang ditentukan memerlukan autentikasi. Bypass Auth If Matched — permintaan ke path yang ditentukan melewati autentikasi.
    Add Match RuleAktifkan sakelar Path dan tentukan path-nya. Dalam contoh ini, atur path ke /productpage.
  2. Klik Submit. Langkah Complete mengonfirmasi bahwa SSO berbasis OIDC telah dikonfigurasi. Halaman ini menampilkan resource keamanan Istio native yang dihasilkan oleh wizard. Klik YAML untuk meninjau konfigurasi resource.

Verifikasi konfigurasi

  1. Buka browser dan kunjungi http://<ingress-gateway-ip>/productpage. Ganti <ingress-gateway-ip> dengan alamat IP gerbang masuk Anda. Jika konfigurasi benar, browser akan dialihkan ke halaman login IdP. Setelah Anda melakukan autentikasi, browser akan dialihkan kembali dan menampilkan halaman aplikasi.

    OIDC verification

Siapkan logout

Logout SSO yang lengkap memerlukan dua tindakan: menghapus cookie sesi gerbang dan mengakhiri sesi IdP.

ActionHow to trigger
Clear the gateway session cookieKunjungi http://<ingress-gateway-ip>/oauth2/sign_out. Gerbang secara otomatis menghapus cookie sesi.
End the IdP sessionKunjungi URI logout yang disediakan oleh IdP Anda.

Single-step logout (ASM v1.18.147 dan versi lebih baru)

ASM v1.18.147 dan versi lebih baru memungkinkan Anda menggabungkan kedua tindakan tersebut dengan mengonfigurasi endpoint logout IdP pada halaman konfigurasi OIDC:

  1. Masukkan URL endpoint logout IdP pada halaman konfigurasi OIDC.

  2. Tambahkan aturan pencocokan yang mengatur path /oauth2/sign_out ke Bypass Auth If Matched sehingga path sign-out tidak memerlukan autentikasi.

Setelah pengaturan ini, mengunjungi /oauth2/sign_out akan menghapus cookie sesi dan mengalihkan ke endpoint logout IdP dalam satu langkah. Untuk informasi selengkapnya tentang single logout IDaaS, lihat SLO.

FAQ

Apakah aplikasi saya perlu menangani autentikasi OIDC?

Tidak. Gerbang masuk menangani seluruh alur OIDC. Aplikasi Anda menerima setiap permintaan dengan header Authorization yang berisi JWT yang dikeluarkan oleh IdP. Gerbang telah memvalidasi token ini, sehingga aplikasi Anda dapat langsung menguraikannya untuk mengekstrak informasi pengguna seperti sub, email, atau klaim kustom—tidak diperlukan panggilan tambahan ke IdP.

Apa fungsi cookie sesi?

Gerbang menggunakan cookie sesi untuk melacak status autentikasi setiap pengguna. Aplikasi Anda dapat mengabaikan cookie ini dengan aman. Untuk mengakses identitas pengguna, baca JWT dari header Authorization saja.

Bagaimana cara mendapatkan atribut pengguna tambahan dari IdP?

Tidak diperlukan konfigurasi ASM tambahan. Atribut tambahan bergantung pada implementasi IdP Anda. Untuk Alibaba Cloud IDaaS, lihat Rules for OIDC id_token Extended Fields.

Referensi