SlideShare a Scribd company logo
1 of 19
Download to read offline
1
Zeitgemäße Sicherheitsszenarien mit
OAuth 2.0 und OpenId Connect
Manfred Steyer | www.IT-Visions.de | FH CAMPUS 02
ManfredSteyer
Side-Projects
Page  2
www.software-engineering-leadership.de
2
Ziele
Möglichkeiten bezüglich SSO und Delegation
mit OAuth 2.0 und OpenId Connect (OIDC)
kennen lernen
Möglichkeiten zur Umsetzung in ASP.NET
kennen lernen
Folie 6
Inhalt
Motivation
Überblick zu OAuth 2.0
SSO mit OAuth 2.0 und OIDC
Überblick zu OWIN und Katana
Demo: Login mit Facebook
Demo: Login mit IdentityServer3
Demo: OpenId Connect mit AngularJS
Folie 7
3
MOTIVATION
Page  8
Ein Benutzer - zu viele Konten
Folie 9
4
Clients benötigen Zugriff
Folie 10
ÜBERBLICK ZU OAUTH 2.0
Page  11
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!
Verschiedene Flows
Folie 12
Rollen (vereinfacht)
Folie 13
Client
Authorization-Server
Ressource-Server
User
Registriert mit
client_id,
client_secret,
redirect_uri Registriert mit
Credentials
6
Prinzipieller Ablauf
Folie 14
Client
Authorization-Server
Ressource-Server
1. Umleitung
2. Umleitung
3. Token
Details legt Flow fest Ein zentrales Benutzerkonto
Nut Auth-Svr. kennt Passwort
Token-Format
OAuth 2 schreibt kein Token-Format vor
Ressource Server muss Token validieren können
Möglichkeiten zum Validieren
 Bei Auth-Server nachfragen
 Signatur prüfen
 Token entschlüsseln
Folie 15
7
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 16
AUTHORIZATION CODE FLOW
Page  19
8
Authorization Code Flow
Am meisten Sicherheitsmerkmale
Klassische Web-Anwendungen
Native Anwendungen
 Öffnen ein Fenster mit Browser-Control
Folie 20
Authorization Code Flow
Folie 21
Client
Authorization-Server
1. Umleitung 2. Umleitung
?response_type=code
&client_id=…
&scope=…
&state=…
&redirect_uri=…
?code=4711
&state=…
Code User Client Scope
4711 Max 0815 voucher
9
Authorization Code Flow
Folie 22
Client
Authorization-Server
3. Service-Zugriff 4. Antwort
?response_type=
authorization_code
&client_id=…
&client_secret=…
&code=4711
&redirect_uri=…
{
access_token="…",
refresh_token="…",
expires_in=…, …
}
Code User Client Scope
4711 Max 0815 voucher
Authorization Code Flow
Folie 23
Client
Ressource-Server
3. Token
Authorization: Bearer abcdef…
10
Bearer-Token
Folie 24
Kein Bearer-Token
Folie 25
11
IMPLICIT FLOW
Page  26
Implicit Flow
Weniger Sicherheitsmerkmale als Authorization
Code Flow
Gedacht für Clients, die ein Secret nicht sicher
verwahren können
JavaScript-Clients
Single Page Applications
Folie 27
12
Implicit Flow
Folie 28
Client
Authorization-Server
1. Umleitung 2. Umleitung
?response_type=token
&client_id=…
&scope=…
&state=…
&redirect_uri=…
#access_token=…
&state=…
&expires_in=…
Eigenschaften
Keine Authentifizierung des Clients
ClientId muss zur registrierten RedirectUri passen
Token am Client
Kein Refresh-Token
Folie 29
13
WEITERE FLOWS
Page  30
Weitere Flows
Resource Owner Password Credentials Flow
 Benutzer vertraut Client seine Credentials an
 Client tauscht diese Credentials gegen Token ein
Client Credentials Grant
 Client "in eigener Mission"
 Client tauscht eigene Credentials gegen Token ein
