Komponen autentikasi JWT mengimplementasikan autentikasi dan otorisasi berdasarkan JSON Web Tokens (JWT). Komponen ini mendukung penguraian JWT dari parameter URL permintaan HTTP, header permintaan, atau cookie, serta memvalidasi izin token untuk mengakses resource.
Jenis fitur
Autentikasi dan otorisasi
Deskripsi field
ComponentConfig
Parameter | Tipe | Wajib | Nilai default | Deskripsi |
Config | Ya | - | Konfigurasi autentikasi JWT. |
JwtSpec
Parameter | Tipe | Wajib | Nilai default | Deskripsi |
JwkConfig | Ya | - | Menentukan cara mengonfigurasi JWK. | |
JwtSources | Ya | - | Menentukan cara mengekstraksi JWT. Hanya satu sumber ekstraksi yang didukung. |
JwkConfigSpec
Parameter | Tipe | Wajib | Nilai default | Deskripsi |
Type | Tidak | - | Tipe konfigurasi JWK. | |
RemoteJwks | Tidak | - | Konfigurasi JWKS remote. |
JwkConfigType
Nilai | Deskripsi |
Remote | Mengambil JWK dari sumber remote. |
RemoteJwksSpec
Parameter | Tipe | Wajib | Nilai default | Deskripsi |
Url | Tidak | - | Alamat JWK remote. |
URI
FQDN lengkap yang mencakup protokol, hostname, dan path. Instans ALB mengakses alamat ini menggunakan IP dari vSwitch-nya. Pastikan alamat tujuan dapat dijangkau melalui jaringan. Jika alamat tujuan berada di jaringan publik, konfigurasikan SNAT untuk vSwitch tempat instans ALB berada.
Contoh
http://example.com/jwt/pubkeysTanggapan JWK remote mematuhi RFC 7518. Berikut contoh nilai kembali:
{
"keys": [
{
"e": "Exponent of the public key, such as AQAB",
"kid": "Key ID",
"kty": "Family of the encryption algorithm, such as RSA. Required and case-sensitive",
"alg": "Specific encryption algorithm used, such as RS256. Required and case-sensitive",
"use": "Intended use of the key, such as sig for signing",
"n": "Modulus of the public key"
},
{
"kty": "oct",
"k": "yMsZ3vkBL4fEwJrNOPW6RztnYpdQ0UlVTum7H1qAehD",
"alg": "HS256"
}
]
}JwtSourcesSpec
Parameter | Tipe | Wajib | Nilai default | Deskripsi |
Headers | Tidak | - | Mengekstraksi JWT dari header permintaan HTTP. | |
Params | String[] | Tidak | - | Mengekstraksi JWT dari parameter URL. |
Cookies | String[] | Tidak | - | Mengekstraksi JWT dari cookie. |
JwtHeaderSpec
Parameter | Tipe | Wajib | Nilai default | Deskripsi |
Name | String | Ya | Authorization | Nama field dalam header permintaan. |
ValuePrefix | String | Tidak | Bearer | Awalan nilai header. Awalan ini dihapus sebelum mengekstraksi token. |
Kode error
Kode status HTTP | Pesan error | Alasan |
401 | Jwt is missing | Tidak ada JWT yang disediakan dalam permintaan. |
401 | Jwks remote fetch is failed | Terjadi timeout saat mengakses titik akhir JWKS remote. |
401 | Jwt verification fails | Validasi muatan JWT gagal. |
401 | Jwt is expired | Token yang diberikan telah kedaluwarsa. |
401 | Jwt signature is an invalid Base64url encoded | Token yang diberikan tidak dapat didekode dari Base64. |