All Products
Search
Document Center

API Gateway:Plug-in Otentikasi JWT

Last Updated:Jul 02, 2025

RFC 7519-compliant JSON Web Token (JWT) adalah metode yang digunakan oleh API Gateway untuk mengotentikasi permintaan. API Gateway menampung kunci JSON Web Publik (JWKs) pengguna dan menggunakan JWK ini untuk menandatangani serta mengotentikasi JWT dalam permintaan. Kemudian, API Gateway meneruskan parameter claim ke layanan backend sebagai parameter backend, menyederhanakan pengembangan aplikasi backend. Topik ini menjelaskan cara mengonfigurasi plug-in otentikasi JWT. Untuk informasi lebih lanjut tentang JWT dan proses otentikasi, lihat Otentikasi berbasis JWT.

Plug-in otentikasi JWT memberikan fungsi yang sama dengan OpenID Connect dan membawa manfaat berikut:

  • Tidak diperlukan konfigurasi tambahan untuk operasi API otorisasi. JWT dapat dihasilkan dan didistribusikan melalui berbagai cara. API Gateway hanya bertanggung jawab atas otentikasi JWT menggunakan JWK publik.

  • JWK tanpa kid yang ditentukan didukung.

  • Beberapa JWK dapat dikonfigurasi.

  • Informasi token dapat dibaca dari header atau parameter query permintaan.

  • Token juga dapat dibaca dari header Cookie dalam permintaan menggunakan plug-in otentikasi JWT.

  • Untuk mengirim JWT di header Authorization seperti Authorization bearer {token}, atur parameter menjadi Authorization dan parameterLocation menjadi header agar informasi token dapat dibaca dengan benar.

  • Pemeriksaan anti-replay berdasarkan klaim jti didukung jika Anda mengatur preventJtiReplay menjadi true.

  • Permintaan tanpa token dapat diteruskan ke layanan backend tanpa verifikasi jika Anda mengatur bypassEmptyToken menjadi true.

  • Pemeriksaan pengaturan exp untuk token dapat dilewati jika Anda mengatur ignoreExpirationCheck menjadi true.

Jika Anda mengonfigurasi plug-in otentikasi JWT dan mengaitkannya dengan API yang fitur OpenID Connect-nya telah dikonfigurasi, plug-in otentikasi JWT akan menggantikan fitur OpenID Connect.

1. Memperoleh JWK

JWK yang sesuai dengan RFC 7517 digunakan untuk menandatangani dan mengotentikasi JWT. Untuk mengonfigurasi plug-in otentikasi JWT, Anda perlu menghasilkan JWK yang valid, baik secara manual maupun menggunakan generator JWK online seperti mkjwk.org. Contoh berikut menunjukkan JWK yang valid. Pada contoh JWK ini, kunci privat digunakan untuk menandatangani token, sedangkan kunci publik dikonfigurasi di plug-in otentikasi JWT untuk mengotentikasi tanda tangannya.

{
  "kty": "RSA",
  "e": "AQAB",
  "kid": "O9fpdhrViq2zaaaBEWZITz",
  "use": "sig",
  "alg": "RS256",
  "n": "qSVxcknOm0uCq5vGsOmaorPDzHUubBmZZ4UXj-9do7w9X1uKFXAnqfto4TepSNuYU2bA_-tzSLAGBsR-BqvT6w9SjxakeiyQpVmexxnDw5WZwpWenUAcYrfSPEoNU-0hAQwFYgqZwJQMN8ptxkd0170PFauwACOx4Hfr-9FPGy8NCoIO4MfLXzJ3mJ7xqgIZp3NIOGXz-GIAbCf13ii7kSStpYqN3L_zzpvXUAos1FJ9IPXRV84tIZpFVh2lmRh0h8ImK-vI42dwlD_hOIzayL1Xno2R0T-d5AwTSdnep7g-Fwu8-sj4cCRWq3bd61Zs2QOJ8iustH0vSRMYdP5oYQ"
}        