Extension Grants
Folie 31
14
SSO MIT OAUTH 2.0 UND
OPENID CONNECT
Page  36
SSO mit OAuth
Folie 37
Client
Authorization-Server
Ressource-
Server
3. /user/profile + Token
1. Token anfordern
{ "user_name": "susi",
"email": "susi@sorglos.at", … }
2. Token
&scope=profile
Nicht durch
OAuth 2.0 definiert
15
OpenId Connect (OIDC)
Erweiterung zu OAuth 2.0
Standardisiert User-Profil-Endpunkt
Standardisiert Übermittlung von Profil-Infos
Token beinhaltet Audience
Client erhält auch ID-Token
 JWT-Token mit Infos zum Benutzer + Audience
 JWT-Token kann vom Aussteller signiert sein
Folie 42
OIDC
Folie 43
Authorization-Server
Client 1 Service 1
Access-Token
ID-Token
/voucher + Access-Token
16
OWIN UND KATANA
Page  45
Hosting mit OWIN
Folie 46
Server
Web-Framework
Web-Application
Middleware1
Middleware2
Middleware…
Middlewaren
Anfrage
Antwort
Host-Prozess
HTTP
17
DEMO:
LOGIN MIT FACEBOOK
Page  51
DEMO:
LOGIN MIT IDENTITYSERVER3
Page  52
18
DEMO:
OAUTH 2 MIT ANGULARJS
Page  53
Fazit
 OAuth 2.0 zum Delegieren von Rechten
 Authorization Code Flow: Klassische Web-Anwendungen
 Authorization Code Flow: Desktop-Anwendungen (Browser-Control)
 Implicit Flow: Single Page Applications
 SSO: Recht zum Lesen von Profil delegieren
 OpenID Connect: Authentifizierung mit OAuth 2.0
 OpenID Connect: JWT --> Zusätzliche Sicherheitsmerkmale
 Katana-Middleware für Login with Facebook & Co.
 Katana-Middleware für OAuth 2.0/ Fork für OIDC
Folie 58
19
[mail] manfred.steyer@softwarearchitekt.at
[blog] www.softwarearchitekt.at
[web] www.campus02.at
[twitter] ManfredSteyer
Kontakt

More Related Content

Viewers also liked

Der neue Component Router für Angular 2
Der neue Component Router für Angular 2Der neue Component Router für Angular 2
Der neue Component Router für Angular 2Manfred Steyer
 
Secure REST with JAX-RS
Secure REST with JAX-RSSecure REST with JAX-RS
Secure REST with JAX-RSCarol McDonald
 
Data Intechange at Work: XML and JSON
Data Intechange at Work: XML and JSONData Intechange at Work: XML and JSON
Data Intechange at Work: XML and JSONTom Marrs
 
Bs25999 2 advisory board
Bs25999 2 advisory boardBs25999 2 advisory board
Bs25999 2 advisory boardchrisggreen
 
Instituto Universitario de Posgrado
Instituto Universitario de PosgradoInstituto Universitario de Posgrado
Instituto Universitario de Posgradoguest428e034d
 
Manual tecnico primer parcial
Manual tecnico primer parcialManual tecnico primer parcial
Manual tecnico primer parcialDamaris Raquel
 
Ayudas para la mejora de la producción y comercialización de la miel en la Co...
Ayudas para la mejora de la producción y comercialización de la miel en la Co...Ayudas para la mejora de la producción y comercialización de la miel en la Co...
Ayudas para la mejora de la producción y comercialización de la miel en la Co...CEDER Merindades
 
Danteyladivinacomedia 120702121455-phpapp01
Danteyladivinacomedia 120702121455-phpapp01Danteyladivinacomedia 120702121455-phpapp01
Danteyladivinacomedia 120702121455-phpapp01Aldo Martín Livia Reyes
 
HOW CAN I SPY ON SOMEONES FACEBOOK
HOW CAN I SPY ON SOMEONES FACEBOOK HOW CAN I SPY ON SOMEONES FACEBOOK
HOW CAN I SPY ON SOMEONES FACEBOOK Jane_Robert
 
Your Marketing Toolkit:Low-Cost/No Cost Business Tools That Will Make You Mor...
Your Marketing Toolkit:Low-Cost/No Cost Business Tools That Will Make You Mor...Your Marketing Toolkit:Low-Cost/No Cost Business Tools That Will Make You Mor...
Your Marketing Toolkit:Low-Cost/No Cost Business Tools That Will Make You Mor...We Coach The Pros
 
