Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.


Status
colourYellow
titleIn Arbeit

Inhalt


Was ist oAuth2 (open Authorization) und wofür wird es verwendet?

  • oAuth2 ist ein Protokoll, welches dem Nutzer ermöglicht mehrere (externe) Dienste, die einer Anmeldung bedürfen, mit nur einem DLRG-Account zu nutzen. Das kann z.B. interessant sein, wenn eine Gliederung eine eigene Cloud (nicht die DLRG-Cloud) betreibt und möchte, dass sich die Mitglieder der Gliederung über den DLRG-Account anmelden können. So müssten sich die Mitglieder nicht mehrere Passwörter merken
    • ein gutes Beispiel für oAuth ist z.B. die Möglichkeit sich mit seinem Facebook-Account bei Spotify anzumelden. Hier kommt oAuth ebenfalls zum Einsatz
  • Des Weiteren wird das Anmeldeverfahren durch oAuth2 besonders sicher, da der Drittanbieter (nicht DLRG eigen) keine Account-Passwörter mehr übermittelt bekommt.

Einrichtung

  • Die Einrichtung muss vom Betreiber des externen Dienstes, z.B. die Gliederung mit eigener Cloud, selbst vorgenommen werden.
  • Es erfolgt seitens der DLRG kein Support bei der Einrichtung von oAuth2 auf eigenen Servern!

...

technische Erklärung wie oAuth2 funktioniert

Erste Anfrage:
GET https://www.dlrg.net/oauth2/authorize

mit den Parametern:

  • response_type=code
  • client_id={vom AK IT erhaltene Client-ID}
  • redirect_uri={URL des eigenen Dienstes}
  • scope={eine Liste der Berechtigungen, die für den Dienst vom Nutzer erbeten werden}properties
  • state={ein CSRF-Token} (optional)


Wenn der Benutzer sich einloggt und die Anfrage bestätigt erfolgt eine Weiterleitung auf die URl des eigenen Dienstes mit den Parametern:

  • code={der Autorisierungscode}
  • state={das CSRF-Token der vorherigen Anfrage}


Nach dem Login und Bestätigung der Rechtegewährung muss der eigene Dienst folgende Abfrage durchführen:
POST https://www.dlrg.net/oauth2/token

mit den Parametern:

  • grant_type=authorization_code
  • client_id={vom AK IT erhaltene Client-ID}
  • client_secret={vom AK IT erhaltenes Client-Passwort}
  • redirect_uri={URL des eigenen Dienstes}
  • code={der Autorisierungscode}


Es wird als Antwort ein JSON-Objekt gesendet mit folgenden Eigenschaften:

  • token_type: Bearer
  • expires_in: 3600
  • access_token: {das Token, welches u.a. die Benutzer-ID und die erhaltenen Rechte [Scopes] beinhaltet)
  • refresh_token: {ein "Auffrischungstoken", mit dem ein neues Token generiert werden kann, sollte dieses ungültig geworden sein}


Derzeit sind folgende Rechte vom Nutzer beantragbar:

  • profile : das Recht, den Benutzername, Vorname und Nachname des Nutzers abfragen zu dürfen
  • email : das Recht, die Email-Adresse des Nutzers abfragen zu dürfen


Diese Informationen sind abzufragen unter:
GET https://www.dlrg.net/oauth2/userinfo
mit dem "Authorization"-Header vom Typ "Bearer" und dem erhaltenen Token