Bahasa Indonesia

Alat pengembang · dekoder JWT

Tujuh Klaim JWT Terdaftar: iss, sub, aud, exp, nbf, iat dan jti

· Latar belakang

jwt format data otentikasi

Tujuh label klaim JWT terdaftar yang disusun di dalam objek muatan
Ilustrasi vektor ToolAcre asli

RFC 7519 mencadangkan tujuh nama klaim dengan arti dan jenis yang ditentukan. Postingan ini menjelaskan masing-masing tipe StringOrURI dan NumericDate di belakangnya, dan bagaimana klaim terdaftar, publik, dan privat hidup berdampingan.

Nama klaim manakah yang harus saya gunakan? — pertanyaan desain yang dijawab oleh registri

Memilih nama klaim sebagian merupakan keputusan interoperabilitas. Menggunakan kembali nama terdaftar memberikan pembaca dan perpustakaan makna yang pasti, sementara nama khusus aplikasi memerlukan dokumentasi lokal. ToolAcre mengenali tujuh nama inti dalam tabel deskripsinya dan membiarkan klaim lain terlihat tanpa menetapkan semantik.

Nama yang familiar tidak serta merta bisa dipercaya. Dekoder membaca objek apa pun yang terdapat dalam token dan tidak pernah memverifikasi tanda tangannya. Kosakata terdaftar membantu manusia mengklasifikasikan data; hanya verifikator tepercaya yang dapat memastikan bahwa penerbit memberikan nilai yang dilindungi.

iss dan sub ditampilkan sebagai string; implementasi ini tidak menerapkan sintaksis StringOrURI

`iss` mengidentifikasi siapa yang dikeluarkan oleh klaim token, dan `sub` mengidentifikasi siapa atau tentang apa. ToolAcre menjelaskan keduanya dan menampilkan nilainya, namun implementasinya tidak memvalidasi tata bahasa StringOrURI atau membandingkan bidang mana pun dengan konfigurasi layanan.

Verifikator harus mengikat penerbit yang diharapkan ke materi kunci tepercaya dan menafsirkan subjek berdasarkan namespace penerbit tersebut. Menyalin string penerbit yang dikenal ke dalam payload buatan membuat dekoder terlihat meyakinkan tanpa menetapkan asal. Gunakan bidang ini hanya setelah verifikasi kriptografi.

aud — penerima yang dituju, sebagai string atau array

`aud` mendeskripsikan penerima yang dituju dan dapat direpresentasikan sebagai satu nilai atau daftar berdasarkan aturan token yang berlaku. Tabel klaim umum ToolAcre mempertahankan array sebagai teks JSON tetapi tidak memutuskan apakah layanan saat ini muncul di dalamnya.

Audiens bersifat kontekstual. Token terautentikasi yang sama mungkin cocok untuk satu API dan salah untuk yang lain. Server sumber daya memerlukan pengidentifikasi yang diharapkan dalam konfigurasi tepercaya dan harus menolak ketidakcocokan daripada membiarkan token menentukan di mana token tersebut harus diterima.

exp, nbf dan iat — tiga klaim NumericDate yang mengikat token tepat waktu

`exp`, `nbf` dan `iat` adalah klaim NumericDate. ToolAcre memperlakukan angka terbatas sebagai detik sejak zaman, dikalikan dengan 1,000 untuk tampilan Tanggal dan memberi label kedaluwarsa atau tidak-sebelum relatif terhadap jam browser. Itu tidak menentukan kelonggaran atau memaksakan penerimaan server.

Kedaluwarsa menandai batas akhir yang diklaim, bukan bukti bahwa token tersebut valid. Not-before menandai batas awal yang diklaim, dan dikeluarkan pada mencatat waktu pembuatan yang diklaim. Masing-masing dapat dipalsukan dalam payload, jadi aritmatika waktu harus mengikuti verifikasi tanda tangan dalam aliran yang tepercaya.

jti — pengidentifikasi unik untuk deteksi pemutaran ulang dan daftar penolakan

`jti` adalah pengidentifikasi token. Sistem dapat menggunakan pengidentifikasi yang diautentikasi dan dibuat dengan sesuai untuk pelacakan pemutaran ulang atau status pencabutan, namun klaim saja tidak memberikan properti tersebut. ToolAcre mendeskripsikannya sebagai id token untuk deteksi pemutaran ulang dan menampilkan nilai persisnya.

Keunikan, penyimpanan, dan perilaku pencarian adalah milik arsitektur penerbit dan verifikator. Dekoder tidak dapat menentukan apakah token lain menggunakan kembali pengidentifikasi tersebut atau apakah daftar penolakan berisi pengidentifikasi tersebut. Perlakukan ini sebagai nilai korelasi kandidat sampai sistem tepercaya di sekitarnya memberikan bukti.

Deskripsi terdaftar dan klaim khusus aplikasi di tampilan ToolAcre

Penerapannya membedakan nama yang didaftarkan hanya melalui teks penjelasan. Setiap properti payload tetap dikembalikan oleh `listClaims`; nama yang tidak dikenal menerima deskripsi nol dan UI memberi label khusus untuk aplikasi. Itu tidak berkonsultasi dengan registri publik atau mencegah tabrakan nama pribadi.

Batasan tersebut menghindari klaim lebih dari yang dibuktikan oleh sumber. Tim harus mendokumentasikan klaim pribadi mereka dan memilih nama yang tahan benturan ketika interoperabilitas penting. Tidak adanya deskripsi pada decoder berarti "tidak ada dalam tabel tujuh nama lokal ini", bukan "tidak valid" atau "aman untuk diabaikan".

Contoh praktis - membaca muatan yang realistis dan mengklasifikasikan setiap klaim

Pertimbangkan `{"iss":"https://issuer.example","sub":"user-7","aud":["orders"],"exp":1717246800,"nbf":1717243100,"iat":1717243200,"jti":"demo-9","tenant":"north"}`. ToolAcre menjelaskan tujuh bidang terdaftar dan label `tenant` khusus aplikasi sambil memformat tiga kali numerik.

Klasifikasi ini membantu meninjau desain muatan. Itu tidak mengautentikasi URL, subjek, audiens, tanggal, pengidentifikasi, atau penyewa. Token palsu dapat mereproduksi objek dengan tepat. Masukkan hanya klaim terverifikasi ke dalam logika otorisasi, lalu terapkan nilai yang diharapkan dari layanan yang dikonsumsi.

Kesimpulan: gunakan nama yang terdaftar jika cocok — dekoder ToolAcre JWT menampilkan payload sehingga Anda dapat melihat klaim mana yang ditetapkan oleh penerbit sebenarnya

Gunakan nama terdaftar bila maknanya sesuai, karena kosa kata yang mudah dikenali akan mengurangi penerjemahan yang tidak diperlukan. Jaga agar bidang pribadi tetap terdokumentasi dan minimal. Jangan membebani `sub`, `aud` atau klaim waktu dengan arti lokal yang berbeda hanya karena kode downstream sudah mengurai kunci tersebut.

ToolAcre dapat menunjukkan nama mana yang dibawa oleh token aman dan bagaimana klaim numeriknya ditampilkan. Itu tidak dapat mensertifikasi nilai apa pun. Hasil yang berguna dari penguraian kode adalah inventaris untuk ditinjau; hasil yang berguna dari verifikasi dan kebijakan adalah sebuah keputusan, dan keduanya tetap terpisah.