© Ico Maker/shutterstock.com
Teil 3: OAuth 2.0 und die neuen Security-Best-Practices

Sichere Projekte mit Angular


OAuth 2.0 und das darauf aufbauende OpenID Connect erlauben das Anbinden von Identity-Lösungen wie Active Directory. Die OAuth 2.0 Security Best Current Practice schafft den bis dato für SPAs verwendeten Implicit Flow ab und erlaubt Refresh-Tokens.

Artikelserie

Teil 1: Domänenschnitt mit Nx Monorepos

Teil 2: Zustandsverwaltung mit NgRx und Fassaden

Teil 3: OAuth 2.0 und die neuen Security-Best-Practices

Keine erstzunehmende Geschäftsanwendung kommt ohne Authentifizierung und Autorisierung aus. Schließlich muss die Anwendung ja wissen, mit wem sie es zu tun hat und welche Berechtigungen vorliegen. Eine sehr flexible Lösung hierfür ist der Einsatz von Securitytokens. Sie erlauben die Anbindung verschiedener Identity-Lösungen wie Active Directory und sind die Basis für die Realisierung von Single Sign-on.

Damit die Anwendung mit allen möglichen Identity-Lösungen funktioniert, benötigen wir ein wohldefiniertes Protokoll zur Kommunikation. Seit einigen Jahren sind OAuth 2.0 und OpenID Connect (OIDC) die De-facto-Standards dafür.

In diesem Artikel zeige ich, wie unsere Lösung aus den letzten beiden Teilen mit diesen Protokollen eine bestehende Identity-Lösung anbinden kann. Dabei berücksichtige ich die aktuellen Best Current Practices [1], an denen die OAuth Working Group gerade arbeitet und die in OAuth 2.1 einfließen sollen.

Das Beispiel dafür befindet sich wieder in meinem GitHub-Account [2]. Der Branch artikel3 beinhaltet die hier beschriebenen Anpassungen.

Überblick zu OAuth 2.0 und OpenID Connect

Das Prinzip hinter OAuth 2.0 und OIDC lässt sich sehr einfach mit dem sogenannten Implicit Flow visualisieren. Dabei handelt es sich um eine simple Spielart, die ursprünglich für Single Page Applications entworfen wurde. Der Flow beginnt damit, den Benutzer zu einem Authorization-Server umzuleiten (Abb. 1).

steyer_angular_start3_1.tif_fmt1.jpgAbb. 1: OAuth 2/OIDC Implicit Flow

Dieser Server kennt die einzelnen Konten und fordert den Benutzer auf, sich anzumelden. Die Art der Anmeldung ist ein Implementierungsdetail, das nicht vom Standard vorgegeben wird. Häufig kommen an dieser Stelle Benutzernamen und Passwörter zum Einsatz. Innerhalb von Windows-Domänen bietet sich auch die Nutzung der Windows-Authentifizierung an. Dabei erkennt der Authorization-Server ohne weitere Interaktion den aktuellen Windows-Benutzer.

Danach stellt der Authorization-Server ein sogenanntes Access-Token sowie ein ID-Token (Identity-Token) aus und leitet den Benutzer damit zurück zum Client, bei dem es sich in unserem Fal...

Exklusives Abo-Special

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang