Glosarium

Apa itu JSON Web Token?

JSON Web Token (JWT) adalah format token yang ringkas dan aman untuk URL yang didefinisikan oleh RFC 7519, merepresentasikan klaim antar dua pihak sebagai objek JSON yang ditandatangani secara digital, memungkinkan autentikasi stateless dan pertukaran informasi.

Juga dikenal sebagai: JSON Web Token, JWTs

Sebuah JWT terdiri dari tiga bagian yang dikodekan dengan base64url dan dipisahkan oleh titik: header (yang menentukan algoritma penandatanganan), payload (yang berisi klaim — pasangan kunci-nilai seperti ID pengguna, peran, dan waktu kedaluwarsa), dan tanda tangan (yang dihitung atas header dan payload menggunakan kunci rahasia atau privat). Tanda tangan memungkinkan pihak mana pun yang memiliki kunci verifikasi untuk mengonfirmasi bahwa token tidak dimanipulasi.

JWT banyak digunakan sebagai bearer token dalam autentikasi API. Setelah pengguna masuk, server menerbitkan JWT yang berisi identitas dan izin mereka. Klien menyertakan JWT ini dalam permintaan berikutnya (biasanya di header Authorization), dan server memverifikasi tanda tangan tanpa perlu melakukan kueri basis data atau session store. Sifat stateless ini membuat JWT menarik untuk sistem terdistribusi dan arsitektur microservice di mana berbagi status sesi lintas layanan tidak praktis.

JWT membawa pertimbangan keamanan yang penting. Karena payload hanya dikodekan dengan base64 (bukan dienkripsi), siapa pun yang mencegat JWT dapat membaca isinya — jangan pernah menaruh rahasia di payload JWT kecuali menggunakan JWE (JSON Web Encryption). Token harus memiliki waktu kedaluwarsa yang singkat karena tidak dapat dengan mudah dicabut setelah diterbitkan. Serangan kebingungan algoritma, di mana penyerang mengubah header menjadi "none" atau menukar verifikasi asimetris ke simetris, telah menjadi kerentanan berulang di library JWT.

Cara Vaulted menggunakan JSON Web Token

Vaulted tidak menggunakan JWT untuk autentikasi atau manajemen sesi, karena tidak memiliki akun pengguna. Namun, JWT dan bearer token lainnya adalah kredensial yang sering dibagikan dan membutuhkan transmisi yang aman — misalnya, berbagi token API berumur panjang atau JWT rahasia service-to-service dengan kolega selama insiden. Vaulted menyediakan pengiriman terenkripsi dan self-destructing untuk token tersebut, memastikan token tidak bertahan di saluran komunikasi.