OpenID Connect (OIDC) adalah protokol otentikasi identitas dan otorisasi yang dibangun di atas OAuth 2.0, terutama digunakan untuk single sign-on (SSO). Dengan mengonfigurasi SSO OIDC pada gerbang ASM, Anda dapat menggunakan penyedia identitas seperti Alibaba Cloud IDaaS atau layanan lain yang kompatibel dengan OIDC untuk memungkinkan pengguna masuk sekali dan mengakses beberapa aplikasi tanpa perlu memodifikasi aplikasi tersebut. Pendekatan ini meningkatkan keamanan serta menyederhanakan pengembangan dan manajemen aplikasi.
Prasyarat
Sebuah aplikasi telah dideploy di kluster yang ditambahkan ke instans ASM.
-
Injection sidecar telah diaktifkan untuk namespace tersebut. Untuk informasi selengkapnya, lihat Konfigurasikan kebijakan injection sidecar.
-
Gerbang ingress ASM telah dibuat dan alamatnya telah diperoleh. Untuk informasi selengkapnya, lihat Buat gerbang ingress dan Dapatkan alamat gerbang ingress.
-
Penyedia identitas (IdP) telah dikonfigurasi. Untuk informasi selengkapnya, lihat Integrasikan ASM dengan Alibaba Cloud IDaaS untuk mengaktifkan single sign-on bagi aplikasi dalam mesh di Langkah 1 dan Langkah 2.
Setelah mengonfigurasi IdP, peroleh informasi berikut untuk digunakan di Langkah 5.
redirect uri: http://${gateway address}/oauth2/callback issuer: https://eiam-api-cn-hangzhou.aliyuncs.com/v2/idaas_tbn25osdlmz6gtqfq3j2pz****/app_ml5tzapsl7zmfo53wb3nwk****/oidc client id: ******** client secret: *********
Prosedur
Dokumen ini menggunakan Alibaba Cloud IDaaS sebagai contoh IdP. Jika Anda menggunakan layanan OIDC yang dikelola sendiri, lihat Integrasikan Keycloak dengan ASM untuk menerapkan single sign-on bagi aplikasi dalam mesh.
-
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
-
Di halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih .
-
Di halaman Ingress Gateway, klik nama gerbang yang dituju.
-
Di panel navigasi kiri halaman ikhtisar gerbang, pilih .
-
Di wizard OIDC Config, aktifkan sakelar Enable gateway OIDC Single Sign-On, konfigurasikan parameter, lalu klik Next.
Parameter
Deskripsi
Redirect address
Pada contoh ini, dipilih Use ingressgateway IP address dan protokol http.
Callback Address
URL pengalihan (redirect URL).
OIDC Issuer URL
URL yang mengidentifikasi dan memvalidasi penyedia OpenID Connect.
Client ID
ID klien yang diberikan oleh issuer.
Client Secret
Rahasia klien yang diberikan oleh issuer.
Cookie Secret
Seed yang digunakan untuk menghasilkan cookie aman (encoding Base64 didukung).
Cookie Expire
Masa berlaku cookie. Nilai 0 berarti sesi cookie tidak pernah kedaluwarsa.
Cookie refresh interval
Interval pembaruan cookie. Atur parameter ini ke 0 untuk menonaktifkan pembaruan.
Scopes
Cakupan (scopes) yang diminta. Cakupan yang ditentukan harus didukung oleh issuer.
Aktifkan sakelar Enable gateway OIDC Single Sign-On dan konfigurasikan parameter sesuai tabel. Atur Cookie Expire menjadi
3600detik, Cookie refresh interval menjadi60detik, dan pilih openid untuk Scopes. -
Di wizard Matching Rules, konfigurasikan parameter dan klik Submit.
Parameter
Deskripsi
Match Mode
Pada contoh ini, dipilih Auth If Matched. Berikut penjelasan opsi-opsinya.
-
Auth If Matched: Permintaan yang dipilih memerlukan otentikasi.
-
Bypass Auth If Matched: Permintaan yang dipilih dapat melewati otentikasi.
Add Match Rule
Aktifkan sakelar Path dan atur nilainya menjadi /productpage. Konfigurasi ini mengharuskan permintaan ke path /productpage diautentikasi melalui OIDC.
Setelah konfigurasi dibuat, wizard Complete akan menampilkan pesan sukses dan sumber daya keamanan Service Mesh yang dihasilkan. Anda dapat mengklik View YAML untuk melihat detail sumber daya tersebut.
-
-
Di browser, akses http://${ASM gateway address}/productpage untuk memverifikasi bahwa konfigurasi single sign-on OIDC berjalan efektif.
Ganti ${ASM gateway address} dengan alamat gerbang ingress Anda. Anda akan dialihkan ke halaman login Alibaba Cloud IDaaS. Pengalihan ini mengonfirmasi bahwa konfigurasi single sign-on OIDC berjalan efektif. Di halaman login, masukkan Username, nomor ponsel, atau email dan Password Anda, lalu klik Log In. Setelah berhasil login, Anda dapat mengakses halaman tersebut.
FAQ
Perilaku aplikasi dengan OIDC gerbang
Setelah Anda mengaktifkan OIDC pada gerbang, aplikasi Anda tidak perlu menangani logika apa pun terkait otentikasi atau otorisasi IdP. Header dengan kunci Authorization ditambahkan ke permintaan saat melewati gerbang. Header ini berisi Token Web JSON (JWT) dari IdP. Muatan JWT mencakup informasi pengguna yang diperlukan dan telah divalidasi oleh gerbang, sehingga aplikasi Anda tidak perlu memvalidasinya lagi. Aplikasi Anda dapat mengurai header ini dari permintaan untuk mendapatkan informasi pengguna.
Makna cookie sesi OIDC
Tidak. Cookie tersebut mencatat status sesi di gerbang dan tidak relevan dengan aplikasi. Aplikasi Anda hanya perlu mengurai JWT dari header permintaan.
Mendapatkan informasi IdP tambahan
Proses ini bergantung pada penyedia identitas Anda. Untuk Alibaba Cloud IDaaS, lihat Kelola bidang akun.
Keluar dari Sesi
Logout melibatkan dua langkah:
-
Logout dari sesi IdP menggunakan metode yang disediakan oleh IdP Anda. Biasanya, IdP menyediakan URI logout yang dapat Anda panggil untuk menghentikan sesi.
-
Hapus cookie sesi yang ditetapkan oleh gerbang di sisi klien. Anda dapat melakukannya dengan memanggil path
/oauth2/sign_out, yang akan membuat gerbang secara otomatis menghapus cookie yang sesuai.
Mulai dari ASM v1.18.147, Anda dapat mengonfigurasi titik akhir logout IdP langsung di gerbang. Anda dapat menentukan titik akhir tersebut di halaman konfigurasi OIDC dan mengatur aturan agar melewati otentikasi untuk path /oauth2/sign_out. Setelah konfigurasi selesai, mengakses /oauth2/sign_out di browser akan menghapus cookie dan mengarahkan Anda ke titik akhir logout yang telah dikonfigurasi. Untuk informasi lebih lanjut tentang cara logout dari Alibaba Cloud IDaaS, lihat Single Logout (SLO).
Dokumen terkait
-
Untuk informasi lebih lanjut tentang pengaturan aplikasi OIDC, seperti akses API, rotasi kunci, jenis grant OIDC yang didukung oleh IDaaS, serta konfigurasi di sisi IDaaS dan aplikasi, lihat Pengaturan dasar, Konfigurasikan SSO, Konfigurasikan SSO OIDC, dan Aturan nilai field id_token OIDC tambahan.
-
Setelah login ke aplikasi menggunakan single sign-on IDaaS, Anda dapat memulai logout global dari sisi aplikasi untuk menghentikan sesi login utama IDaaS. Untuk informasi selengkapnya, lihat Single Logout (SLO).