All Products
Search
Document Center

Alibaba Cloud Service Mesh:Konfigurasikan otentikasi JWT pada gerbang ASM

Last Updated:Sep 13, 2026

Untuk menerapkan otentikasi dan otorisasi terpadu di tingkat gerbang, Anda dapat mengaktifkan otentikasi JWT pada gerbang sehingga hanya permintaan yang telah diautentikasi yang dapat mengakses layanan backend.

Latar Belakang

JSON Web Token (JWT) merupakan mekanisme umum untuk otentikasi dan otorisasi. JWT berisi informasi pengguna serta bidang yang menyimpan data terenkripsi. Anda dapat mendekripsi bidang tersebut dan membandingkannya dengan informasi pengguna asli untuk memverifikasi identitas pengguna. Untuk informasi selengkapnya, lihat JWT.

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 ASM Gateways > Ingress Gateway.

  3. Pada halaman Ingress Gateway, klik nama gerbang target.

  4. Di panel navigasi halaman ikhtisar gerbang, pilih Gateway Security > JWT Authentication.

  5. Pada wizard JWT Authentication Configuration, aktifkan sakelar Enable Gateway JWT Authentication, konfigurasikan parameter, lalu klik Next.

    Parameter

    Deskripsi

    Issuer

    Penerbit JWT. Dalam contoh ini, parameter ini diatur ke testing@secure.istio.io.

    JWKS Source

    Pilih jwks.

    Key

    Contoh:

    { "keys":[ {"e":"AQAB","kid":"DHFbpoIUqrY8t2zpA2qXfCmr5VO5ZEr4RzHU_-envvQ","kty":"RSA","n":"xAE7eB6qugXyCAG3yhh7pkDkT65pHymX-P7KfIupjf59vsdo91bSP9C8H07pSAGQO1MV_xFj9VswgsCg4R6otmg5PV2He95lZdHtOcU5DXIg_pbhLdKXbi66GlVeK6ABZOUW3WYtnNHD-91gVuoeJT_DwtGGcp4ignkgXfkiEm4sw-4sfb4qdt5oLbyVpmW6x9cfa7vs2WTfURiCrBoUqgBo_-4WTiULmmHSGZHOjzwa8WtrtOQGsAFjIbno85jp6MnGGGZPYZbDAa_b3y5u-YpW7ypZrvD8BgtKVjgtQgZhLAGezMt0ua3DRrWnKqTZ0BJ_EyxOGuHJrLsn00fnMQ"}]}

    Advanced options

    Klik Advanced options. Di kotak dialog Advanced JWT Rule Options, Anda dapat menyesuaikan lokasi token, menentukan apakah JWT akan diteruskan, dan menentukan apakah muatan JWT akan diteruskan dalam header permintaan. Setelah selesai, klik OK.

  6. Pada wizard Matching Rules, konfigurasikan parameter dan klik Submit.

    Parameter

    Deskripsi

    Match Mode

    Dalam contoh ini, dipilih Selected requests must be authenticated. Nilai yang valid:

    • Selected requests must be authenticated: Permintaan yang dipilih harus lolos otentikasi JWT.

    • Selected requests can skip authentication: Lewati otentikasi JWT untuk permintaan yang dipilih.

    Matching Rules

    Pilih Custom Matching Rules, aktifkan sakelar HTTP Path, dan atur Path ke /productpage. Konfigurasi ini mewajibkan permintaan ke path /productpage lolos otentikasi JWT. Permintaan ke path lain dapat melewati otentikasi ini.

    Catatan

    Untuk permintaan lainnya, permintaan tanpa JWT berhasil, tetapi permintaan dengan JWT tidak valid gagal.

    Setelah aturan otentikasi dibuat, langkah Finish wizard menampilkan pesan Gateway JWT authentication is created dan mencantumkan resource keamanan native dari Service Mesh. Anda dapat mengklik View YAML untuk melihat konfigurasi detail resource tersebut.

  7. Verifikasi bahwa otentikasi JWT berfungsi.

    1. Atur variabel lingkungan dengan menjalankan perintah berikut.

      TOKEN=eyJhbGciOiJSUzI1NiIsImtpZCI6IkRIRmJwb0lVcXJZOHQyenBBMnFYZkNtcjVWTzVaRXI0UnpIVV8tZW52dlEiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjQ2ODU5ODk3MDAsImZvbyI6ImJhciIsImlhdCI6MTUzMjM4OTcwMCwiaXNzIjoidGVzdGluZ0BzZWN1cmUuaXN0aW8uaW8iLCJzdWIiOiJ0ZXN0aW5nQHNlY3VyZS5pc3Rpby5pbyJ9.CfNnxWP2tcnR9q0vxyxweaF3ovQYHYZl82hAUsn21bwQd9zP7c-LS9qd_vpdLG4Tn1A15NxfCjp5f7QNBUo-KC9PJqYpgGbaXhaGx7bEdFWjcwv3nZzvc7M__ZpaCERdwU7igUmJqYGBYQ51vr2njU9ZimyKkfDe3axcyiBZde7G6dabliUosJvvKOPcKIWPccCgefSj_GNfwIip3-SsFdlR7BtbVUcqR-yv-XOxJ3UcMI0tz3uMiiZcyPV7sNCU4KRnemRIMHVOfuvHsU60_GhGbiSFzgPTAa9WTltbnarTbxudb_YEOx12JiwYToeX0DCPb43W1tzIBxgm8NxUg
    2. Uji akses dengan menjalankan perintah berikut.

      • Uji 1: Akses path /productpage dengan JWT yang valid.

        curl -I http://${ASM_GATEWAY_IP}/productpage -H "Authorization: Bearer $TOKEN"

        Contoh output:

        HTTP/1.1 200 OK
        content-type: text/html; charset=utf-8
        content-length: 4294
        server: istio-envoy
        date: Tue, 17 Jan 2023 08:47:34 GMT
        x-envoy-upstream-service-time: 17
      • Uji 2: Akses path /productpage tanpa JWT.

        curl -I http://${ASM_GATEWAY_IP}/productpage

        Contoh output:

        HTTP/1.1 403 Forbidden
        content-length: 19
        content-type: text/plain
        date: Tue, 17 Jan 2023 08:50:31 GMT
        server: istio-envoy
      • Uji 3: Akses path /productpage dengan JWT tidak valid.

        curl -I http://${ASM_GATEWAY_IP}/productpage -H "Authorization: Bearer invalid token"

        Contoh output:

        HTTP/1.1 401 Unauthorized
        www-authenticate: Bearer realm="http://114.55.XXX.XXX/productpage", error="invalid_token"
        content-length: 79
        content-type: text/plain
        date: Tue, 17 Jan 2023 08:51:47 GMT
        server: istio-envoy
      • Uji 4: Akses path lain tanpa JWT.

        curl -I http://${ASM_GATEWAY_IP}/api/v1/products/1   
        HTTP/1.1 200 OK
        content-type: application/json
        content-length: 195
        server: istio-envoy
        date: Tue, 17 Jan 2023 08:55:10 GMT
        x-envoy-upstream-service-time: 16

      Output tersebut mengonfirmasi bahwa otentikasi JWT berfungsi sesuai harapan.

      Jenis

      Hasil

      Mengakses path /productpage dengan JWT yang valid

      Ya

      Mengakses path /productpage tanpa JWT

      Tidak

      Mengakses path /productpage dengan JWT tidak valid

      Tidak

      Mengakses path lain tanpa JWT

      Ya

Topik Terkait