Planeacion quimicayentorno
Planeacion quimicayentornoPlaneacion quimicayentorno
Planeacion quimicayentornoblognms
 
Catálogo Productos-piscina.com
Catálogo Productos-piscina.comCatálogo Productos-piscina.com
Catálogo Productos-piscina.comProductos piscina
 
Decreto de consagracion del ecuador
Decreto de consagracion del ecuadorDecreto de consagracion del ecuador
Decreto de consagracion del ecuadorMary Cecily
 
Descartes
DescartesDescartes
DescartesAndeka
 
CommonKADS context models
CommonKADS context modelsCommonKADS context models
CommonKADS context modelsGuus Schreiber
 
GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...
GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...
GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...Xamarin
 

Viewers also liked (20)

Der neue Component Router für Angular 2
Der neue Component Router für Angular 2Der neue Component Router für Angular 2
Der neue Component Router für Angular 2
 
Secure REST with JAX-RS
Secure REST with JAX-RSSecure REST with JAX-RS
Secure REST with JAX-RS
 
Data Intechange at Work: XML and JSON
Data Intechange at Work: XML and JSONData Intechange at Work: XML and JSON
Data Intechange at Work: XML and JSON
 
Bs25999 2 advisory board
Bs25999 2 advisory boardBs25999 2 advisory board
Bs25999 2 advisory board
 
Instituto Universitario de Posgrado
Instituto Universitario de PosgradoInstituto Universitario de Posgrado
Instituto Universitario de Posgrado
 
Manual tecnico primer parcial
Manual tecnico primer parcialManual tecnico primer parcial
Manual tecnico primer parcial
 
Ayudas para la mejora de la producción y comercialización de la miel en la Co...
Ayudas para la mejora de la producción y comercialización de la miel en la Co...Ayudas para la mejora de la producción y comercialización de la miel en la Co...
Ayudas para la mejora de la producción y comercialización de la miel en la Co...
 
Danteyladivinacomedia 120702121455-phpapp01
Danteyladivinacomedia 120702121455-phpapp01Danteyladivinacomedia 120702121455-phpapp01
Danteyladivinacomedia 120702121455-phpapp01
 
Progettare antifurto a norme Cei 79 3 Diakron
Progettare antifurto a norme Cei 79 3 DiakronProgettare antifurto a norme Cei 79 3 Diakron
Progettare antifurto a norme Cei 79 3 Diakron
 
HOW CAN I SPY ON SOMEONES FACEBOOK
HOW CAN I SPY ON SOMEONES FACEBOOK HOW CAN I SPY ON SOMEONES FACEBOOK
HOW CAN I SPY ON SOMEONES FACEBOOK
 
Revista Regio nr.30 iulie 2014
Revista Regio nr.30 iulie 2014Revista Regio nr.30 iulie 2014
Revista Regio nr.30 iulie 2014
 
Your Marketing Toolkit:Low-Cost/No Cost Business Tools That Will Make You Mor...
Your Marketing Toolkit:Low-Cost/No Cost Business Tools That Will Make You Mor...Your Marketing Toolkit:Low-Cost/No Cost Business Tools That Will Make You Mor...
Your Marketing Toolkit:Low-Cost/No Cost Business Tools That Will Make You Mor...
 
Ancianos
AncianosAncianos
Ancianos
 
Planeacion quimicayentorno
Planeacion quimicayentornoPlaneacion quimicayentorno
Planeacion quimicayentorno
 
Catálogo Productos-piscina.com
Catálogo Productos-piscina.comCatálogo Productos-piscina.com
Catálogo Productos-piscina.com
 
Decreto de consagracion del ecuador
Decreto de consagracion del ecuadorDecreto de consagracion del ecuador
Decreto de consagracion del ecuador
 
Descartes
DescartesDescartes
Descartes
 
CommonKADS context models
CommonKADS context modelsCommonKADS context models
CommonKADS context models
 
GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...
GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...
GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...
 
HOSPITAL INFANTA MARGARITA
HOSPITAL INFANTA MARGARITAHOSPITAL INFANTA MARGARITA
HOSPITAL INFANTA MARGARITA
 

Similar to OAuth 2.0 und OpenId Connect

Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...
Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...
Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...QAware GmbH
 
