Spring GDS 25è Aniversari
Una empresa de logística que envia a 190 països va construir alguna cosa per enviar-se a si mateixa.
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ó.
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.
Una empresa de logística que envia a 190 països va construir alguna cosa per enviar-se a si mateixa.
Convertir una marca en un negoci que funciona.
Mig milió de persones. Una app. Zero caos.