JWK sebelumnya dalam format JSON. Jika Anda ingin mengonfigurasi plug-in otentikasi JWT dalam format YAML, gunakan JWK dalam format YAML.*

  • Untuk plug-in otentikasi JWT, Anda hanya perlu mengonfigurasi kunci publik. Simpan kunci privat Anda dengan aman. Tabel berikut mencantumkan algoritma tanda tangan yang didukung oleh plug-in otentikasi JWT.

Algoritma tanda tangan

Pengaturan alg yang didukung

RSASSA-PKCS1-V1_5 dengan SHA-2

RS256, RS384, RS512

Kurva Eliptik (ECDSA) dengan SHA-2

ES256, ES384, ES512

HMAC menggunakan SHA-2

HS256, HS384, HS512

Penting

Saat mengonfigurasi kunci jenis HS256, HS384, atau HS512, nilai kuncinya dienkripsi dalam format base64url. Jika tanda tangannya tidak valid, periksa apakah kunci Anda memiliki format yang sama dengan kunci yang digunakan untuk menghasilkan token.

2. Konfigurasi

Anda dapat mengonfigurasi plug-in otentikasi JWT dalam format JSON atau YAML karena kedua format tersebut memiliki skema yang sama. Gunakan alat yaml to json untuk mengonversi format konfigurasi plug-in. Contoh berikut menunjukkan template konfigurasi plug-in dalam format YAML:

---
parameter: X-Token           # Parameter tempat JWT dibaca. Ini sesuai dengan parameter API.
parameterLocation: header    # Lokasi tempat JWT dibaca. Nilai yang valid: query dan header. Parameter ini opsional jika Mode Permintaan untuk API terikat diatur ke Map (Filter Out Unknown Parameters) atau Map (Pass-through Unknown Parameters). Parameter ini diperlukan jika Mode Permintaan untuk API terikat diatur ke Pass-through.
preventJtiReplay: false      # Mengontrol apakah akan mengaktifkan pemeriksaan anti-replay untuk jti. Nilai default: false.
bypassEmptyToken: false      # Mengontrol apakah akan meneruskan permintaan yang tidak mencakup token ke layanan backend tanpa verifikasi.
ignoreExpirationCheck: false # Mengontrol apakah akan mengabaikan verifikasi pengaturan exp.
orAppAuth: false # Nilai default adalah false. Baik otentikasi Aplikasi Alibaba Cloud maupun otentikasi JWT diperlukan. Jika nilainya true, metode otentikasi lainnya tidak diperlukan jika satu otentikasi berhasil.
claimParameters:             # Konversi klaim ke parameter. API Gateway memetakan klaim JWT ke parameter backend.
- claimName: aud             # Nama klaim JWT, yang bisa publik atau privat.
  parameterName: X-Aud       # Nama parameter backend, ke mana klaim JWT dipetakan.
  location: header           # Lokasi parameter backend, ke mana klaim JWT dipetakan. Nilai yang valid: query, header, path, dan formData.
- claimName: userId          # Nama klaim JWT, yang bisa publik atau privat.
  parameterName: userId      # Nama parameter backend, ke mana klaim JWT dipetakan.
  location: query            # Lokasi parameter backend, ke mana klaim JWT dipetakan. Nilai yang valid: query, header, path, dan formData.
#
# Kunci publik dalam JWK
jwk:
  kty: RSA
  e: AQAB
  use: sig
  alg: RS256
  n: qSVxcknOm0uCq5vGsOmaorPDzHUubBmZZ4UXj-9do7w9X1uKFXAnqfto4TepSNuYU2bA_-tzSLAGBsR-BqvT6w9SjxakeiyQpVmexxnDw5WZwpWenUAcYrfSPEoNU-0hAQwFYgqZwJQMN8ptxkd0170PFauwACOx4Hfr-9FPGy8NCoIO4MfLXzJ3mJ7xqgIZp3NIOGXz-GIAbCf13ii7kSStpYqN3L_zzpvXUAos1FJ9IPXRV84tIZpFVh2lmRh0h8ImK-vI42dwlD_hOIzayL1Xno2R0T-d5AwTSdnep7g-Fwu8-sj4cCRWq3bd61Zs2QOJ8iustH0vSRMYdP5oYQ