Integrations-Pattern für OpenID Connect
Integrations-Pattern für OpenID ConnectIntegrations-Pattern für OpenID Connect
Integrations-Pattern für OpenID ConnectQAware GmbH
 
Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...
Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...
Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...QAware GmbH
 
SharePoint Konferenz 2014 Munich - Wie Sie Office 365 mit Windows Azure steue...
SharePoint Konferenz 2014 Munich - Wie Sie Office 365 mit Windows Azure steue...SharePoint Konferenz 2014 Munich - Wie Sie Office 365 mit Windows Azure steue...
SharePoint Konferenz 2014 Munich - Wie Sie Office 365 mit Windows Azure steue...atwork
 
OAuth 2.0 presentation with example with google auth
OAuth 2.0 presentation with example with google authOAuth 2.0 presentation with example with google auth
OAuth 2.0 presentation with example with google authhelen489248
 
Wer bin ich? Authentifizierung durch Zertifikate
Wer bin ich? Authentifizierung durch ZertifikateWer bin ich? Authentifizierung durch Zertifikate
Wer bin ich? Authentifizierung durch Zertifikateteam-WIBU
 
Security Lab: OIDC in der Praxis
Security Lab: OIDC in der PraxisSecurity Lab: OIDC in der Praxis
Security Lab: OIDC in der PraxisQAware GmbH
 
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch SalzburgSlides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch SalzburgDNUG e.V.
 
Compliance needs transparency
Compliance needs transparencyCompliance needs transparency
Compliance needs transparencyBalaBit
 
SharePoint 2013 Security
SharePoint 2013 SecuritySharePoint 2013 Security
SharePoint 2013 Securityfabianmoritz
 
Ein Überblick: One Identity Manager Anbindung von SAP HCM und Active Directory
Ein Überblick: One Identity Manager Anbindung von SAP HCM und Active DirectoryEin Überblick: One Identity Manager Anbindung von SAP HCM und Active Directory
Ein Überblick: One Identity Manager Anbindung von SAP HCM und Active DirectoryIBsolution GmbH
 
SAP Secure Login Service for SAP GUI: Überblick über den Nachfolger von SAP S...
SAP Secure Login Service for SAP GUI: Überblick über den Nachfolger von SAP S...SAP Secure Login Service for SAP GUI: Überblick über den Nachfolger von SAP S...
SAP Secure Login Service for SAP GUI: Überblick über den Nachfolger von SAP S...IBsolution GmbH
 
Webinar: Online Security
Webinar: Online SecurityWebinar: Online Security
Webinar: Online Securitykuehlhaus AG
 
DOAG 2015 enterprise_securitymitlda_pundpki-pub
DOAG 2015 enterprise_securitymitlda_pundpki-pubDOAG 2015 enterprise_securitymitlda_pundpki-pub
DOAG 2015 enterprise_securitymitlda_pundpki-pubLoopback.ORG
 
Top 10 Internet Trends 2007
Top 10 Internet Trends 2007Top 10 Internet Trends 2007
Top 10 Internet Trends 2007Jürg Stuker
 
FMK2019 FileMaker und externe Authentifizierung Rechteverwaltung mit Active D...
FMK2019 FileMaker und externe Authentifizierung Rechteverwaltung mit Active D...FMK2019 FileMaker und externe Authentifizierung Rechteverwaltung mit Active D...
FMK2019 FileMaker und externe Authentifizierung Rechteverwaltung mit Active D...Verein FM Konferenz
 
Enterprise user security manuskript zum vortrag doag 2014
Enterprise user security   manuskript zum vortrag doag 2014Enterprise user security   manuskript zum vortrag doag 2014
Enterprise user security manuskript zum vortrag doag 2014Marcel Pils
 
Login mit Facebook? Login mit Google? Oder Login mit "meine firma"?!? OpenID ...
Login mit Facebook? Login mit Google? Oder Login mit "meine firma"?!? OpenID ...Login mit Facebook? Login mit Google? Oder Login mit "meine firma"?!? OpenID ...
Login mit Facebook? Login mit Google? Oder Login mit "meine firma"?!? OpenID ...Univention GmbH
 

