OOP 2016: Moderne Security Szenarien mit OAuth 2 und OIDC

10
1 Zeitgemäße Sicherheitsszenarien mit OAuth2 und OpenId Connect Manfred Steyer Ziel Möglichkeiten bezüglich SSO und Delegation mit OAuth 2.0 und OpenId Connect (OIDC) kennen lernen Folie 6

Transcript of OOP 2016: Moderne Security Szenarien mit OAuth 2 und OIDC

Page 1: OOP 2016: Moderne Security Szenarien mit OAuth 2 und OIDC

1

Zeitgemäße Sicherheitsszenarien mit OAuth2 und OpenId Connect

Manfred Steyer

Ziel

Möglichkeiten bezüglich SSO und Delegation mit

OAuth 2.0 und OpenId Connect (OIDC) kennen

lernen

Folie 6

Page 2: OOP 2016: Moderne Security Szenarien mit OAuth 2 und OIDC

2

Inhalt

Motivation

Überblick zu OAuth 2.0

Authentifizierung mit OAuth 2.0

OpenId Connect

DEMO

Folie 7

MOTIVATION

Page 8

Page 3: OOP 2016: Moderne Security Szenarien mit OAuth 2 und OIDC

3

Ein Benutzer - zu viele Konten

Folie 9

Clients benötigen Zugriff

Folie 10

Page 4: OOP 2016: Moderne Security Szenarien mit OAuth 2 und OIDC

4

ÜBERBLICK ZU OAUTH 2.0

Page 11

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

Page 5: OOP 2016: Moderne Security Szenarien mit OAuth 2 und OIDC

5

Rollen

Folie 13

Client

Authorization-Server

Resource-ServerResource-Owner

Registriert mit

client_id,

client_secret,

redirect_uri Registriert mit

Credentials

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

Page 6: OOP 2016: Moderne Security Szenarien mit OAuth 2 und OIDC

6

FLOWS

Page 15

Flows

Authorization Code Grant

Am meisten Sicherheitsmerkmale

Client gibt sich über Client-Secret zu erkennen

Serverseitige Web-Anwendungen

"Langzeit-Delegation"

Implicit Grant

Clients ohne Client-Secret

Token wird nur an Uri des Client gesendet

Beispiel: Single Page Applications

Page 7: OOP 2016: Moderne Security Szenarien mit OAuth 2 und OIDC

7

Flows

Resource Owner Password Credentials Grant

Benutzer vertraut Client seine Credentials an

Client Credentials Grant

Client "in eigener Mission"

Extension Grants

AUTHENTIFIZIERUNG

Page 38

Page 8: OOP 2016: Moderne Security Szenarien mit OAuth 2 und OIDC

8

Authentifizierung 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 9: OOP 2016: Moderne Security Szenarien mit OAuth 2 und OIDC

9

OIDC

Folie 45

Authorization-Server

Client 1 Service 1

Access-Token

ID-Token

/voucher + Access-Token

DEMO

Page 47

Page 10: OOP 2016: Moderne Security Szenarien mit OAuth 2 und OIDC

10

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

[email protected]

SOFTWAREarchitekt.at

ManfredSteyer

Kontakt