#
# Anda dapat mengonfigurasi beberapa JWK dan menggunakannya bersama dengan bidang jwk.
# Jika beberapa JWK dikonfigurasi, kid diperlukan. Jika JWT tidak mencakup kid, pemeriksaan konsistensi kid gagal.
jwks:
- kid: O9fpdhrViq2zaaaBEWZITz 	# Jika hanya satu JWK yang dikonfigurasi, kid opsional. Jika JWT mencakup kid, API Gateway memeriksa konsistensi kid.
  kty: RSA
  e: AQAB
  use: sig
  alg: RS256
  n: qSVxcknOm0uCq5v....
- kid: 10fpdhrViq2zaaaBEWZITz         # Jika hanya satu JWK yang dikonfigurasi, kid opsional. Jika JWT mencakup kid, API Gateway memeriksa konsistensi kid.
  kty: RSA
  e: AQAB
  use: sig
  alg: RS256
  n: qSVxcknOm0uCq5v...                
  • Plug-in otentikasi JWT mengambil JWT berdasarkan pengaturan parameter dan parameterLocation. Sebagai contoh, jika parameter diatur ke X-Token dan parameterLocation diatur ke header, JWT dibaca dari header X-Token.

  • Jika parameter yang dikonfigurasi dalam API memiliki nama yang sama dengan parameter yang ditentukan oleh parameter, jangan tentukan parameterLocation. Jika tidak, kesalahan dilaporkan saat API dipanggil.

  • Untuk mengirim token di header Authorization seperti Authorization bearer {token}, atur parameter ke Authorization dan parameterLocation ke header agar informasi token dapat dibaca dengan benar.

  • Jika preventJtiReplay diatur ke true, plug-in otentikasi JWT menggunakan jti dalam claims untuk melakukan pemeriksaan anti-replay.

  • Jika bypassEmptyToken diatur ke true dan token tidak termasuk dalam permintaan, API Gateway melewati pemeriksaan dan langsung meneruskan permintaan ke layanan backend.

  • Jika ignoreExpirationCheck diatur ke true, API Gateway melewati verifikasi pengaturan exp. Jika tidak, API Gateway memeriksa apakah token telah kedaluwarsa.

  • Jika API Gateway diminta untuk meneruskan claims dalam token ke layanan backend, Anda dapat mengatur tokenParameters untuk mengonfigurasi parameter berikut yang akan diteruskan:

    • claimName: nama klaim dalam token.

    • parameterName: nama parameter yang diteruskan ke layanan backend.

    • location: lokasi parameter yang diteruskan ke layanan backend. Nilai yang valid: header, query, path, dan formData.

      • Jika parameter ini diatur ke path, jalur backend harus berisi parameter dengan nama yang sama, seperti /path/{userId}.

      • Jika parameter ini diatur ke formData, badan permintaan yang diterima dalam layanan backend harus bertipe Form.

  • Anda hanya dapat mengonfigurasi satu kunci dalam bidang jwk. Anda juga dapat mengonfigurasi beberapa kunci dalam bidang jwks.

    • Anda hanya dapat mengonfigurasi satu kunci dengan kid yang tidak ditentukan.

    • Anda dapat mengonfigurasi beberapa kunci dengan kid yang ditentukan. kid harus unik.

