OpenID Connect (OIDC), yang dibangun di atas protokol OAuth 2.0, adalah protokol untuk otentikasi identitas dan otorisasi. Protokol ini umumnya digunakan untuk mengimplementasikan Single Sign-On (SSO). Setelah mengonfigurasi SSO berbasis OIDC pada gateway ingress, Anda dapat menggunakan informasi identitas dari Alibaba Cloud IDentity as a Service (IDaaS) atau penyedia identitas lain (IdP) yang sesuai dengan protokol OIDC untuk masuk ke beberapa sistem terkait dengan satu ID tanpa memodifikasi aplikasi Anda. Hal ini meningkatkan keamanan aplikasi serta menyederhanakan pengembangan dan manajemen aplikasi.
Prasyarat
Sebuah aplikasi telah diterapkan di kluster yang ditambahkan ke instance ASM.
Injeksi proxy sidecar otomatis diaktifkan untuk namespace tertentu. Untuk informasi lebih lanjut, lihat Konfigurasikan kebijakan injeksi proxy sidecar.
Sebuah gateway ingress telah dibuat dalam instance Service Mesh (ASM) dan alamat IP dari gateway ingress telah diperoleh. Untuk informasi lebih lanjut, lihat Buat gateway ingress dan Sublangkah 1 dari Langkah 3 dalam Gunakan sumber daya Istio untuk merutekan lalu lintas ke versi layanan yang berbeda.
Sebuah IdP telah dikonfigurasi. Untuk informasi lebih lanjut, lihat Langkah 1 dan Langkah 2 dalam Integrasikan Alibaba Cloud IDaaS dengan ASM untuk mengimplementasikan single sign-on.
Setelah IdP dikonfigurasi, Anda dapat memperoleh informasi yang akan digunakan dalam Langkah 5.
redirect uri: http://${alamat IP dari gateway ingress}/oauth2/callback issuer: https://eiam-api-cn-hangzhou.aliyuncs.com/v2/idaas_tbn25osdlmz6gtqfq3j2pz****/app_ml5tzapsl7zmfo53wb3nwk****/oidc client id: ******** client secret: *********
Prosedur
Dalam contoh ini, sebuah instance Alibaba Cloud IDaaS digunakan sebagai IdP untuk mengimplementasikan SSO ke aplikasi dalam ASM. Jika Anda menggunakan OIDC IdP yang dikelola sendiri, lihat Integrasikan Keycloak dengan ASM untuk mengimplementasikan single sign-on.
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih .
Di halaman Ingress Gateway, klik gateway ingress yang ingin digunakan.
Di panel navigasi kiri, pilih .
Di langkah OIDC Config wizard konfigurasi, aktifkan Enable gateway OIDC Single Sign-On, konfigurasikan parameter yang diperlukan, lalu klik Next.
Parameter
Deskripsi
Redirect address
Dalam contoh ini, Use ingressgateway IP address dan http dipilih.
Callback Address
URL tempat pengguna dialihkan.
OIDC Issuer URL
URL yang digunakan untuk mengidentifikasi dan mengotentikasi penerbit OIDC.
Client ID
ID klien yang disediakan oleh penerbit.
Client Secret
Rahasia klien yang disediakan oleh penerbit.
Cookie Secret
String seed untuk cookie aman, yang dapat dienkripsi Base64.
Cookie Expire
Jangka waktu validitas cookie. Cookie kedaluwarsa setelah periode tersebut berakhir. Jika Anda menetapkan parameter ini ke 0, cookie tidak akan kedaluwarsa.
Cookie refresh interval
Interval di mana cookie diperbarui. Jika Anda menetapkan parameter ini ke 0, cookie tidak diperbarui.
Scopes
Jenis informasi pengguna yang dapat diperoleh. Scopes yang ditentukan harus didukung oleh penerbit.

Di langkah Matching Rule wizard konfigurasi, konfigurasikan parameter yang diperlukan dan klik Submit.
Parameter
Deskripsi
Match Mode
Dalam contoh ini, Auth If Matched dipilih. Nilai yang valid:
Auth If Matched: Pengguna harus masuk untuk mengakses sumber daya di jalur yang ditentukan.
Bypass Auth If Matched: Pengguna tidak perlu masuk untuk mengakses sumber daya di jalur yang ditentukan.
Add Match Rule
Aktifkan saklar Path dan atur parameter ini ke /productpage. Konfigurasi ini menunjukkan bahwa permintaan untuk mengakses sumber daya di jalur /productpage memerlukan otentikasi OIDC.
Di langkah Complete wizard konfigurasi, muncul pesan yang menunjukkan bahwa SSO berbasis OIDC berhasil dikonfigurasikan, dan sumber daya keamanan Istio asli ditampilkan. Anda dapat mengklik YAML untuk melihat konfigurasi sumber daya.
Gunakan browser untuk mengakses http://${Alamat gateway ASM}/productpage untuk memeriksa apakah konfigurasi SSO berbasis OIDC berlaku.
Ganti ${alamat IP dari gateway ingress} dengan alamat IP dari gateway ingress yang diinginkan. Jika halaman berikut muncul, itu menunjukkan bahwa akses berhasil dan konfigurasi SSO berbasis OIDC berlaku.

