SlideShare ist ein Scribd-Unternehmen logo
1 von 17
OAuth 2.0
OAuth 2.0
- standardisiertes Protokoll/Autorisierungsframework
- Ermöglicht es Clients (z.B. Webanwendungen) auf Ressourcen eines Benutzers
zuzugreifen. Diese Ressourcen liegen auf einem Ressourcenserver
- Anmeldedaten (Benutzernamen und Passwort) werden dabei nicht direkt preisgegeben!
Ablauf
- Wir haben eine Client-Anwendung (z.B. Web- oder Mobilanwendung)
- Diese muss beim Autorisierungsserver registriert werden
- Wir erhalten dazu eine Client-ID und ein Client-Secret
Beispiel:
Entwickler der Fitness-Tracker-App registriert die Anwendung bei Google, um
Client-ID und Client-Secret zu erhalten. Die Anwendung gibt die Redirect-URIs
an, zu denen Google nach der Authentifizierung weiterleiten soll
Ablauf
- Benutzer initiiert den Ablauf, indem er auf der Client-Anwendung eine
Aktion ausführt, die eine Anmeldung oder Zugriffsberechtigung
erfordert
- Die Client-Anwendung leitet den Benutzer dann zum
Autorisierungsserver weiter, wo der Benutzer aufgefordert wird, sich
anzumelden (falls nötig) und der Anwendung Zugriff auf bestimmte
Ressourcen zu gewähren
Beispiel:
Wir haben in unserer Fitness-App einen Button “Mit Google anmelden”. Die
App leitet den Benutzer zu Google mit der Autorisierungsanfrage um,
einschließlich der Client-ID und der angeforderten Berechtigungen (z.B. Zugriff
auf die E-Mailadresse)
Ablauf
- Benutzer erteilt die Einwilligung auf dem
Autorisierungsserver, indem er die angeforderten
Berechtigungen bestätigt
- Der Autorisierungsserver sendet daraufhin den Benutzer
zurück zur Client-Anwendung, üblicherweise mit einem
Autorisierungscode
Beispiel:
Google fordert den Benutzer also auf, sich einzuloggen. Dies stellt
sicher, dass der Benutzer die Anfrage versteht und explizit
zustimmt
Ablauf
Die Client-Anwendung sendet den Autorisierungscode zusammen mit
ihrer Client-ID und dem Client-Secret zurück an den
Autorisierungsserver, um seine Identität zu bestätigen
- Im Gegenzug sender der Autorisierungsserver einen Access Token (bzw.
Refresh Token) an die Client-Anwendung
Beispiel:
Nach Authentifizierung und Zustimmung durch den Benutzer leitet Google den
Benutzer zurück zur Redirect-URI der Fitness-App, einschließlich eines
Autorisierungscodes
Ablauf
- Die Client-Anwendung verwendet den Access Token, um beim
Ressourcenserver Anfragen im Namen des Benutzers zu stellen
- Der Ressourcenserver validiert den Access Token und gewährt bei
erfolgreicher Validierung Zugriff auf die angeforderten Ressourcen
Beispiel: Die Fitness-App extrahiert den Autorisierungscode aus der
Weiterleitung und machen einen Server-zu-Server-Aufruf an Google, um den
Autorisierungscode gegen einen Access Token einzutauschen. Die Anfrage
beinhaltet den Autorisierungsocde, die Client-ID, das Client-Secret und die
Redirect-URI. Google authentifiziert die Anwendung mithilfe Client-ID und
Secret. Wenn alles gültig, gibt es einen Zugriffstoken!
Sessionmanagement
- Die App kann das Zugriffstoken sicher speichern und für nachfolgende Anfragen bis zum
Ablauf verwenden.
- Bei Bedarf kann das Aktualisierungstoken verwendet werden, um ein neues
Zugriffstoken zu erhalten, ohne dass der Benutzer sich erneut authentifizieren muss.
Abmeldung und Widerruf
- Der Benutzer kann die Berechtigungen jederzeit in seinen Google-Kontoeinstellungen
widerrufen.
- Die App sollte ebenfalls eine Option zum Abmelden bereitstellen, um das Zugriffstoken
zu löschen und die Session zu beenden.
Workflow - Darstellung
Beispiel
Wir werden ein Beispiel durchcoden und sehen in diesem Beispiele wesentliche Dinge des
OAuth 2.0 Workflows
Beispiel
Hier wird Express initialisiert und Middlewares
für die Verarbeitung von URL-kodierten Daten,
Sessions und Passport (für Authentifizierung)
konfiguriert. Die session-Middleware ist
wichtig für das Tracking von
Benutzersitzungen über mehrere Anfragen
hinweg, was ein Schlüsselelement nach der
Authentifizierung im OAuth 2.0-Workflow ist.
Beispiel
Dieser Teil des Codes konfiguriert die Google
OAuth 2.0-Strategie mit den
Umgebungsvariablen CLIENT_ID und
CLIENT_SECRET. Die callbackURL ist der Ort,
an den Google den Benutzer nach erfolgreicher
Authentifizierung und Autorisierung
weiterleitet. Innerhalb der Callback-Funktion
erfolgt dann die Verarbeitung des
Benutzerprofils, was typischerweise das
Suchen oder Erstellen eines Benutzers in der
Datenbank umfasst. Dies ist direkt Teil des
OAuth 2.0-Workflows, wo nach der
Authentifizierung und Erlangung des
Zugriffstokens Benutzerinformationen von
Google abgerufen werden.
Beispiel
Der erste Endpunkt leitet Benutzer zur Authentifizierung
mit Google weiter. Hier beginnt der OAuth 2.0-
Authentifizierungsprozess, indem der Benutzer
aufgefordert wird, sich bei Google anzumelden und der
Anwendung Zugriff zu gewähren. Der Scope ["profile"]
definiert, welche Informationen die Anwendung anfordert.
Der zweite Endpunkt ist die callbackURL, die in der
GoogleStrategy konfiguriert wurde. Nach der
Authentifizierung und Autorisierung durch Google wird
der Benutzer zusammen mit dem Autorisierungscodes an
diesen Endpunkt weitergeleitet. Passport handhabt dann
den Austausch des Autorisierungscodes gegen ein
Zugriffstoken und ruft das Benutzerprofil ab. Bei
Fehlschlag wird der Benutzer zum /login umgeleitet; bei
Erfolg wird er zur Homepage (/) weitergeleitet.
Beispiel
serializeUser und deserializeUser sind für das
Management der Benutzersitzungen
verantwortlich. Wenn ein Benutzer authentifiziert
wird, wird seine user.id in der Sitzung gespeichert.
Bei nachfolgenden Anfragen wird die ID aus der
Sitzung extrahiert und verwendet, um den
Benutzer aus der Datenbank zu laden. Dies ist ein
wichtiger Schritt nach der Authentifizierung, um
den Benutzer über mehrere Anfragen hinweg als
angemeldet zu kennzeichnen, ohne dass er sich
erneut authentifizieren muss.