3. Aturan verifikasi

  • Plug-in otentikasi JWT memperoleh token berdasarkan pengaturan parameter dan parameterToken. Jika API Gateway diminta untuk meneruskan permintaan ke layanan backend meskipun permintaan tidak mencakup token, atur bypassEmptyToken ke true.

  • Jika Anda ingin mengonfigurasi beberapa kunci, patuhi prinsip berikut:

    • Prioritaskan pemilihan kunci yang ID-nya sama dengan nilai kid dalam token untuk penandatanganan dan otentikasi.

    • Anda hanya dapat mengonfigurasi satu kunci jika kid tidak ditentukan. Jika tidak ada kunci yang ID-nya sama dengan nilai kid dalam token, gunakan kunci yang tidak memiliki kid yang ditentukan untuk penandatanganan dan otentikasi.

    • Jika semua kunci yang dikonfigurasi memiliki pengaturan kid yang ditentukan, dan token dalam permintaan tidak mencakup kid atau tidak ada kunci yang cocok dengan kid, kesalahan A403JK dilaporkan.

  • Jika token mencakup iat, nbf, dan exp, plug-in otentikasi JWT memverifikasi validitas format waktu mereka. Satuan waktu adalah detik.

  • Secara default, API Gateway memverifikasi pengaturan exp. Jika Anda ingin melewati verifikasi, atur ignoreExpirationCheck ke true.

  • tokenParameters dikonfigurasi untuk mengekstrak parameter yang diperlukan dari claims token. Parameter ini diteruskan ke layanan backend.

4. Mengonfigurasi dataset plug-in untuk plug-in otentikasi JWT

4.1 membuat dataset plug-in otentikasi JWT

  1. Masuk ke Konsol API Gateway. Di panel navigasi kiri, pilih Manage APIs > Plug-ins.

  2. Di halaman Daftar Plug-in, klik tab Plug-in Datasets.

  3. Klik Create Dataset di sudut kanan atas. Dalam kotak dialog yang muncul, tentukan nama untuk dataset, pilih JWT_JWK_LIST untuk parameter Jenis, lalu klik Confirm.

  4. Klik dataset yang dibuat. Di halaman detail dataset, klik Create Dataset Entry di sudut kanan atas. Atur Data Value ke JWK yang didukung oleh plug-in otentikasi JWT dan Validity Period ke periode validitas kunci publik Anda.

    Penting

    Saat mengonfigurasi beberapa JWK, gunakan KID yang berbeda. Urutan nilai data JWK harus dikonfigurasi sesuai dengan contoh berikut.

    kty: RSA
    e: AQAB
    use: sig
    kid: N3h666
    alg: RS256
    n: qfzaxmlnl...

4.2 Contoh

---
parameter: X-Token         # Parameter tempat JWT dibaca. Ini sesuai dengan parameter dalam permintaan API.
parameterLocation: header  # Lokasi tempat JWT dibaca. Nilai yang valid: query dan header. Parameter ini opsional jika Mode Permintaan untuk API terikat diatur ke Request Parameter Mapping(Filter Unknown Parameters) atau Request Parameter Mapping(Passthrough Unknown Parameters). Parameter ini diperlukan jika Mode Permintaan untuk API terikat diatur ke Request Parameter Passthrough.
claimParameters:           # Klaim yang akan dikonversi menjadi parameter. API Gateway memetakan klaim JWT ke parameter backend.
- claimName: aud           # Nama klaim JWT, yang bisa publik atau privat.
  parameterName: X-Aud     # Nama parameter backend, ke mana klaim JWT dipetakan.
  location: header         # Lokasi parameter backend, ke mana klaim JWT dipetakan. Nilai yang valid: query, header, path, dan formData.
- claimName: userId        # Nama klaim JWT, yang bisa publik atau privat.
  parameterName: userId    # Nama parameter backend, ke mana klaim JWT dipetakan.
  location: query          # Lokasi parameter backend, ke mana klaim JWT dipetakan. Nilai yang valid: query, header, path, dan formData.
preventJtiReplay: false    # Mengontrol apakah akan mengaktifkan pemeriksaan anti-replay untuk jti. Nilai default: false.
ignoreExpirationCheck: true # Mengontrol apakah akan mengabaikan verifikasi pengaturan exp.
jwkListDataSet: cb4f000b6b8244329ac25XXXc8a4f9d6 # ID dataset. 
Catatan

Jika dataset tidak berlaku, ajukan tiket untuk meningkatkan instans Anda.

5. Contoh

5.1 Mengonfigurasi JWK tunggal