Similar to OAuth 2.0 und OpenId Connect (20)

Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...
Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...
Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...
 
Integrations-Pattern für OpenID Connect
Integrations-Pattern für OpenID ConnectIntegrations-Pattern für OpenID Connect
Integrations-Pattern für OpenID Connect
 
Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...
Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...
Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...
 
SharePoint Konferenz 2014 Munich - Wie Sie Office 365 mit Windows Azure steue...
SharePoint Konferenz 2014 Munich - Wie Sie Office 365 mit Windows Azure steue...SharePoint Konferenz 2014 Munich - Wie Sie Office 365 mit Windows Azure steue...
SharePoint Konferenz 2014 Munich - Wie Sie Office 365 mit Windows Azure steue...
 
SharePoint Claims und FBA
SharePoint Claims und FBASharePoint Claims und FBA
SharePoint Claims und FBA
 
OAuth 2.0 presentation with example with google auth
OAuth 2.0 presentation with example with google authOAuth 2.0 presentation with example with google auth
OAuth 2.0 presentation with example with google auth
 
Cloud – Intune
Cloud – IntuneCloud – Intune
Cloud – Intune
 
Wer bin ich? Authentifizierung durch Zertifikate
Wer bin ich? Authentifizierung durch ZertifikateWer bin ich? Authentifizierung durch Zertifikate
Wer bin ich? Authentifizierung durch Zertifikate
 
Security Lab: OIDC in der Praxis
Security Lab: OIDC in der PraxisSecurity Lab: OIDC in der Praxis
Security Lab: OIDC in der Praxis
 
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch SalzburgSlides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
 
Compliance needs transparency
Compliance needs transparencyCompliance needs transparency
Compliance needs transparency
 
SharePoint 2013 Security
SharePoint 2013 SecuritySharePoint 2013 Security
SharePoint 2013 Security
 
Ein Überblick: One Identity Manager Anbindung von SAP HCM und Active Directory
Ein Überblick: One Identity Manager Anbindung von SAP HCM und Active DirectoryEin Überblick: One Identity Manager Anbindung von SAP HCM und Active Directory
Ein Überblick: One Identity Manager Anbindung von SAP HCM und Active Directory
 
SAP Secure Login Service for SAP GUI: Überblick über den Nachfolger von SAP S...
SAP Secure Login Service for SAP GUI: Überblick über den Nachfolger von SAP S...SAP Secure Login Service for SAP GUI: Überblick über den Nachfolger von SAP S...
SAP Secure Login Service for SAP GUI: Überblick über den Nachfolger von SAP S...
 
Webinar: Online Security
Webinar: Online SecurityWebinar: Online Security
Webinar: Online Security
 
DOAG 2015 enterprise_securitymitlda_pundpki-pub
DOAG 2015 enterprise_securitymitlda_pundpki-pubDOAG 2015 enterprise_securitymitlda_pundpki-pub
DOAG 2015 enterprise_securitymitlda_pundpki-pub
 
Top 10 Internet Trends 2007
Top 10 Internet Trends 2007Top 10 Internet Trends 2007
Top 10 Internet Trends 2007
 
FMK2019 FileMaker und externe Authentifizierung Rechteverwaltung mit Active D...
FMK2019 FileMaker und externe Authentifizierung Rechteverwaltung mit Active D...FMK2019 FileMaker und externe Authentifizierung Rechteverwaltung mit Active D...
FMK2019 FileMaker und externe Authentifizierung Rechteverwaltung mit Active D...
 
Enterprise user security manuskript zum vortrag doag 2014
Enterprise user security   manuskript zum vortrag doag 2014Enterprise user security   manuskript zum vortrag doag 2014
Enterprise user security manuskript zum vortrag doag 2014
 
Login mit Facebook? Login mit Google? Oder Login mit "meine firma"?!? OpenID ...
Login mit Facebook? Login mit Google? Oder Login mit "meine firma"?!? OpenID ...Login mit Facebook? Login mit Google? Oder Login mit "meine firma"?!? OpenID ...
Login mit Facebook? Login mit Google? Oder Login mit "meine firma"?!? OpenID ...
 

More from Manfred Steyer

Datenbindung und Performance in Angular 2
Datenbindung und Performance in Angular 2Datenbindung und Performance in Angular 2
Datenbindung und Performance in Angular 2Manfred Steyer
 