Weitere ähnliche Inhalte

Ähnlich wie OAuth 2.0 presentation with example with google auth

API Authentifizierung und Autorisierung
API Authentifizierung und Autorisierung API Authentifizierung und Autorisierung
API Authentifizierung und Autorisierung Stefan Kienzl
 
Integrations-Pattern für OpenID Connect
Integrations-Pattern für OpenID ConnectIntegrations-Pattern für OpenID Connect
Integrations-Pattern für OpenID ConnectQAware GmbH
 
REST - Hypermedia und Sicherheit
REST - Hypermedia und SicherheitREST - Hypermedia und Sicherheit
REST - Hypermedia und SicherheitMayflower 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
 
Piwik Installation und Implementierung
Piwik Installation und ImplementierungPiwik Installation und Implementierung
Piwik Installation und ImplementierungGerd Theobald
 
Flexera Software App Portal Datasheet
Flexera Software App Portal DatasheetFlexera Software App Portal Datasheet
Flexera Software App Portal DatasheetFlexera
 
Wer bin ich? Authentifizierung durch Zertifikate
Wer bin ich? Authentifizierung durch ZertifikateWer bin ich? Authentifizierung durch Zertifikate
Wer bin ich? Authentifizierung durch Zertifikateteam-WIBU
 
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
 
Echtes Single Sign-On mit APEX realisieren
Echtes Single Sign-On mit APEX realisierenEchtes Single Sign-On mit APEX realisieren
Echtes Single Sign-On mit APEX realisierenMT AG
 
Security Lab: OIDC in der Praxis
Security Lab: OIDC in der PraxisSecurity Lab: OIDC in der Praxis
Security Lab: OIDC in der PraxisQAware GmbH
 