---
parameter: X-Token         # Parameter tempat JWT dibaca. Ini sesuai dengan parameter dalam permintaan API.
parameterLocation: header  # Lokasi tempat JWT dibaca. Nilai yang valid: query dan header. Parameter ini opsional jika Mode Permintaan untuk API terikat diatur ke Request Parameter Mapping(Filter Unknown Parameters) atau Request Parameter Mapping(Passthrough Unknown Parameters). Parameter ini diperlukan jika Mode Permintaan untuk API terikat diatur ke Request Parameter Passthrough.
claimParameters:           # Klaim yang akan dikonversi menjadi parameter. API Gateway memetakan klaim JWT ke parameter backend.
- claimName: aud           # Nama klaim JWT, yang bisa publik atau privat.
  parameterName: X-Aud     # Nama parameter backend, ke mana klaim JWT dipetakan.
  location: header         # Lokasi parameter backend, ke mana klaim JWT dipetakan. Nilai yang valid: query, header, path, dan formData.
- claimName: userId        # Nama klaim JWT, yang bisa publik atau privat.
  parameterName: userId    # Nama parameter backend, ke mana klaim JWT dipetakan.
  location: query          # Lokasi parameter backend, ke mana klaim JWT dipetakan. Nilai yang valid: query, header, path, dan formData.
preventJtiReplay: false    # Mengontrol apakah akan mengaktifkan pemeriksaan anti-replay untuk jti. Nilai default: false.
#
# Kunci publik dalam JWK
jwk:
  kty: RSA
  e: AQAB
  use: sig
  alg: RS256
  n: qSVxcknOm0uCq5vGsOmaorPDzHUubBmZZ4UXj-9do7w9X1uKFXAnqfto4TepSNuYU2bA_-tzSLAGBsR-BqvT6w9SjxakeiyQpVmexxnDw5WZwpWenUAcYrfSPEoNU-0hAQwFYgqZwJQMN8ptxkd0170PFauwACOx4Hfr-9FPGy8NCoIO4MfLXzJ3mJ7xqgIZp3NIOGXz-GIAbCf13ii7kSStpYqN3L_zzpvXUAos1FJ9IPXRV84tIZpFVh2lmRh0h8ImK-vI42dwlD_hOIzayL1Xno2R0T-d5AwTSdnep7g-Fwu8-sj4cCRWq3bd61Zs2QOJ8iustH0vSRMYdP5oYQ
                        

5.2 Mengonfigurasi beberapa JWK

---
parameter: Authorization   # Parameter tempat token diperoleh. 
parameterLocation: header  # Lokasi tempat token diperoleh.
claimParameters:           # Klaim yang akan dikonversi menjadi parameter. API Gateway memetakan klaim JWT ke parameter backend.
- claimName: aud           # Nama klaim JWT, yang bisa publik atau privat.
  parameterName: X-Aud     # Nama parameter backend, ke mana klaim JWT dipetakan.
  location: header         # Lokasi parameter backend, ke mana klaim JWT dipetakan. Nilai yang valid: query, header, path, dan formData.
- claimName: userId        # Nama klaim JWT, yang bisa publik atau privat.
  parameterName: userId    # Nama parameter backend, ke mana klaim JWT dipetakan.
  location: query          # Lokasi parameter backend, ke mana klaim JWT dipetakan. Nilai yang valid: query, header, path, dan formData.
preventJtiReplay: true     # Mengontrol apakah akan mengaktifkan pemeriksaan anti-replay untuk jti. Nilai default: false.
jwks:
- kid: O9fpdhrViq2zaaaBEWZITz          # kid harus diatur ke nilai yang berbeda untuk JWK yang berbeda.
  kty: RSA
  e: AQAB
  use: sig
  alg: RS256
  n: qSVxcknOm0uCq5v....
- kid: 10fpdhrViq2zaaaBEWZITz 	# kid harus diatur ke nilai yang berbeda untuk JWK yang berbeda.
  kty: RSA
  e: AQAB
  use: sig
  alg: RS256
  n: qSVxcknOm0uCq5v...

