Apa itu token yang buram?

9

Dan apa artinya mereka dalam "format berpemilik"? Saya membaca tentang token penyegaran JWT dan itu adalah token yang tidak jelas, tapi saya tidak mengerti istilahnya.

sloneorzeszki
sumber

Jawaban:

14

Sebuah JWT memiliki konten yang dapat dibaca, seperti yang Anda lihat misalnya pada https://jwt.io/ . Setiap orang dapat memecahkan kode token dan membaca informasi di dalamnya. Formatnya didokumentasikan dalam RFC 7519 .

Sebuah buram token di sisi lain memiliki format yang tidak dimaksudkan untuk dibaca oleh Anda. Hanya penerbit yang tahu formatnya.

Arti kata sudah memberikan petunjuk:

opaque / ə (ʊ) ˈpeɪk / kata sifat

tidak bisa dilihat; tidak transparan.

Berikut ini kutipan dari https://auth0.com/docs/tokens :

Token buram: Token dalam format berpemilik yang biasanya berisi beberapa pengidentifikasi informasi dalam penyimpanan persisten server. Untuk memvalidasi token yang buram, penerima token perlu memanggil server yang mengeluarkan token.

"Token penyegaran JWT" adalah sebuah kontradiksi sesuai definisi di atas. Apa yang sebenarnya dimaksudkan di sini adalah, bahwa dalam beberapa kerangka kerja JWT hanya token otentikasi adalah JWT, tetapi sebagai token penyegaran mereka menggunakan token yang buram.

jps
sumber
Terima kasih. Saya pikir apa yang membuat saya bingung adalah bagian tanda tangan, yang dienkripsi sehingga tidak benar-benar dapat dibaca per se. Saya juga telah menemukan penjelasan yang sangat baik di sini: community.apigee.com/questions/21139/jwt-vs-oauth.html
sloneorzeszki
1
@sloneorzeszki Dalam penjelasan yang Anda tautkan opaque tokendijelaskan sebagai string acak yang hanya berfungsi sebagai penunjuk ke informasi yang disimpan di sisi server. Token semacam ini dijelaskan di sini sebagai reference tokensuatu tanda yang opaque tokenmungkin memang berisi informasi terenkripsi (hanya dapat dibaca untuk penerbit asli). Jadi ada definisi yang sedikit berbeda yang harus kita waspadai.
jps
0

Di sini, istilah "buram" berarti string (yang berfungsi sebagai token) seperti referensi (dalam OOP), atau penunjuk (dalam C), atau kunci asing (dalam DB relasional). yaitu Anda memerlukan konten eksternal untuk menyelesaikannya.

Sederhana versus Komposit:

String adalah string "sederhana", tidak seperti JWS, di mana "komposit"; Itu memiliki bagian "di dalam" itu.

Di dalam versus di luar:

Anda dapat mengekstrak payload (dengan klaim, dll) dari itu tanpa merujuk ke server atau penyimpanan eksternal, "di luar" string ini.

Karena token buram adalah string sederhana itu hanya referensi, karenanya, tentu saja, formatnya sepenuhnya ditentukan oleh server yang mengeluarkannya (maka istilah "format berpemilik"). String token ditentukan pada saat pembuatan konten yang mendasarinya (disebut-to), yaitu ketika dipasangkan (terkait) dengan konten yang mengacu pada token ini (sebagai referensi atau kunci asing).

Sohail Si
sumber