14.9.2022 |

Angular OAuth2

Wer heutzutage eine sichere Authentifizierung nutzen möchte, kommt meist nicht ohne OAuth aus. OAuth ist ein offenes Protokoll zur sicheren API-Autorisierung von Anwendungen. Die aktuelle Version ist 2.0, jedoch steht 2.1 kurz vor dem Release.

Eine große Änderung in Version 2.1 betrifft vor allem den sogenannten "Flow", sprich wie das Authentifizierungsverfahren abläuft. Der aktuelle Implicit Flow soll abgeschafft werden und durch den Code Flow abgelöst werden.

Implicit Flow

Beim Implicit Flow wird der Benutzer zu einem Authentifizierungsserver umgeleitet, wo er sich dann authentifizieren muss. Ist dieser Vorgang erfolgreich, wird der Benutzer mit einem access_token und ggf. refresh_token an die eigentliche Applikation zurückgeleitet.

grafik

Code Flow

Beim Code Flow wird der Benutzer ebenfalls zu einem Authentifizierungsserver umgeleitet, wo er sich dann authentifizieren muss. Ist der Vorgang erfolgreich, wird der Benutzer mit einem Code und Verifier an die Applikation zurückgeschickt. Danach erfolgt im Hintergrund eine POST-Anfrage zu dem Token-Endpunkt des Authentifizierungsservers, wo der Benutzer seinen Code gegen einen access_token und ggf. refresh_token einlösen kann.

grafik

Um diesen Flow schnell und einfach in bestehende Applikationen zu implementieren, gibt es diverse Bibliotheken, welche einem viel Aufwand bei der Implementierung abnehmen. Für SPA bzw. Angular Applikationen wurde bis jetzt gute Erfahrung mit der Bibliothek angular-oauth2-oidc gemacht. Implementierung für IdentityServer (.NET / .NET Core), Redhat's Keycloak (Java) und Auth0, als aber auch Azure Active Directory (Azure AD) sind möglich und gut dokumentiert.

Dennis
Zur Übersicht

Mehr vom DevSquad...

Simon Jakubowski

Simple NestJS GraphQL API

Sven Röttering

Eigene eslint Regeln erstellen