5.3. Membaca token dari bidang dalam cookie permintaan.

---
parameter: cookie         # Parameter tempat JWT dibaca. Ini sesuai dengan parameter dalam permintaan API.
parameterLocation: header  # Lokasi tempat JWT dibaca. Nilai yang valid: query dan header. Parameter ini opsional jika Mode Permintaan untuk API terikat diatur ke Request Parameter Mapping(Filter Unknown Parameters) atau Request Parameter Mapping(Passthrough Unknown Parameters). Parameter ini diperlukan jika Mode Perminta untuk API terikat diatur ke Request Parameter Passthrough.
parameterSection: token    # Sebagai contoh, nilai parameter cookie adalah username=tom ; token=abcsef.
claimParameters:           # Klaim yang akan dikonversi menjadi parameter. API Gateway memetakan klaim JWT ke parameter backend.
- claimName: aud           # Nama klaim JWT, yang bisa publik atau privat.
  parameterName: X-Aud     # Nama parameter backend, ke mana klaim JWT dipetakan.
  location: header         # Lokasi parameter backend, ke mana klaim JWT dipetakan. Nilai yang valid: query, header, path, dan formData.
- claimName: userId        # Nama klaim JWT, yang bisa publik atau privat.
  parameterName: userId    # Nama parameter backend, ke mana klaim JWT dipetakan.
  location: query          # Lokasi parameter backend, ke mana klaim JWT dipetakan. Nilai yang valid: query, header, path, dan formData.
preventJtiReplay: true     # Mengontrol apakah akan mengaktifkan pemeriksaan anti-replay untuk jti. Nilai default: false.
jwks:
- kid: O9fpdhrViq2zaaaBEWZITz          # kid harus diatur ke nilai yang berbeda untuk JWK yang berbeda.
  kty: RSA
  e: AQAB
  use: sig
  alg: RS256
  n: qSVxcknOm0uCq5v....
- kid: 10fpdhrViq2zaaaBEWZITz 	# kid harus diatur ke nilai yang berbeda untuk JWK yang berbeda.
  kty: RSA
  e: AQAB
  use: sig
  alg: RS256
  n: qSVxcknOm0uCq5v...

Dalam beberapa skenario web, pengguna mungkin ingin menyimpan token di bidang tertentu dari parameter Cookie untuk memastikan keamanan. Plug-in JWT dari API Gateway memungkinkan token dibaca dari bidang parameter Cookie. Anda dapat menentukan bidang untuk menyimpan token Anda dengan menggunakan parameter parameterSection. Dalam contoh berikut, API Gateway dapat membaca token dari header Cookie.

Cookie: acw_tc=123; token=0QzRCMDBBQUYwRjE1MjYxQzU0QjY4NEM5MTc1NTQ1OUVCOTIzNzA4RDk3MDg5MzlDOTMQTVENDZCRUI1NkYyMEUyO; csrf=073957d8d2823be4f6c0cad23c764558

5.4 Mengonfigurasi daftar hitam

Plug-in otentikasi JWT menggunakan daftar hitam untuk memblokir permintaan yang dikirim oleh pengguna yang telah ditambahkan ke daftar hitam tetapi telah memperoleh token resmi. Plug-in ini bekerja dengan fitur dataset untuk menolak permintaan berdasarkan parameter klaim yang didekripsi dari token. Selain itu, API Gateway memungkinkan Anda menetapkan respons kustom untuk permintaan yang ditolak. Kode berikut memberikan contoh tentang cara mengonfigurasi daftar hitam dalam plug-in otentikasi JWT. Perhatikan definisi parameter yang dimulai dengan block:

---
parameter: Authorization   # Parameter tempat token diperoleh. 
parameterLocation: header  # Lokasi tempat token diperoleh.
claimParameters:           # Klaim yang akan dikonversi menjadi parameter. API Gateway memetakan klaim JWT ke parameter backend.
- claimName: aud           # Nama klaim JWT, yang bisa publik atau privat.
  parameterName: X-Aud     # Nama parameter backend, ke mana klaim JWT dipetakan.
  location: header         # Lokasi parameter backend, ke mana klaim JWT dipetakan. Nilai yang valid: query, header, path, dan formData.
