全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Konfigurasikan kebijakan keamanan ASM untuk menerapkan otentikasi berbasis JWT

更新时间:Jul 02, 2025

Untuk melakukan otentikasi identitas dan kontrol otorisasi dalam Service Mesh (ASM), Anda dapat mengonfigurasi kebijakan keamanan ASM yang menerapkan otentikasi berbasis JSON Web Token (JWT). Dengan cara ini, hanya permintaan dengan JWT valid yang dapat mengakses sumber daya terlindungi, sehingga meningkatkan keamanan dan perlindungan privasi komunikasi antar-layanan.

Informasi Latar Belakang

JWT adalah standar terbuka yang biasanya digunakan untuk otentikasi dan otorisasi pengguna. JWT membawa informasi pengguna serta bidang yang menyimpan informasi terenkripsi. Saat menerapkan otentikasi berbasis JWT, informasi terenkripsi didekripsi lalu dibandingkan dengan informasi masukan pengguna untuk memverifikasi identitasnya.

Prasyarat

Prosedur

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

  2. Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih Mesh Security Center > ASMSecurityPolicy.

  3. Di halaman ASMSecurityPolicy, klik Create.

  4. Di kotak dialog Create ASMSecurityPolicy, klik JWT lalu klik OK.

    1. Di langkah JWT Config dari panduan konfigurasi, atur parameter dan klik Next.

      Parameter

      Contoh

      ASMSecurityPolicyName

      test-jwt

      Certification Rules

      Issuer

      testing@secure.istio.io

      JWKS Source

      jwks

      Key

      { "keys":[ {"e":"AQAB","kid":"DHFbpoIUqrY8t2zpA2qXfCmr5VO5ZEr4RzHU_-envvQ","kty":"RSA","n":"xAE7eB6qugXyCAG3yhh7pkDkT65pHymX-P7KfIupjf59vsdo91bSP9C8H07pSAGQO1MV_xFj9VswgsCg4R6otmg5PV2He95lZdHtOcU5DXIg_pbhLdKXbi66GlVeK6ABZOUW3WYtnNHD-91gVuoeJT_DwtGGcp4ignkgXfkiEm4sw-4sfb4qdt5oLbyVpmW6x9cfa7vs2WTfURiCrBoUqgBo_-4WTiULmmHSGZHOjzwa8WtrtOQGsAFjIbno85jp6MnGGGZPYZbDAa_b3y5u-YpW7ypZrvD8BgtKVjgtQgZhLAGezMt0ua3DRrWnKqTZ0BJ_EyxOGuHJrLsn00fnMQ"}]}
    2. Di langkah Workload and Match Rules dari panduan konfigurasi, klik Add Workload Group. Di kotak dialog New Workload Group, atur parameter, klik OK, lalu klik Submit.

      Tabel berikut menjelaskan cara mengonfigurasi parameter dalam contoh ini.

      Parameter

      Deskripsi

      Workload Group Name

      Atur parameter menjadi test-policy.

      Workload List

      1. Klik Add Workload.

      2. Di kotak dialog Add Workload, pilih Gateway Scope.

      3. Di kotak Select workloads, pilih workload yang ingin ditambahkan, klik ikon 添加 untuk menambahkan workload terpilih ke kotak selected, lalu klik OK.

      Match Rule List

      Dua mode pencocokan berikut tersedia:

      • Auth If Matched: Hanya permintaan yang membawa JWT valid yang diizinkan.

      • Bypass Auth If Matched: Permintaan yang membawa JWT valid atau tidak membawa JWT diizinkan. Permintaan yang membawa JWT tidak valid ditolak.

      Untuk contoh ini, pilih Auth If Matched, atur Matching Rules menjadi Custom Matching Rules, klik Add Match Rule, lalu konfigurasikan aturan berikut:

      • Aturan 1: Nyalakan saklar Path dan atur parameter menjadi /static/*.

      • Aturan 2: Nyalakan saklar Path dan atur parameter menjadi /api/*.

      image.png

      Di langkah Complete dari panduan konfigurasi, pesan "Pembuatan ASMSecurityPolicy berhasil" muncul, menunjukkan bahwa kebijakan keamanan ASM telah dibuat. Anda dapat mengklik YAML untuk melihat sumber daya yang dibuat, atau klik Complete untuk kembali ke halaman ASMSecurityPolicy untuk melihat kebijakan keamanan yang dibuat.

  5. Verifikasi apakah konfigurasi otentikasi berbasis JWT berlaku.

    1. Jalankan perintah berikut untuk melakukan tes akses:

      curl -I http://${IP address of the ingress gateway}/productpage # Kode status 200 dikembalikan. 
      curl -I http://${IP address of the ingress gateway}/api/v1/products/1 # Kode status 403 dikembalikan. 
      curl -I http://${IP address of the ingress gateway}/static/jquery.min.js  # Kode status 403 dikembalikan. 
      
      # Konfigurasikan JWT. 
      TOKEN=eyJhbGciOiJSUzI1NiIsImtpZCI6IkRIRmJwb0lVcXJZOHQyenBBMnFYZkNtcjVWTzVaRXI0UnpIVV8tZW52dlEiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjQ2ODU5ODk3MDAsImZvbyI6ImJhciIsImlhdCI6MTUzMjM4OTcwMCwiaXNzIjoidGVzdGluZ0BzZWN1cmUuaXN0aW8uaW8iLCJzdWIiOiJ0ZXN0aW5nQHNlY3VyZS5pc3Rpby5pbyJ9.CfNnxWP2tcnR9q0vxyxweaF3ovQYHYZl82hAUsn21bwQd9zP7c-LS9qd_vpdLG4Tn1A15NxfCjp5f7QNBUo-KC9PJqYpgGbaXhaGx7bEdFWjcwv3nZzvc7M__ZpaCERdwU7igUmJqYGBYQ51vr2njU9ZimyKkfDe3axcyiBZde7G6dabliUosJvvKOPcKIWPccCgefSj_GNfwIip3-SsFdlR7BtbVUcqR-yv-XOxJ3Uc1MI0tz3uMiiZcyPV7sNCU4KRnemRIMHVOfuvHsU60_GhGbiSFzgPTAa9WTltbnarTbxudb_YEOx12JiwYToeX0DCPb43W1tzIBxgm8NxUg
      
      # Kode status 200 dikembalikan untuk semua permintaan berikut: 
      curl -I http://${IP address of the ingress gateway}/productpage -H "Authorization: Bearer $TOKEN"
      curl -I http://${IP address of the ingress gateway}/api/v1/products/1 -H "Authorization: Bearer $TOKEN"
      curl -I http://${IP address of the ingress gateway}/static/jquery.min.js -H "Authorization: Bearer $TOKEN"

      Sesuai dengan mode pencocokan dan aturan pencocokan yang ditentukan, permintaan diizinkan mengakses jalur yang dimulai dengan /static atau /api hanya saat mereka membawa JWT valid, sedangkan permintaan diizinkan mengakses jalur yang dimulai dengan /productpage hanya saat mereka membawa JWT valid atau tidak membawa JWT. Hasil akses sesuai harapan. Ini menunjukkan bahwa konfigurasi otentikasi berbasis JWT berlaku.

    2. Ubah mode pencocokan dan aturan pencocokan otentikasi berbasis JWT.

      1. Di halaman ASMSecurityPolicy, temukan kebijakan otentikasi berbasis JWT yang ingin Anda ubah dan klik Edit di kolom Actions.

      2. Di langkah JWT Config dari panduan konfigurasi, klik Next.

      3. Di langkah Workload and Match Rules, temukan grup workload yang ingin Anda ubah dan klik Edit di kolom Operator.

      4. Di kotak dialog New Workload Group, ubah mode pencocokan dan aturan pencocokan, klik OK, lalu klik Submit.

        Tabel berikut menjelaskan pengaturan parameter setelah modifikasi.

        Parameter

        Deskripsi

        Match Mode

        Pilih Bypass Auth If Matched.

        Matching Rules

        Hapus aturan pencocokan /api/* dan tinggalkan hanya aturan pencocokan /static/*.

        image.png

    3. Jalankan perintah berikut untuk memeriksa apakah konfigurasi otentikasi berbasis JWT yang dimodifikasi berlaku:

      curl -I http://${IP address of the ingress gateway}/productpage # Kode status 403 dikembalikan. 
      curl -I http://${IP address of the ingress gateway}/api/v1/products/1 # Kode status 403 dikembalikan. 
      curl -I http://${IP address of the ingress gateway}/static/jquery.min.js   # Kode status 200 dikembalikan. 
      
      # Konfigurasikan JWT. 
      TOKEN=eyJhbGciOiJSUzI1NiIsImtpZCI6IkRIRmJwb0lVcXJZOHQyenBBMnFYZkNtcjVWTzVaRXI0UnpIVV8tZW52dlEiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjQ2ODU5ODk3MDAsImZvbyI6ImJhciIsImlhdCI6MTUzMjM4OTcwMCwiaXNzIjoidGVzdGluZ0BzZWN1cmUuaXN0aW8uaW8iLCJzdWIiOiJ0ZXN0aW5nQHNlY3VyZS5pc3Rpby5pbyJ9.CfNnxWP2tcnR9q0vxyxweaF3ovQYHYZl82hAUsn21bwQd9zP7c-LS9qd_vpdLG4Tn1A15NxfCjp5f7QNBUo-KC9PJqYpgGbaXhaGx7bEdFWjcwv3nZzvc7M__ZpaCERdwU7igUmJqYGBYQ51vr2njU9ZimyKkfDe3axcyiBZde7G6dabliUosJvvKOPcKIWPccCgefSj_GNfwIip3-SsFdlR7BtbVUcqR-yv-XOxJ3Uc1MI0tz3uMiiZcyPV7sNCU4KRnemRIMHVOfuvHsU60_GhGbiSFzgPTAa9WTltbnarTbxudb_YEOx12JiwYToeX0DCPb43W1tzIBxgm8NxUg
      
      # Kode status 200 dikembalikan untuk semua permintaan berikut: 
      curl -I http://${IP address of the ingress gateway}/productpage -H "Authorization: Bearer $TOKEN"
      curl -I http://${IP address of the ingress gateway}/api/v1/products/1 -H "Authorization: Bearer $TOKEN"
      curl -I http://${IP address of the ingress gateway}/static/jquery.min.js -H "Authorization: Bearer $TOKEN"

      Sesuai dengan mode pencocokan baru dan aturan pencocokan, permintaan diizinkan mengakses jalur yang dimulai dengan /static hanya saat mereka tidak membawa JWT atau membawa JWT valid. Permintaan lain diizinkan hanya saat mereka membawa JWT valid. Hasil akses sesuai harapan. Ini menunjukkan bahwa konfigurasi otentikasi berbasis JWT yang baru berlaku.

Referensi