Co to jest nieprzezroczysty token?

9

A co to znaczy, że są w „zastrzeżonym formacie”? Czytam o tokenach odświeżania JWT i są one nieprzezroczyste, ale nie rozumiem tego terminu.

sloneorzeszki
źródło

Odpowiedzi:

14

JWT ma zawartość czytelny, jak widać na przykład na https://jwt.io/ . Każdy może odkodować token i odczytać zawarte w nim informacje. Format jest udokumentowany w RFC 7519 .

Z drugiej strony nieprzezroczysty token ma format, który nie jest przeznaczony do odczytu przez ciebie. Tylko emitent zna format.

Znaczenie tego słowa już daje wskazówkę:

nieprzezroczysty / ə (ʊ) ˈpeɪk / przymiotnik

niewidoczny; nieprzeźroczysty.

Oto cytat z https://auth0.com/docs/tokens :

Nieprzezroczyste tokeny: Tokeny w zastrzeżonym formacie, które zazwyczaj zawierają pewien identyfikator informacji w trwałym magazynie serwera. Aby sprawdzić poprawność nieprzezroczystego tokena, odbiorca tokena musi zadzwonić na serwer, który go wydał.

„Nieprzezroczysty token odświeżania JWT” jest sprzecznością zgodnie z powyższą definicją. W rzeczywistości chodzi tutaj o to, że w niektórych ramach JWT tylko token uwierzytelniania jest JWT, ale jako token odświeżania używają nieprzezroczystych tokenów.

jps
źródło
Dziękuję Ci. Myślę, że tym, co mnie zdezorientowało, jest część podpisu, która jest zaszyfrowana, więc sama w sobie nie do odczytania. Znalazłem również doskonałe wyjaśnienie tutaj: community.apigee.com/questions/21139/jwt-vs-oauth.html
sloneorzeszki
1
@ sloneorzeszki W objaśnieniu, które dowiązałeś, opaque tokenopisany jest jako ciąg losowy, który służy jedynie jako wskaźnik do informacji przechowywanych po stronie serwera. Ten rodzaj tokena jest tu opisany jako, reference tokenpodczas gdy opaque tokenrzeczywiście może zawierać zaszyfrowane informacje (czytelne tylko dla pierwotnego emitenta). Istnieją więc nieco inne definicje, których powinniśmy być świadomi.
jps
0

Tutaj termin „nieprzezroczysty” oznacza, że ​​łańcuch (który służy jako token) jest jak odwołanie (w OOP), wskaźnik (w C) lub klucze obce (w relacyjnych bazach danych). tzn. potrzebujesz zewnętrznej treści, aby ją rozwiązać.

Prosty kontra kompozytowy:

Ciąg jest „prostym” ciągiem, w przeciwieństwie do JWS, gdzie jest „złożony”; Ma części „wewnątrz”.

Wewnątrz kontra na zewnątrz:

Możesz wyodrębnić z niego ładunek (z roszczeniami itp.) Bez odwoływania się do zewnętrznego serwera lub magazynu „poza” tym ciągiem.

Ponieważ nieprzezroczysty token jest prostym ciągiem, jest tylko odniesieniem, dlatego oczywiście jego format jest całkowicie arbitralnie określany przez serwer, który go emituje (stąd termin „format zastrzeżony”). Ciąg tokenów jest określany w momencie tworzenia treści bazowej (do której się odwołuje), tj. Kiedy jest sparowany (powiązany) z zawartością, do której odnosi się ten token (jako klucz odniesienia lub klucz obcy).

Sohail Si
źródło