All Products
Search
Document Center

Alibaba Cloud Service Mesh:Konfigurasikan otentikasi JWT dalam ASMSecurityPolicy

Last Updated:Jun 21, 2026

Untuk mengontrol otentikasi dan otorisasi dalam service mesh, konfigurasikan otentikasi JSON Web Token (JWT) dalam ASMSecurityPolicy. Hal ini memastikan bahwa hanya permintaan yang membawa JWT valid yang dapat mengakses resource yang dilindungi, sehingga meningkatkan keamanan dan privasi komunikasi antar-layanan.

Informasi latar belakang

JWT berisi klaim, seperti informasi pengguna, yang ditandatangani secara digital. Sistem dapat memverifikasi signature untuk mengonfirmasi keaslian dan integritas token, sehingga memverifikasi identitas pengguna.

Prasyarat

Prosedur

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

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

  3. Pada halaman ASMSecurityPolicy, klik Create.

  4. Pada kotak dialog Create ASMSecurityPolicy, pilih JWT lalu klik OK.

    1. Pada wizard JWT Config, konfigurasikan parameter lalu 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. Pada halaman Workload and Match Rules, klik Add Workload Group. Pada kotak dialog New Workload Group, konfigurasikan parameter lalu klik OK. Terakhir, klik Submit.

      Tabel berikut menjelaskan contoh konfigurasi.

      Parameter

      Deskripsi

      Workload Group Name

      Atur nilainya menjadi test-policy.

      Workload List

      1. Klik Add Workload.

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

      3. Pada bagian Select workloads, pilih workload target lalu klik ikon 添加 untuk memindahkannya ke bagian selected. Kemudian, klik OK.

      Match Rule List

      Opsi Match Mode berikut tersedia:

      • Auth If Matched: Permintaan yang sesuai dengan aturan harus membawa JWT valid agar berhasil.

      • Bypass Auth If Matched: Permintaan yang sesuai dengan aturan dapat berhasil tanpa JWT atau dengan JWT valid. Permintaan dengan JWT tidak valid akan gagal.

      Pada contoh ini, atur Match Mode menjadi Auth If Matched, atur Matching Rules menjadi Custom Matching Rules, lalu klik Add Match Rule untuk mengonfigurasi aturan berikut.

      • Aturan 1: Aktifkan sakelar Path dan atur nilainya menjadi /static/*.

      • Aturan 2: Aktifkan sakelar Path dan atur nilainya menjadi /api/*.

      Pada halaman Complete, pesan sukses ASMSecurityPolicy created successfully ditampilkan. Anda dapat mengklik View YAML untuk meninjau konfigurasi resource atau mengklik Complete untuk kembali ke halaman ASMSecurityPolicy.

  5. Verifikasi bahwa konfigurasi otentikasi JWT berlaku.

    1. Jalankan perintah berikut untuk menguji akses.

      curl -I http://${GATEWAY_ADDRESS}/productpage  # Mengembalikan 200.
      curl -I http://${GATEWAY_ADDRESS}/api/v1/products/1  # Mengembalikan 403.
      curl -I http://${GATEWAY_ADDRESS}/static/jquery.min.js  # Mengembalikan 403.
      
      # Atur JWT.
      TOKEN=eyJhbGciOiJSUzI1NiIsImtpZCI6IkRIRmJwb0lVcXJZOHQyenBBMnFYZkNtcjVWTzVaRXI0UnpIVV8tZW52dlEiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjQ2ODU5ODk3MDAsImZvbyI6ImJhciIsImlhdCI6MTUzMjM4OTcwMCwiaXNzIjoidGVzdGluZ0BzZWN1cmUuaXN0aW8iLCJzdWIiOiJ0ZXN0aW5nQHNlYcsVyZS5pc3Rpby5pbyJ9.CfNnxWP2tcnR9q0vxyxweaF3ovQYHYZl82hAUsn21bwQd9zP7c-LS9qd_vpdLG4Tn1A15NxfCjp5f7QNBUo-KC9PJqYpgGbaXhaGx7bEdFWjcwv3nZzvc7M__ZpaCERdwU7igUmJqYGBYQ51vr2njU9ZimyKkfDe3axcyiBZde7G6dabliUosJvvKOPcKIWPccCgefSj_GNfwIip3-SsFdlR7BtbVUcqR-yv-XOxJ3UcMI0tz3uMiiZcyPV7sNCU4KRnemRIMHVOfuvHsU60_GhGbiSFzgPTAa9WTltbnarTbxudb_YEOx12JiwYToeX0DCPb43W1tzIBxgm8NxUg
      
      # Permintaan berikut semuanya mengembalikan 200.
      curl -I http://${GATEWAY_ADDRESS}/productpage -H "Authorization: Bearer $TOKEN"
      curl -I http://${GATEWAY_ADDRESS}/api/v1/products/1 -H "Authorization: Bearer $TOKEN"
      curl -I http://${GATEWAY_ADDRESS}/static/jquery.min.js -H "Authorization: Bearer $TOKEN"

      Berdasarkan aturan konfigurasi, permintaan untuk jalur yang dimulai dengan /api atau /static harus membawa JWT valid agar berhasil. Permintaan untuk jalur /productpage tidak memerlukan JWT. Hasilnya konsisten dengan komentar dalam kode dan mengonfirmasi bahwa konfigurasi otentikasi JWT berlaku.

    2. Modifikasi aturan konfigurasi otentikasi JWT.

      1. Pada halaman ASMSecurityPolicy, temukan kebijakan keamanan otentikasi JWT target lalu klik edit pada kolom Operator.

      2. Pada wizard JWT Config, klik Next.

      3. Pada halaman Workload and Match Rules, temukan grup workload target lalu klik edit pada kolom Operator.

      4. Pada kotak dialog New Workload Group, modifikasi parameter, klik OK, lalu klik Submit.

        Tabel berikut menjelaskan contoh konfigurasi.

        Parameter

        Deskripsi

        Match Mode

        Pilih Bypass Auth If Matched.

        Matching Rules

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

    3. Jalankan perintah berikut untuk memverifikasi bahwa konfigurasi otentikasi JWT yang dimodifikasi berlaku.

      curl -I http://${GATEWAY_ADDRESS}/productpage  # Mengembalikan 403.
      curl -I http://${GATEWAY_ADDRESS}/api/v1/products/1  # Mengembalikan 403.
      curl -I http://${GATEWAY_ADDRESS}/static/jquery.min.js   # Mengembalikan 200.
      
      # Atur JWT.
      TOKEN=eyJhbGciOiJSUzI1NiIsImtpZCI6IkRIRmJwb0lVcXJZOHQyenBBMnFYZkNtcjVWTzVaRXI0UnpIVV8tZW52dlEiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjQ2ODU5ODk3MDAsImZvbyI6ImJhciIsImlhdCI6MTUzMjM4OTcwMCwiaXNzIjoidGVzdGluZ0BzZWN1cmUuaXN0aW8uaW8iLCJzdWIiOiJ0ZXN0aW5nQHNlY3VyZS5pc3Rpby5pbyJ9.CfNnxWP2tcnR9q0vxyxweaF3ovQYHYZl82hAUsn21bwQd9zP7c-LS9qd_vpdLG4Tn1A15NxfCjp5f7QNBUo-KC9PJqYpgGbaXhaGx7bEdFWjcwv3nZzvc7M__ZpaCERdwU7igUmJqYGBYQ51vr2njU9ZimyKkfDe3axcyiBZde7G6dabliUosJvvKOPcKIWPccCgefSj_GNfwIip3-SsFdlR7BtbVUcqR-yv-XOxJ3UcMI0tz3uMiiZcyPV7sNCU4KRnemRIMHVOfuvHsU60_GhGbiSFzgPTAa9WTltbnarTbxudb_YEOx12JiwYToeX0DCPb43W1tzIBxgm8NxUg
      
      # Permintaan berikut semuanya mengembalikan 200.
      curl -I http://${GATEWAY_ADDRESS}/productpage -H "Authorization: Bearer $TOKEN"
      curl -I http://${GATEWAY_ADDRESS}/api/v1/products/1 -H "Authorization: Bearer $TOKEN"
      curl -I http://${GATEWAY_ADDRESS}/static/jquery.min.js -H "Authorization: Bearer $TOKEN"

      Berdasarkan aturan konfigurasi yang dimodifikasi, permintaan untuk jalur yang dimulai dengan /static dapat berhasil tanpa JWT atau dengan JWT valid. Semua permintaan lainnya harus membawa JWT valid agar berhasil. Hasilnya konsisten dengan komentar dalam kode dan mengonfirmasi bahwa konfigurasi otentikasi JWT yang dimodifikasi berlaku.

Dokumen terkait