Single Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/store
Single Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/storeSingle Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/store
Single Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/storeManfred Steyer
 
Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2
Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2
Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2Manfred Steyer
 
Angular 2: Die Ideen hinter Datenbindung und Formularen im Detail betrachtet
Angular 2: Die Ideen hinter Datenbindung und Formularen im Detail betrachtetAngular 2: Die Ideen hinter Datenbindung und Formularen im Detail betrachtet
Angular 2: Die Ideen hinter Datenbindung und Formularen im Detail betrachtetManfred Steyer
 
Datengetriebene Web APIs mit Entity Framework
Datengetriebene Web APIs mit Entity FrameworkDatengetriebene Web APIs mit Entity Framework
Datengetriebene Web APIs mit Entity FrameworkManfred Steyer
 
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0Manfred Steyer
 
Web APIs mit ASP.NET Core 1
Web APIs mit ASP.NET Core 1Web APIs mit ASP.NET Core 1
Web APIs mit ASP.NET Core 1Manfred Steyer
 
The newst new Router for Angular 2 ("Version 3")
The newst new Router for Angular 2 ("Version 3")The newst new Router for Angular 2 ("Version 3")
The newst new Router for Angular 2 ("Version 3")Manfred Steyer
 
Databinding and Performance-Tuning in Angular 2
Databinding and Performance-Tuning in Angular 2Databinding and Performance-Tuning in Angular 2
Databinding and Performance-Tuning in Angular 2Manfred Steyer
 
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId Connect
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId ConnectModern authentication solutions in Angular 2 with OAuth 2.0 and OpenId Connect
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId ConnectManfred Steyer
 
Progressive web apps with Angular 2
Progressive web apps with Angular 2Progressive web apps with Angular 2
Progressive web apps with Angular 2Manfred Steyer
 
Der neueste neue Router (Version 3) für Angular 2
Der neueste neue Router (Version 3) für Angular 2Der neueste neue Router (Version 3) für Angular 2
Der neueste neue Router (Version 3) für Angular 2Manfred Steyer
 
ASP.NET Core 1 for MVC- and WebAPI-Devs
ASP.NET Core 1 for MVC- and WebAPI-DevsASP.NET Core 1 for MVC- and WebAPI-Devs
ASP.NET Core 1 for MVC- and WebAPI-DevsManfred Steyer
 
EF Core 1: News features and changes
EF Core 1: News features and changesEF Core 1: News features and changes
EF Core 1: News features and changesManfred Steyer
 
Angular 2: Migration - SSD 2016 London
Angular 2: Migration - SSD 2016 LondonAngular 2: Migration - SSD 2016 London
Angular 2: Migration - SSD 2016 LondonManfred Steyer
 
Angular 2 - SSD 2016 London
Angular 2 - SSD 2016 LondonAngular 2 - SSD 2016 London
Angular 2 - SSD 2016 LondonManfred Steyer
 
ASP.NET Web API Deep Dive - SSD 2016 London
ASP.NET Web API Deep Dive - SSD 2016 LondonASP.NET Web API Deep Dive - SSD 2016 London
ASP.NET Web API Deep Dive - SSD 2016 LondonManfred Steyer
 
Web APIs mit ASP.NET MVC Core 1
Web APIs mit ASP.NET MVC Core 1Web APIs mit ASP.NET MVC Core 1
Web APIs mit ASP.NET MVC Core 1Manfred Steyer
 

More from Manfred Steyer (20)

Datenbindung und Performance in Angular 2
Datenbindung und Performance in Angular 2Datenbindung und Performance in Angular 2
Datenbindung und Performance in Angular 2
 
Single Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/store
Single Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/storeSingle Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/store
Single Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/store
 
Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2
Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2
Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2
 
Angular 2: Die Ideen hinter Datenbindung und Formularen im Detail betrachtet
Angular 2: Die Ideen hinter Datenbindung und Formularen im Detail betrachtetAngular 2: Die Ideen hinter Datenbindung und Formularen im Detail betrachtet
Angular 2: Die Ideen hinter Datenbindung und Formularen im Detail betrachtet
 
