Che cos'è un token opaco?


9

E cosa significa che sono in un "formato proprietario"? Sto leggendo dei token di aggiornamento JWT e sono token opachi, ma non capisco il termine.

Risposte:


14

Un JWT ha contenuti leggibili, come puoi vedere ad esempio su https://jwt.io/ . Tutti possono decodificare il token e leggere le informazioni in esso contenute. Il formato è documentato in RFC 7519 .

Un token opaco invece ha un formato che non è destinato a essere letto da te. Solo l'emittente conosce il formato.

Il significato della parola dà già un suggerimento:

opaco / ə (ʊ) ˈpeɪk / aggettivo

non può essere visto attraverso; non trasparente.

Ecco una citazione da https://auth0.com/docs/tokens :

Token opachi: token in un formato proprietario che in genere contiene alcuni identificatori alle informazioni nella memoria persistente di un server. Per convalidare un token opaco, il destinatario del token deve chiamare il server che ha emesso il token.

Un "token di aggiornamento JWT opaco" è una contraddizione come da definizione sopra. Ciò che in realtà si intende qui è che in alcuni framework JWT solo il token di autenticazione è un JWT, ma come token di aggiornamento usano token opachi.


Grazie. Penso che ciò che mi ha fatto confondere sia la parte della firma, che è crittografata, quindi non è leggibile di per sé. Ho anche trovato un'eccellente spiegazione qui: community.apigee.com/questions/21139/jwt-vs-oauth.html
sloneorzeszki,

1
@sloneorzeszki Nella spiegazione che hai collegato un opaque tokenè descritto come una stringa casuale che funge solo da puntatore alle informazioni memorizzate sul lato server. Questo tipo di token viene qui descritto come reference tokenconsiderando che opaque tokenpotrebbe effettivamente contenere informazioni crittografate (leggibili solo per l'emittente originale). Quindi ci sono definizioni leggermente diverse di cui dovremmo essere consapevoli.
jps

0

Qui, il termine "opaco" indica che la stringa (che funge da token) è come un riferimento (in OOP), o un puntatore (in C) o chiavi esterne (nei DB relazionali). cioè hai bisogno di un contenuto esterno per risolverlo.

Semplice contro composito:

La stringa è una stringa "semplice", al contrario di JWS, dove è "composito"; Ha parti "al suo interno".

Dentro contro Fuori:

È possibile estrarre un payload (con attestazioni, ecc.) Da esso senza fare riferimento a un server esterno o memoria, "al di fuori" di questa stringa.

Poiché un token opaco è una semplice stringa, è solo un riferimento, quindi, naturalmente, il suo formato è interamente arbitrariamente determinato dal server che lo emette (da cui il termine "formato proprietario"). La stringa di token viene determinata al momento della creazione del contenuto sottostante (a cui viene fatto riferimento), ovvero quando viene associata (associata) al contenuto a cui fa riferimento questo token (come riferimento o chiave esterna).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.