13
1 Moderne Authentifizierungslösungen mit OAuth 2.0 und AngularJS Manfred Steyer ManfredSteyer Page 3 Aktuelles Buch

AngularJS mit OAuth 2 und OpenId Connect, w-jax 2015

Embed Size (px)

Citation preview

Page 1: AngularJS mit OAuth 2 und OpenId Connect, w-jax 2015

1

Moderne Authentifizierungslösungen mit OAuth 2.0 und AngularJS

Manfred Steyer

ManfredSteyer

Page 3

Aktuelles Buch

Page 2: AngularJS mit OAuth 2 und OpenId Connect, w-jax 2015

2

Ziele

Möglichkeiten bezüglich SSO und Delegation mit

OAuth 2.0 und OpenId Connect (OIDC) kennen

lernen

Möglichkeiten zur Nutzung mit JavaScript und

AngularJS kennen lernen

Folie 6

Inhalt

Motivation

Überblick zu OAuth 2.0

SSO mit OAuth 2.0

OpenId Connect

DEMO

Folie 7

Page 3: AngularJS mit OAuth 2 und OpenId Connect, w-jax 2015

3

MOTIVATION

Page 8

Ein Benutzer - zu viele Konten

Folie 9

Page 4: AngularJS mit OAuth 2 und OpenId Connect, w-jax 2015

4

Clients benötigen Zugriff

Folie 10

ÜBERBLICK ZU OAUTH 2.0

Page 11

Page 5: AngularJS mit OAuth 2 und OpenId Connect, w-jax 2015

5

Was ist OAuth ?

Ursprünglich Entwickelt von Twitter und Ma.gnolia

Protokoll zum Delegieren von (eingeschränkten)

Rechten

Mittlerweile verwendet von Google, Facebook,

Flickr, Microsoft, Salesforce.com oder Yahoo!

Folie 12

Rollen

Folie 13

Client

Authorization-Server

Resource-ServerResource-Owner

Registriert mit

client_id,

client_secret,

redirect_uri Registriert mit

Credentials

Page 6: AngularJS mit OAuth 2 und OpenId Connect, w-jax 2015

6

Prinzipieller Ablauf

Folie 14

Client

Authorization-Server

Resource-Server

1. Umleitung

2. Umleitung

3. Access-Token

Details legt Flow fest Ein zentrales Benutzerkonto

Nur Auth-Svr. kennt Passwort

Auth. von Client entkoppelt

Flexibilität durch Token

SPA: Kein Cookie: Kein CSRF

FLOWS

Page 15

Page 7: AngularJS mit OAuth 2 und OpenId Connect, w-jax 2015

7

Flows

Authorization Code Grant

Am meisten Sicherheitsmerkmale

Klassische Web-Anwendungen

"Langzeit-Delegation"

Implicit Grant

Clients ohne Client-Secret

Single Page Applications

Flows

Resource Owner Password Credentials Grant

Benutzer vertraut Client seine Credentials an

Client Credentials Grant

Client "in eigener Mission"

Extension Grants

Page 8: AngularJS mit OAuth 2 und OpenId Connect, w-jax 2015

8

TOKEN

Page 18

Bearer-Token

Folie 19

Page 9: AngularJS mit OAuth 2 und OpenId Connect, w-jax 2015

9

Kein Bearer-Token

Folie 20

Token-Format

OAuth 2 schreibt kein Token-Format vor

Resource Server muss Token validieren und

auswerten können

Möglichkeiten zum Validieren

Bei Auth-Server nachfragen

Signatur prüfen

Token entschlüsseln

Folie 21

Page 10: AngularJS mit OAuth 2 und OpenId Connect, w-jax 2015

10

Mögliche Token-Formate

GUID (Referenz-Token)

Eigenes Tokenformat

Verschlüsselung und/oder Signatur durch Auth-Server

JWT: JSON Web Token

JSON-Dokument beschreibt Claims

Kann signiert und/oder verschlüsselt sein

Header gibt Auskunft über verwendete Krypto-Algorithmen

Folie 22

SSO MIT OAUTH 2.0 UND OPENID CONNECT

Page 38

Page 11: AngularJS mit OAuth 2 und OpenId Connect, w-jax 2015

11

SSO mit OAuth

Folie 39

Client

Authorization-Server

Resource-

Server

3. /user/profile + Access-Token

1. Token anfordern

{ "user_name": "susi",

"email": "[email protected]", … }

2. Token

&scope=profile

Nicht durch

OAuth 2.0 definiert

OpenId Connect (OIDC)

Erweiterung zu OAuth 2.0

Standardisiert User-Profil-Endpunkt

Standardisiert Übermittlung von Profil-Infos

Client erhält auch ID-Token

JWT-Token mit Infos zum Benutzer + Audience

JWT-Token kann vom Aussteller signiert sein

Folie 44

Page 12: AngularJS mit OAuth 2 und OpenId Connect, w-jax 2015

12

OIDC

Folie 45

Authorization-Server

Client 1 Service 1

Access-Token

ID-Token

/voucher + Access-Token

DEMO

Page 47

Page 13: AngularJS mit OAuth 2 und OpenId Connect, w-jax 2015

13

Fazit

OAuth 2.0 zum Delegieren von Rechten

Implicit Flow: Single Page Applications

SSO: Recht zum Lesen von Profil delegieren

OpenID Connect: Authentifizierung mit OAuth 2.0

OpenID Connect: JWT Sicherheitsmerkmale

Vorteile

Zentrale Benutzerkonten

Entkopplung der Authentifizierung und Autorisierung

Flexibilität durch Token

Folie 48

[mail] [email protected]

[web] SOFTWAREarchitekt.at

[twitter] ManfredSteyer

Kontakt