Pertanyaan Apa perbedaan antara JSON Web Signature (JWS) dan JSON Web Token (JWT)?


Saya telah mengkodekan layanan RESTful di Java. Inilah yang saya pahami sampai sekarang (perbaiki saya jika saya salah):

Otorisasi Token dilakukan menggunakan JSON Web Tokens (JWT) yang memiliki tiga bagian: header, payload, dan rahasia (dibagi antara klien dan server).

Saya memahami konsep ini dan tersandung JSON Web Signature (JWS) sambil membaca tentang JWT.

JWS juga merupakan entitas yang disandikan mirip dengan JWT memiliki header, payload, dan rahasia bersama.

Pertanyaan: Apa perbedaan antara dua konsep, yaitu JWT dan JWS? Dan jika mereka sama secara teknis, maka apa bedanya mereka pelaksanaan?

Ini adalah pertama kalinya saya bekerja dengan autentikasi berbasis token, jadi mungkin saya salah memahami konsep ini sama sekali.

P.S. Saya belajar tentang JWS saat menelusuri contoh-contohnya situs ini.


32
2017-12-24 18:28


asal


Jawaban:


JWT sebenarnya menggunakan JWS untuk tanda tangannya, dari spesifikasi:

JSON Web Token (JWT) adalah cara mewakili yang kompak dan aman dari URL   klaim akan ditransfer antara dua pihak. Klaim dalam JWT adalah   disandikan sebagai objek JavaScript Object Notation (JSON) yang digunakan sebagai   payload dari struktur JSON Web Signature (JWS) atau sebagai   plaintext dari struktur JSON Web Encryption (JWE), yang memungkinkan   klaim untuk ditandatangani secara digital atau MACed dan / atau dienkripsi.

Jadi JWT adalah struktur JWS dengan objek JSON sebagai payload. Beberapa kunci opsional (atau klaim) telah didefinisikan seperti iss, aud, exp dll.

Ini juga berarti bahwa perlindungan integritasnya tidak hanya terbatas pada rahasia bersama tetapi kriptografi kunci publik / swasta juga dapat digunakan.


32
2017-12-24 21:51