Flexera Software App Portal - German
Flexera Software App Portal - GermanFlexera Software App Portal - German
Flexera Software App Portal - GermanFlexera
 

Ähnlich wie OAuth 2.0 presentation with example with google auth (11)

API Authentifizierung und Autorisierung
API Authentifizierung und Autorisierung API Authentifizierung und Autorisierung
API Authentifizierung und Autorisierung
 
Integrations-Pattern für OpenID Connect
Integrations-Pattern für OpenID ConnectIntegrations-Pattern für OpenID Connect
Integrations-Pattern für OpenID Connect
 
REST - Hypermedia und Sicherheit
REST - Hypermedia und SicherheitREST - Hypermedia und Sicherheit
REST - Hypermedia und Sicherheit
 
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...
 
Piwik Installation und Implementierung
Piwik Installation und ImplementierungPiwik Installation und Implementierung
Piwik Installation und Implementierung
 
Flexera Software App Portal Datasheet
Flexera Software App Portal DatasheetFlexera Software App Portal Datasheet
Flexera Software App Portal Datasheet
 
Wer bin ich? Authentifizierung durch Zertifikate
Wer bin ich? Authentifizierung durch ZertifikateWer bin ich? Authentifizierung durch Zertifikate
Wer bin ich? Authentifizierung durch Zertifikate
 
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...
 
Echtes Single Sign-On mit APEX realisieren
Echtes Single Sign-On mit APEX realisierenEchtes Single Sign-On mit APEX realisieren
Echtes Single Sign-On mit APEX realisieren
 
Security Lab: OIDC in der Praxis
Security Lab: OIDC in der PraxisSecurity Lab: OIDC in der Praxis
Security Lab: OIDC in der Praxis
 
Flexera Software App Portal - German
Flexera Software App Portal - GermanFlexera Software App Portal - German
Flexera Software App Portal - German
 

