Logo de Dallonses

JWT (JSON Web Token)

Què és un JWT?

Un JSON Web Token és un token compacte i signat que porta un petit conjunt de claims, normalment qui és l'usuari i què té permès fer. Té tres parts: una capçalera, un payload de claims i una signatura. El servidor el signa amb un secret o una clau privada, l'entrega al client després del login, i el client el torna amb cada petició. El servidor verifica la signatura i confia en el contingut sense consultar res.

Aquell darrer punt és tot l'atractiu. Una sessió tradicional guarda estat al servidor i consulta la base de dades a cada petició. Un JWT és autocontingut, així que qualsevol servidor que tingui la clau de verificació pot validar-lo, cosa que encaixa amb les APIs i els sistemes distribuïts on no hi ha un magatzem de sessió compartit. El payload està signat, no xifrat, així que és llegible per a qualsevol que tingui el token, cosa que vol dir que a dins mai no hi van secrets. La part difícil és la revocació: com que el token és vàlid fins que expira, no pots simplement esborrar una sessió per tancar la sessió a algú. Després d'autenticar-se en una API, un client rep un JWT i l'adjunta a cada crida posterior, i el servidor llegeix la identitat de l'usuari directament del token verificat.

Els JWT solen combinar tokens d'accés de vida curta amb tokens de refresc de vida més llarga per equilibrar la comoditat amb el problema de la revocació.

JWTs a Dallonses

Fem servir JWTs on encaixen, que és l'autenticació d'API sense estat entre serveis, i som deliberats sobre on no encaixen. Expiració curta als tokens d'accés, tokens de refresc gestionats amb cura, i mai dades sensibles ficades en un payload que qualsevol pot descodificar. El buit de la revocació és real, així que dissenyem per a ell en lloc de descobrir-lo el dia que un client necessita forçar el tancament de sessió d'un compte compromès.

L'autenticació és una d'aquelles àrees on un petit error es converteix en un incident de seguretat, així que la tractem com a enginyeria de base, no pas com una llibreria que connectes un cop. L'emmagatzematge de tokens, l'expiració, els fluxos de refresc i la validació de signatura reben el mateix escrutini que la resta del nostre desenvolupament d'aplicacions web a mida i el nostre desenvolupament API first. L'objectiu és una autenticació invisible quan funciona i impossible de saltar quan algú ho intenta.

Construeixes autenticació en una API i la vols ben feta? Deixem sòlida l'estratègia de tokens.

Parlem d'auth

Serveis relacionats


Preparat per a traballar junts?

Reserva una reunió
Aymón sostenint una revista Tools davant de la seva cara
Ari treballant en un portàtil a l'aire lliure envoltada de plantes
Vista superior d'un escriptori de fusta amb teclat, ratolí i auriculars
Il·lustració dibuixada a mà d'una mà chasquejant els dits
Nico recolzat contra un dispensador d'aigua al costat d'un extintor
Primer pla d'un ordinador obert amb placa de circuit i components sobre un escriptori de fusta
Bernat i Andreu col·laborant en un escriptori amb monitors i un portàtil
Il·lustració dibuixada a mà d'una mà oberta saludant
Aymón sostenint una revista Tools davant de la seva cara
Ari treballant en un portàtil a l'aire lliure envoltada de plantes
Vista superior d'un escriptori de fusta amb teclat, ratolí i auriculars
Il·lustració dibuixada a mà d'una mà chasquejant els dits
Nico recolzat contra un dispensador d'aigua al costat d'un extintor
Primer pla d'un ordinador obert amb placa de circuit i components sobre un escriptori de fusta
Bernat i Andreu col·laborant en un escriptori amb monitors i un portàtil
Il·lustració dibuixada a mà d'una mà oberta saludant