Alat pembangun · JWT penyahkod
Token ID lwn Token Akses: Mengapa Sambungan OpenID JWT Bukan Kunci API
· Latar belakang
jwt sumpah pengesahan
Kedua-duanya mungkin JWT daripada pembekal yang sama, namun mereka menjawab soalan yang berbeza. Siaran ini menerangkan kandungan setiap token ID dan token akses, siapa yang harus menggunakannya dan cara membezakannya dengan penyahkodan.
API menolak token yang kelihatan sangat sah — kerana ia tidak pernah dimaksudkan untuk API
API boleh menolak token yang dibentuk dengan baik dan ditandatangani dengan betul kerana bukti kelayakan itu dikeluarkan untuk pengguna dan tujuan lain. “Ia adalah JWT” menerangkan format yang mungkin, bukan kebenaran untuk menghantarnya ke mana-mana. Token ID dan token akses menjawab soalan yang berbeza dalam aliran identiti.
ToolAcre boleh mendedahkan corak pengepala dan muatan yang menyokong penyahpepijatan, tetapi ia tidak boleh mengesahkan token atau mengesahkan profil OpenID Connect. Klasifikasi akhir mesti datang daripada kontrak pembekal, aliran terbitan dan hasil pengesahan yang dipercayai dan bukannya pemeriksaan visual.
Tuntutan token ID mungkin mencadangkan penggunaan identiti; penyahkod generik ini tidak mengesahkan profil OpenID Connect
Token ID menyampaikan maklumat pengesahan kepada pelanggan yang meminta log masuk. Bergantung pada profil, tuntutan boleh dilihat mungkin termasuk nonce, masa pengesahan, kaedah pengesahan atau cincang yang berkaitan dengan token lain. Medan tersebut bukan pemberian kebenaran API generik.
Penyahkod menganggap `auth_time` sebagai medan berbentuk masa dan memaparkan nama lain sebagai khusus aplikasi melainkan ia adalah antara teras tujuhnya. Ia tidak mengesahkan nonce, `at_hash`, `amr` atau semantik khalayak pelanggan. Muatan identiti yang boleh dibaca kekal tidak dipercayai sehingga pelanggan mengesahkannya dengan betul.
Token akses mungkin JWT atau legap; sahaja tiga bahagian JWT yang sesuai dengan penyahkod ini
Token akses membenarkan panggilan ke pelayan sumber di bawah sistem kebenaran. Ia mungkin JWT atau rentetan legap. Sahaja bentuk bertanda tiga bahagian sesuai dengan laluan ToolAcre; token legap tidak mempunyai struktur umum sisi klien untuk dinyahkod dan tidak boleh dipaksa melalui alat ini.
Token akses JWT boleh membawa maklumat khalayak dan skop, tetapi nilai tersebut memerlukan pengesahan dan dasar sumber yang disahkan. Panel pelayar tidak melaksanakan pelayan sumber dan tidak dapat memberitahu sama ada skop membenarkan operasi tertentu.
Muat semula token — biasanya legap, tidak pernah dimaksudkan untuk dinyahkod dan tidak akan dihantar ke API
Token muat semula menyokong mendapatkan bukti kelayakan akses gantian di bawah peraturan pembekal. Ia biasanya legap dan tidak bertujuan untuk API sumber. Ia juga merupakan bukti kelayakan bernilai tinggi, jadi menampalnya ke dalam penyahkod mewujudkan risiko tanpa manfaat diagnostik yang boleh dipercayai.
Jangan membuat kesimpulan bahawa setiap nilai berbentuk token harus dinyahkodkan. Gunakan perkakas pembekal dan log terkawal untuk kegagalan muat semula. Amaran eksplisit ToolAcre terhadap token pengeluaran terpakai secara khusus di sini, dan penghurai tiga segmennya tidak menawarkan operasi muat semula.
Khalayak berbeza — ID klien dalam token ID berbanding sumber dalam token akses
Khalayak adalah petunjuk yang kuat kerana pengguna yang dimaksudkan berbeza. Token ID selalunya menyasarkan pelanggan, manakala token akses menyasarkan sumber. Pengecam dan perwakilan yang tepat bergantung pada pembekal dan profil, jadi artikel ini tidak mencipta corak rentetan universal.
Pengepala `typ` juga boleh memberikan label eksplisit, tetapi ia kekal sebagai data terkawal token sehingga pengesahan. ToolAcre memberi amaran sahaja apabila rentetan `typ` berbeza daripada `JWT`; ia tidak mengenali setiap label profil atau mengubahnya menjadi keputusan kebenaran.
Contoh yang berfungsi: bandingkan medan yang boleh dilihat tanpa menganggapnya sebagai bukti jenis token
Nyahkod dua contoh sintetik: satu membawa tuntutan pengesahan berorientasikan pelanggan dan satu lagi membawa khalayak dan skop sumber. Catatkan perbezaan dalam `aud`, `typ` dan nama muatan. Latihan ini mengajar perkara yang perlu ditanya kepada pengeluar, bukan cara membuktikan identiti mana-mana contoh.
Token rekaan boleh menyalin label yang sama dan token sebenar boleh menggunakan konvensyen khusus pembekal. Sahkan jenis daripada respons dan dokumentasi terbitan, kemudian sahkannya dengan pengguna yang dimaksudkan. Output penyahkod adalah bukti sokongan, bukan kuasa penentu.
Perkara ini tidak meliputi — aliran OAuth yang mengeluarkan token ini, yang merupakan topik yang berasingan
Perbandingan ini tidak menerangkan kod kebenaran, peranti atau aliran lain yang mengeluarkan token. Ia juga tidak meliputi langkah pengesahan khusus pembekal, introspeksi token akses legap atau putaran muat semula. Mata pelajaran tersebut bergantung pada ekosistem dan penggunaan yang dipilih.
Pastikan soalan penyahpepijatan serta-merta sempit: kelayakan manakah yang diterima oleh pelanggan, siapakah pengguna yang dimaksudkan dan komponen dipercayai manakah yang mengesahkannya? Menjawab tiga soalan tersebut menghalang bentuk JWT generik daripada memadamkan peranan protokol.
Bawa pulang: lihat aud dan taip sebelum anda menghantar — penyahkod ToolAcre JWT membolehkan anda menyemak jenis token yang anda pegang
Lihat khalayak dan taip sebelum menghantar token, tetapi jangan percaya mana-mana medan sehingga pengesahan berjaya. Token ID terletak pada sempadan pengesahan pelanggannya; token akses dimiliki pada pelayan sumbernya. Token muat semula tergolong dalam proses muat semula pembekal, bukan pada API.
ToolAcre membantu membaca contoh tiga bahagian yang selamat dan tidak membuat tuntutan untuk mengklasifikasikan atau mengesahkannya. Gunakannya untuk mengesan kesilapan yang mungkin berlaku, kemudian biarkan aliran yang didokumenkan dan pengesah yang dikonfigurasikan secara bebas menetapkan tujuan sebenar bukti kelayakan.