FAQ
Setelah SSO berbasis OIDC dikonfigurasikan pada gateway ingress, apakah aplikasi saya perlu mendapatkan token akses atau meminta informasi pengguna dari IdP?
Setelah SSO berbasis OIDC dikonfigurasikan pada gateway ingress, aplikasi Anda dapat mengabaikan logika terkait otorisasi dan otentikasi IdP. Aplikasi Anda menerima permintaan yang berisi header dengan kunci Authorization. Header ini ditambahkan saat permintaan diproses oleh gateway ingress. Header ini adalah JSON Web Token (JWT) yang dihasilkan oleh IdP. Payload JWT berisi informasi pengguna yang diperlukan oleh aplikasi Anda dan JWT telah diautentikasi oleh gateway ingress. Oleh karena itu, aplikasi Anda tidak perlu mengotentikasi ulang JWT. Aplikasi Anda dapat langsung mengurai header ini dari permintaan tanpa perlu meminta informasi pengguna dari IdP.
Setelah SSO berbasis OIDC dikonfigurasikan, sebuah cookie ditambahkan ketika saya masuk ke browser. Apakah cookie ini penting untuk aplikasi saya?
Aplikasi Anda dapat mengabaikan cookie ini. Cookie ini digunakan oleh gateway untuk mencatat status sesi saat ini dan tidak bermakna bagi aplikasi Anda. Aplikasi Anda cukup mendapatkan JWT dalam permintaan.
Bagaimana cara mendapatkan informasi tambahan yang disediakan oleh IdP saya?
Tidak diperlukan konfigurasi di ASM. Anda perlu merujuk pada implementasi IdP yang sesuai. Dalam contoh ini, Alibaba Cloud IDaaS digunakan.
Bagaimana cara keluar dari aplikasi?
Anda dapat keluar dari aplikasi dengan melakukan langkah-langkah berikut:
Keluar dari IdP. Anda harus keluar dari IdP menggunakan metode yang disediakan oleh IdP Anda. Umumnya, IdP menyediakan URI untuk keluar. Anda dapat keluar dari IdP dengan mengunjungi URI tersebut.
Hapus cookie yang ditetapkan oleh gateway ingress di klien. Anda dapat memanggil path
/oauth2/sign_outsecara langsung, dan gateway ingress secara otomatis menghapus cookie yang sesuai.
ASM V1.18.147 dan yang lebih baru memungkinkan Anda mengonfigurasi titik akhir logoff IdP pada gateway ingress. Anda dapat memasukkan titik akhir pada halaman konfigurasi OIDC. Kemudian, dalam konfigurasi aturan pencocokan, Anda dapat menentukan bahwa permintaan untuk mengakses sumber daya di path /oauth2/sign_out tidak memerlukan otentikasi OIDC. Setelah konfigurasi selesai, ketika Anda mengunjungi path /oauth2/sign_out menggunakan browser, cookie yang sesuai akan dihapus dan Anda akan dialihkan ke titik akhir logoff yang Anda tetapkan. Untuk informasi lebih lanjut tentang cara keluar dari Alibaba Cloud IDaaS, lihat SLO.
Referensi
Untuk informasi lebih lanjut tentang item konfigurasi aplikasi OIDC, seperti operasi API, rotasi rahasia, jenis grant OIDC yang didukung oleh IDaaS, konfigurasi di IDaaS, dan konfigurasi di aplikasi, lihat Konfigurasi umum, Konfigurasikan SSO, Konfigurasi SSO OIDC, dan Aturan untuk nilai bidang id_token OIDC yang diperluas.
Ketika pengguna yang masuk ke aplikasi dengan mengimplementasikan SSO dari IDaaS ingin keluar, pengguna dapat memulai logout global di aplikasi untuk mengakhiri sesi aplikasi serta sesi masuk utama IDaaS. Untuk informasi lebih lanjut, lihat SLO.