Datengetriebene Web APIs mit Entity Framework
Datengetriebene Web APIs mit Entity FrameworkDatengetriebene Web APIs mit Entity Framework
Datengetriebene Web APIs mit Entity Framework
 
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0
 
Web APIs mit ASP.NET Core 1
Web APIs mit ASP.NET Core 1Web APIs mit ASP.NET Core 1
Web APIs mit ASP.NET Core 1
 
The newst new Router for Angular 2 ("Version 3")
The newst new Router for Angular 2 ("Version 3")The newst new Router for Angular 2 ("Version 3")
The newst new Router for Angular 2 ("Version 3")
 
Databinding and Performance-Tuning in Angular 2
Databinding and Performance-Tuning in Angular 2Databinding and Performance-Tuning in Angular 2
Databinding and Performance-Tuning in Angular 2
 
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId Connect
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId ConnectModern authentication solutions in Angular 2 with OAuth 2.0 and OpenId Connect
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId Connect
 
Progressive web apps with Angular 2
Progressive web apps with Angular 2Progressive web apps with Angular 2
Progressive web apps with Angular 2
 
Der neueste neue Router (Version 3) für Angular 2
Der neueste neue Router (Version 3) für Angular 2Der neueste neue Router (Version 3) für Angular 2
Der neueste neue Router (Version 3) für Angular 2
 
Webpack
WebpackWebpack
Webpack
 
ASP.NET Core 1 for MVC- and WebAPI-Devs
ASP.NET Core 1 for MVC- and WebAPI-DevsASP.NET Core 1 for MVC- and WebAPI-Devs
ASP.NET Core 1 for MVC- and WebAPI-Devs
 
EF Core 1: News features and changes
EF Core 1: News features and changesEF Core 1: News features and changes
EF Core 1: News features and changes
 
Angular 2: Migration - SSD 2016 London
Angular 2: Migration - SSD 2016 LondonAngular 2: Migration - SSD 2016 London
Angular 2: Migration - SSD 2016 London
 
Angular 2 - SSD 2016 London
Angular 2 - SSD 2016 LondonAngular 2 - SSD 2016 London
Angular 2 - SSD 2016 London
 
ASP.NET Web API Deep Dive - SSD 2016 London
ASP.NET Web API Deep Dive - SSD 2016 LondonASP.NET Web API Deep Dive - SSD 2016 London
ASP.NET Web API Deep Dive - SSD 2016 London
 
Was bringt Angular 2?
Was bringt Angular 2?Was bringt Angular 2?
Was bringt Angular 2?
 
Web APIs mit ASP.NET MVC Core 1
Web APIs mit ASP.NET MVC Core 1Web APIs mit ASP.NET MVC Core 1
Web APIs mit ASP.NET MVC Core 1
 

