Token statt Cookies dank JWT - #ETKA16

15
dank JWT Token statt Cookies

Transcript of Token statt Cookies dank JWT - #ETKA16

Page 1: Token statt Cookies dank JWT - #ETKA16

… dank JWT

Token statt Cookies

Page 2: Token statt Cookies dank JWT - #ETKA16

Markus Schlichting

Senior Software Engineer Basel, Schweiz

Hackergarten Basel

[email protected]

@madmas

Page 3: Token statt Cookies dank JWT - #ETKA16

Warum?

• REST APIs

• Single Page Applications

• Microservices

Page 4: Token statt Cookies dank JWT - #ETKA16

Sessions & Cookies

Credentials validieren, Session erzeugen

Session CookieSession

Store

Session validieren, Zugriff kontrollieren

http://app.canoo.com http://app.canoo.com

Page 5: Token statt Cookies dank JWT - #ETKA16

Sessions & Cookies

Loadbalancing benötigt geteilten Sessionpool

Services werden gekoppelt

Cross Domain Authentifizierung: CORS

CSRF Verwundbarkeit

Andere Clients ausser Browser?

Page 6: Token statt Cookies dank JWT - #ETKA16

JSON Web Tokens are an open, industry standard method for representing claims

securely between two parties.(RFC 7519)

JSON Web Token

The suggested pronunciation of JWT is the same as the English word "jot".

Page 7: Token statt Cookies dank JWT - #ETKA16

JSON Web Token

basierend auf anderen JSON-Standards: JWS (JSON Web Signature) JWE (JSON Web Encryption)

!!!

Bibliotheken für..

Page 8: Token statt Cookies dank JWT - #ETKA16

JWT in Action

Credentials validieren, Token erzeugen

Token speichern

Token validieren, Zugriff kontrollieren

http://app.canoo.com http://api.canoo.com

Page 9: Token statt Cookies dank JWT - #ETKA16

JWT - inside

jwt.io

Page 10: Token statt Cookies dank JWT - #ETKA16

JWT - inside: Payload

Registered Claims IANA JSON WebToken Register

Public Claims öffentl. lesbare Claims: Eindeutigkeit!

Private Claims private Claims: Freie Wahl!

Page 11: Token statt Cookies dank JWT - #ETKA16

JWT - in practice

Demo!

Page 12: Token statt Cookies dank JWT - #ETKA16

immer verschlüsselt kommunizieren ( HTTPS! )

URL Token vermeiden https://yourpage.de/service/action?token=jwt.goes.here

Token Handling: Invalidation, Reset

JWT Security Aspekte

Page 13: Token statt Cookies dank JWT - #ETKA16

JWT Überblick

basiert auf JSON

einfach zu nutzen, einfach zu implementieren

symmetrische und asymmetrische Crypto

reduziert Abhängigkeiten

Basisprinzip von REST: State transfer

Page 14: Token statt Cookies dank JWT - #ETKA16

Cookies nicht obsolet, Token bieten jedoch viele Vorteile

JWT für Skalierbarkeit und Flexibilität

Cross Plattform

Cookies oder Token? Anforderungen und Implikationen abwägen!

Zusammenfassung

Page 15: Token statt Cookies dank JWT - #ETKA16

Demo Sources und Slides:https://github.com/madmas/TokenVsCookies