...
Dem Endanwender macht oAuth2 das Leben deutlich einfacher, da man sich nicht mehr diverse Anmeldenamen und -passwörter für alle möglichen Dienste merken muss.
Einem potenziellen Angreifer wird es durch das Hin- und Herschicken von kryptischen Zeichen und das ständige Rückversichern (ähnlich Asterix und Obelix beim römischen Amt) sehr schwer bis quasi unmöglich gemacht die Anmeldedaten des Benutzers/Mitgliedes abzufangen und böswillig zu nutzen.
Technische Erklärung
Hinweis |
---|
Für externe Dienste schalten wir nur den "Authorization Grant" als Berechtigungsmethode frei. Daher beschränkt sich die Anleitung auf diesen "Grant-Type" |
Erste Anfrage:
GET Die Anbindung erfolgt gemäß oauth2 Standard gegen https://iam.dlrg.net/auth/oauth2realms/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)
...
- code={der Autorisierungscode}
- state={das CSRF-Token der vorherigen Anfrage}
...
- 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}
...
- 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}
...
- 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
...
Folgende Werte sind in der Antwort (JSON) bei vorhandener Berechtigung abrufbar:
...
language | js |
---|
...
Die Einrichtung muss du die Gliederung selbst erfolgen - es erfolgt keinen Support durch den AK IT bei der Einrichtung in anderen Diensten.