OAuth 2.0 und OpenId Connect

  • 1. 1 Zeitgemäße Sicherheitsszenarien mit OAuth 2.0 und OpenId Connect Manfred Steyer | www.IT-Visions.de | FH CAMPUS 02 ManfredSteyer Side-Projects Page  2 www.software-engineering-leadership.de
  • 2. 2 Ziele Möglichkeiten bezüglich SSO und Delegation mit OAuth 2.0 und OpenId Connect (OIDC) kennen lernen Möglichkeiten zur Umsetzung in ASP.NET kennen lernen Folie 6 Inhalt Motivation Überblick zu OAuth 2.0 SSO mit OAuth 2.0 und OIDC Überblick zu OWIN und Katana Demo: Login mit Facebook Demo: Login mit IdentityServer3 Demo: OpenId Connect mit AngularJS Folie 7
  • 3. 3 MOTIVATION Page  8 Ein Benutzer - zu viele Konten Folie 9
  • 4. 4 Clients benötigen Zugriff Folie 10 ÜBERBLICK ZU OAUTH 2.0 Page  11
  • 5. 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! Verschiedene Flows Folie 12 Rollen (vereinfacht) Folie 13 Client Authorization-Server Ressource-Server User Registriert mit client_id, client_secret, redirect_uri Registriert mit Credentials
  • 6. 6 Prinzipieller Ablauf Folie 14 Client Authorization-Server Ressource-Server 1. Umleitung 2. Umleitung 3. Token Details legt Flow fest Ein zentrales Benutzerkonto Nut Auth-Svr. kennt Passwort Token-Format OAuth 2 schreibt kein Token-Format vor Ressource Server muss Token validieren können Möglichkeiten zum Validieren  Bei Auth-Server nachfragen  Signatur prüfen  Token entschlüsseln Folie 15
  • 7. 7 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 16 AUTHORIZATION CODE FLOW Page  19
  • 8. 8 Authorization Code Flow Am meisten Sicherheitsmerkmale Klassische Web-Anwendungen Native Anwendungen  Öffnen ein Fenster mit Browser-Control Folie 20 Authorization Code Flow Folie 21 Client Authorization-Server 1. Umleitung 2. Umleitung ?response_type=code &client_id=… &scope=… &state=… &redirect_uri=… ?code=4711 &state=… Code User Client Scope 4711 Max 0815 voucher
  • 9. 9 Authorization Code Flow Folie 22 Client Authorization-Server 3. Service-Zugriff 4. Antwort ?response_type= authorization_code &client_id=… &client_secret=… &code=4711 &redirect_uri=… { access_token="…", refresh_token="…", expires_in=…, … } Code User Client Scope 4711 Max 0815 voucher Authorization Code Flow Folie 23 Client Ressource-Server 3. Token Authorization: Bearer abcdef…
  • 11. 11 IMPLICIT FLOW Page  26 Implicit Flow Weniger Sicherheitsmerkmale als Authorization Code Flow Gedacht für Clients, die ein Secret nicht sicher verwahren können JavaScript-Clients Single Page Applications Folie 27
  • 12. 12 Implicit Flow Folie 28 Client Authorization-Server 1. Umleitung 2. Umleitung ?response_type=token &client_id=… &scope=… &state=… &redirect_uri=… #access_token=… &state=… &expires_in=… Eigenschaften Keine Authentifizierung des Clients ClientId muss zur registrierten RedirectUri passen Token am Client Kein Refresh-Token Folie 29
  • 13. 13 WEITERE FLOWS Page  30 Weitere Flows Resource Owner Password Credentials Flow  Benutzer vertraut Client seine Credentials an  Client tauscht diese Credentials gegen Token ein Client Credentials Grant  Client "in eigener Mission"  Client tauscht eigene Credentials gegen Token ein Extension Grants Folie 31
  • 14. 14 SSO MIT OAUTH 2.0 UND OPENID CONNECT Page  36 SSO mit OAuth Folie 37 Client Authorization-Server Ressource- Server 3. /user/profile + Token 1. Token anfordern { "user_name": "susi", "email": "susi@sorglos.at", … } 2. Token &scope=profile Nicht durch OAuth 2.0 definiert
  • 15. 15 OpenId Connect (OIDC) Erweiterung zu OAuth 2.0 Standardisiert User-Profil-Endpunkt Standardisiert Übermittlung von Profil-Infos Token beinhaltet Audience Client erhält auch ID-Token  JWT-Token mit Infos zum Benutzer + Audience  JWT-Token kann vom Aussteller signiert sein Folie 42 OIDC Folie 43 Authorization-Server Client 1 Service 1 Access-Token ID-Token /voucher + Access-Token
  • 16. 16 OWIN UND KATANA Page  45 Hosting mit OWIN Folie 46 Server Web-Framework Web-Application Middleware1 Middleware2 Middleware… Middlewaren Anfrage Antwort Host-Prozess HTTP
  • 17. 17 DEMO: LOGIN MIT FACEBOOK Page  51 DEMO: LOGIN MIT IDENTITYSERVER3 Page  52
  • 18. 18 DEMO: OAUTH 2 MIT ANGULARJS Page  53 Fazit  OAuth 2.0 zum Delegieren von Rechten  Authorization Code Flow: Klassische Web-Anwendungen  Authorization Code Flow: Desktop-Anwendungen (Browser-Control)  Implicit Flow: Single Page Applications  SSO: Recht zum Lesen von Profil delegieren  OpenID Connect: Authentifizierung mit OAuth 2.0  OpenID Connect: JWT --> Zusätzliche Sicherheitsmerkmale  Katana-Middleware für Login with Facebook & Co.  Katana-Middleware für OAuth 2.0/ Fork für OIDC Folie 58