- claimName: userId        # Nama klaim JWT, yang bisa publik atau privat.
  parameterName: userId    # Nama parameter backend, ke mana klaim JWT dipetakan.
  location: query          # Lokasi parameter backend, ke mana klaim JWT dipetakan. Nilai yang valid: query, header, path, dan formData.
blockClaimParameterName: userId  # Kondisi yang digunakan untuk penilaian saat logika daftar hitam diimplementasikan. Permintaan diblokir jika nilai parameter ini terdapat dalam dataset blockByDataSet.
blockByDataSet: 87 b65008e92541938537b1a4a236eda5  # Daftar hitam.
blockStatusCode: 403       # Kode status respons yang dikembalikan ke permintaan yang ditolak.
blockResponseHeaders:      # Header respons yang dikembalikan ke permintaan yang ditolak.
  Content-Type: application/xml
blockResponseBody:         # Badan respons yang dikembalikan ke permintaan yang ditolak.
  <Reason>be blocked</Reason>
jwks:
- kid: O9fpdhrViq2zaaaBEWZITz          # kid harus diatur ke nilai yang berbeda untuk JWK yang berbeda.
  kty: RSA
  e: AQAB
  use: sig
  alg: RS256
  n: qSVxcknOm0uCq5v....

6. Kode kesalahan

Status

Kode

Pesan

Deskripsi

400

I400JR

JWT diperlukan

Pesan kesalahan yang dikembalikan karena parameter terkait JWT tidak ditemukan.

403

S403JI

Klaim jti diperlukan saat preventJtiReplay:true

Pesan kesalahan yang dikembalikan karena tidak ada klaim jti yang valid termasuk dalam permintaan saat preventJtiReplay diatur ke true dalam plug-in otentikasi JWT.

403

S403JU

Klaim jti dalam JWT telah digunakan

Pesan kesalahan yang dikembalikan karena klaim jti yang termasuk dalam permintaan telah digunakan saat preventJtiReplay diatur ke true dalam plug-in otentikasi JWT.

403

A403JT

JWT tidak valid: ${Reason}

Pesan kesalahan yang dikembalikan karena JWT yang dibaca dari permintaan tidak valid.

400

I400JD

JWT Deserialize Gagal: ${Token}

Pesan kesalahan yang dikembalikan karena JWT yang dibaca dari permintaan gagal diuraikan.

403

A403JK

Tidak ada JWK yang cocok, kid:${kid} tidak ditemukan

Pesan kesalahan yang dikembalikan karena tidak ada JWK yang cocok dengan kid yang dikonfigurasikan dalam JWT yang termasuk dalam permintaan.

403

A403JE

JWT kedaluwarsa pada ${Date}

Pesan kesalahan yang dikembalikan karena JWT yang dibaca dari permintaan telah kedaluwarsa.

400

I400JP

Konfigurasi plug-in JWT tidak valid: ${JWT}

Pesan kesalahan yang dikembalikan karena plug-in otentikasi JWT dikonfigurasi dengan salah.

Jika pesan respons HTTP mencakup kode respons yang tidak diharapkan, seperti A403JT atau I400JD, yang ditentukan oleh ErrorCode dalam header X-Ca-Error-Code, Anda dapat mengunjungi situs web jwt.io untuk memeriksa validitas dan format token.

7. Batasan

  • Metadata satu plug-in tidak boleh melebihi ukuran 50 KB.

  • Anda dapat mengonfigurasi maksimal 16 parameter untuk diteruskan. Baik parameter claimName maupun parameter parameterName tidak boleh melebihi 32 karakter dalam panjang. Hanya ekspresi reguler berikut yang didukung: [A-Za-z0-9-_].

  • alg dapat diatur ke RS256, RS384, RS512, ES256, ES384, ES512, HS256, HS384, atau HS512 untuk JWK.