OAuth 2.0 presentation with example with google auth

  • 2. OAuth 2.0 - standardisiertes Protokoll/Autorisierungsframework - Ermöglicht es Clients (z.B. Webanwendungen) auf Ressourcen eines Benutzers zuzugreifen. Diese Ressourcen liegen auf einem Ressourcenserver - Anmeldedaten (Benutzernamen und Passwort) werden dabei nicht direkt preisgegeben!
  • 3. Ablauf - Wir haben eine Client-Anwendung (z.B. Web- oder Mobilanwendung) - Diese muss beim Autorisierungsserver registriert werden - Wir erhalten dazu eine Client-ID und ein Client-Secret Beispiel: Entwickler der Fitness-Tracker-App registriert die Anwendung bei Google, um Client-ID und Client-Secret zu erhalten. Die Anwendung gibt die Redirect-URIs an, zu denen Google nach der Authentifizierung weiterleiten soll
  • 4. Ablauf - Benutzer initiiert den Ablauf, indem er auf der Client-Anwendung eine Aktion ausführt, die eine Anmeldung oder Zugriffsberechtigung erfordert - Die Client-Anwendung leitet den Benutzer dann zum Autorisierungsserver weiter, wo der Benutzer aufgefordert wird, sich anzumelden (falls nötig) und der Anwendung Zugriff auf bestimmte Ressourcen zu gewähren Beispiel: Wir haben in unserer Fitness-App einen Button “Mit Google anmelden”. Die App leitet den Benutzer zu Google mit der Autorisierungsanfrage um, einschließlich der Client-ID und der angeforderten Berechtigungen (z.B. Zugriff auf die E-Mailadresse)
  • 5. Ablauf - Benutzer erteilt die Einwilligung auf dem Autorisierungsserver, indem er die angeforderten Berechtigungen bestätigt - Der Autorisierungsserver sendet daraufhin den Benutzer zurück zur Client-Anwendung, üblicherweise mit einem Autorisierungscode Beispiel: Google fordert den Benutzer also auf, sich einzuloggen. Dies stellt sicher, dass der Benutzer die Anfrage versteht und explizit zustimmt
  • 6. Ablauf Die Client-Anwendung sendet den Autorisierungscode zusammen mit ihrer Client-ID und dem Client-Secret zurück an den Autorisierungsserver, um seine Identität zu bestätigen - Im Gegenzug sender der Autorisierungsserver einen Access Token (bzw. Refresh Token) an die Client-Anwendung Beispiel: Nach Authentifizierung und Zustimmung durch den Benutzer leitet Google den Benutzer zurück zur Redirect-URI der Fitness-App, einschließlich eines Autorisierungscodes
  • 7. Ablauf - Die Client-Anwendung verwendet den Access Token, um beim Ressourcenserver Anfragen im Namen des Benutzers zu stellen - Der Ressourcenserver validiert den Access Token und gewährt bei erfolgreicher Validierung Zugriff auf die angeforderten Ressourcen Beispiel: Die Fitness-App extrahiert den Autorisierungscode aus der Weiterleitung und machen einen Server-zu-Server-Aufruf an Google, um den Autorisierungscode gegen einen Access Token einzutauschen. Die Anfrage beinhaltet den Autorisierungsocde, die Client-ID, das Client-Secret und die Redirect-URI. Google authentifiziert die Anwendung mithilfe Client-ID und Secret. Wenn alles gültig, gibt es einen Zugriffstoken!
  • 8. Sessionmanagement - Die App kann das Zugriffstoken sicher speichern und für nachfolgende Anfragen bis zum Ablauf verwenden. - Bei Bedarf kann das Aktualisierungstoken verwendet werden, um ein neues Zugriffstoken zu erhalten, ohne dass der Benutzer sich erneut authentifizieren muss.
  • 9. Abmeldung und Widerruf - Der Benutzer kann die Berechtigungen jederzeit in seinen Google-Kontoeinstellungen widerrufen. - Die App sollte ebenfalls eine Option zum Abmelden bereitstellen, um das Zugriffstoken zu löschen und die Session zu beenden.
  • 10.
  • 11.
  • 13. Beispiel Wir werden ein Beispiel durchcoden und sehen in diesem Beispiele wesentliche Dinge des OAuth 2.0 Workflows
  • 14. Beispiel Hier wird Express initialisiert und Middlewares für die Verarbeitung von URL-kodierten Daten, Sessions und Passport (für Authentifizierung) konfiguriert. Die session-Middleware ist wichtig für das Tracking von Benutzersitzungen über mehrere Anfragen hinweg, was ein Schlüsselelement nach der Authentifizierung im OAuth 2.0-Workflow ist.
  • 15. Beispiel Dieser Teil des Codes konfiguriert die Google OAuth 2.0-Strategie mit den Umgebungsvariablen CLIENT_ID und CLIENT_SECRET. Die callbackURL ist der Ort, an den Google den Benutzer nach erfolgreicher Authentifizierung und Autorisierung weiterleitet. Innerhalb der Callback-Funktion erfolgt dann die Verarbeitung des Benutzerprofils, was typischerweise das Suchen oder Erstellen eines Benutzers in der Datenbank umfasst. Dies ist direkt Teil des OAuth 2.0-Workflows, wo nach der Authentifizierung und Erlangung des Zugriffstokens Benutzerinformationen von Google abgerufen werden.
  • 16. Beispiel Der erste Endpunkt leitet Benutzer zur Authentifizierung mit Google weiter. Hier beginnt der OAuth 2.0- Authentifizierungsprozess, indem der Benutzer aufgefordert wird, sich bei Google anzumelden und der Anwendung Zugriff zu gewähren. Der Scope ["profile"] definiert, welche Informationen die Anwendung anfordert. Der zweite Endpunkt ist die callbackURL, die in der GoogleStrategy konfiguriert wurde. Nach der Authentifizierung und Autorisierung durch Google wird der Benutzer zusammen mit dem Autorisierungscodes an diesen Endpunkt weitergeleitet. Passport handhabt dann den Austausch des Autorisierungscodes gegen ein Zugriffstoken und ruft das Benutzerprofil ab. Bei Fehlschlag wird der Benutzer zum /login umgeleitet; bei Erfolg wird er zur Homepage (/) weitergeleitet.
  • 17. Beispiel serializeUser und deserializeUser sind für das Management der Benutzersitzungen verantwortlich. Wenn ein Benutzer authentifiziert wird, wird seine user.id in der Sitzung gespeichert. Bei nachfolgenden Anfragen wird die ID aus der Sitzung extrahiert und verwendet, um den Benutzer aus der Datenbank zu laden. Dies ist ein wichtiger Schritt nach der Authentifizierung, um den Benutzer über mehrere Anfragen hinweg als angemeldet zu kennzeichnen, ohne dass er sich erneut authentifizieren muss.