Alat pengembang · dekoder JWT
Token ID vs Token Akses: Mengapa OpenID Connect JWT Bukan Kunci API
· Latar belakang
jwt sumpah otentikasi
Keduanya mungkin JWT dari penyedia yang sama, namun menjawab pertanyaan berbeda. Postingan ini menjelaskan isi masing-masing token ID dan token akses, siapa yang harus menggunakannya, dan cara membedakannya dengan mendekode.
API menolak token yang terlihat benar-benar valid — karena token tersebut tidak pernah dimaksudkan untuk API
API dapat menolak token yang dibuat dengan baik dan ditandatangani dengan benar karena kredensial tersebut dikeluarkan untuk konsumen dan tujuan lain. “Ini adalah JWT” menjelaskan kemungkinan format, bukan izin untuk mengirimkannya ke mana pun. Token ID dan token akses menjawab pertanyaan berbeda dalam alur identitas.
ToolAcre dapat mengekspos pola header dan payload yang mendukung proses debug, tetapi tidak dapat mengautentikasi token atau memvalidasi profil OpenID Connect. Klasifikasi akhir harus berasal dari kontrak penyedia, alur penerbitan, dan hasil verifikasi tepercaya, bukan berdasarkan inspeksi visual.
Klaim token ID mungkin menyarankan penggunaan identitas; decoder generik ini tidak memvalidasi profil OpenID Connect
Token ID mengkomunikasikan informasi autentikasi kepada klien yang meminta masuk. Bergantung pada profilnya, klaim yang terlihat mungkin mencakup nonce, waktu autentikasi, metode autentikasi, atau hash yang terkait dengan token lain. Bidang tersebut bukan merupakan pemberian otorisasi API umum.
Dekoder memperlakukan `auth_time` sebagai bidang berbentuk waktu dan menampilkan nama lain sebagai khusus aplikasi kecuali nama tersebut termasuk di antara tujuh intinya. Ini tidak memvalidasi semantik nonce, `at_hash`, `amr` atau audiens klien. Payload identitas yang dapat dibaca tetap tidak dipercaya sampai klien memvalidasinya dengan benar.
Token akses mungkin berupa JWT atau buram; hanya JWT tiga bagian yang cocok dengan dekoder ini
Token akses mengotorisasi panggilan ke server sumber daya di bawah sistem otorisasi. Ini mungkin berupa JWT atau string buram. Hanya formulir bertanda tangan tiga bagian yang sesuai dengan rute ToolAcre; token buram tidak memiliki struktur sisi klien umum untuk didekode dan tidak boleh dipaksakan melalui alat ini.
Token akses JWT dapat membawa informasi audiens dan cakupan, namun nilai tersebut memerlukan verifikasi yang diautentikasi dan kebijakan sumber daya. Panel browser tidak mengimplementasikan server sumber daya dan tidak dapat mengetahui apakah suatu cakupan mengizinkan operasi tertentu.
Segarkan token — biasanya buram, tidak dimaksudkan untuk didekodekan, dan tidak pernah dikirim ke API
Token penyegaran mendukung perolehan kredensial akses pengganti berdasarkan aturan penyedia. Biasanya buram dan tidak ditujukan untuk API sumber daya. Ini juga merupakan kredensial bernilai tinggi, jadi menempelkannya ke dekoder akan menimbulkan risiko tanpa manfaat diagnostik yang dapat diandalkan.
Jangan menyimpulkan bahwa setiap nilai berbentuk token harus didekodekan. Gunakan peralatan penyedia dan log terkontrol untuk kegagalan penyegaran. Peringatan eksplisit ToolAcre terhadap token produksi berlaku dengan kekuatan khusus di sini, dan pengurai tiga segmennya tidak menawarkan operasi penyegaran.
Audiens berbeda — ID klien dalam token ID versus sumber daya dalam token akses
Audiens merupakan petunjuk kuat karena konsumen yang dituju berbeda-beda. Token ID sering kali menargetkan klien, sedangkan token akses menargetkan sumber daya. Pengidentifikasi dan representasi yang tepat bergantung pada penyedia dan profil, jadi artikel ini tidak menciptakan pola string universal.
Header `typ` juga dapat memberikan label eksplisit, namun tetap menjadi data yang dikontrol token hingga verifikasi. ToolAcre memperingatkan hanya ketika string `typ` berbeda dari `JWT`; itu tidak mengenali setiap label profil atau mengubahnya menjadi keputusan otorisasi.
Contoh praktis: bandingkan bidang yang terlihat tanpa memperlakukannya sebagai bukti jenis token
Dekode dua contoh sintetik: satu membawa klaim autentikasi berorientasi klien dan satu lagi membawa audiens dan cakupan sumber daya. Catat perbedaan nama `aud`, `typ` dan payload. Latihan ini mengajarkan apa yang harus ditanyakan kepada penerbit, bukan bagaimana membuktikan identitas salah satu contoh.
Token buatan dapat menyalin label yang sama, dan token asli dapat menggunakan konvensi khusus penyedia. Konfirmasikan jenis dari respon penerbitan dan dokumentasi, kemudian validasi dengan konsumen yang dituju. Keluaran dekoder adalah bukti pendukung, bukan otoritas penentu.
Apa yang tidak tercakup dalam hal ini — alur OAuth yang menerbitkan token ini, yang merupakan topik terpisah
Perbandingan ini tidak menjelaskan kode otorisasi, perangkat, atau alur lain yang mengeluarkan token. Hal ini juga tidak mencakup langkah-langkah validasi khusus penyedia, introspeksi token akses yang tidak jelas, atau rotasi penyegaran. Subyek tersebut bergantung pada ekosistem dan penyebaran yang dipilih.
Pertahankan pertanyaan debugging yang sempit: kredensial apa yang diterima klien, siapa konsumen yang dituju, dan komponen tepercaya mana yang memvalidasinya? Menjawab ketiga pertanyaan tersebut mencegah bentuk JWT umum menghapus peran protokol.
Kesimpulan: lihat aud dan ketik sebelum Anda mengirim — dekoder ToolAcre JWT memungkinkan Anda memeriksa jenis token yang Anda pegang
Lihat audiens dan ketik sebelum mengirim token, namun jangan percayai bidang mana pun hingga verifikasi berhasil. Token ID termasuk dalam batas validasi kliennya; token akses milik server sumber dayanya. Token penyegaran termasuk dalam proses penyegaran penyedia, bukan milik API.
ToolAcre membantu membaca contoh tiga bagian yang aman dan tidak membuat klaim untuk mengklasifikasikan atau memvalidasinya. Gunakan ini untuk menemukan kemungkinan kesalahan, lalu biarkan alur yang terdokumentasi dan pemverifikasi yang dikonfigurasi secara independen menetapkan tujuan sebenarnya dari kredensial tersebut.