08/08/2019

Open Authorization Protokoll: Was ist dran an OAuth2.0?

Wenn Applikationen von Drittanbietern Zugriff auf restriktivere Ressourcen benötigen, ist es nicht immer einfach, Sicherheit zu gewähren. Dabei könnte es sich zum Beispiel um eine Foto-App auf einem Smartphone handeln, das Fotos aus einem Google-Konto importieren möchte.
Soll der Zugriff über Benutzername und Passwort ermöglicht werden, wodurch die Zugriffsdaten der Foto-App bekannt werden? Wie wird sichergestellt, dass der Zugriff – nachdem die Fotos ausgelesen wurden – wieder beendet wird? OAuth2.0 versucht genau dieses Problem zu lösen.

Was ist OAuth2.0?

OAuth2.0 ist ein reines Autorisierungsprotokoll. Es ist nicht in der Lage Authentifizierungen durchzuführen und sollte auch nicht dafür eingesetzt werden. OAuth führt stattdessen einen Autorisierungsebene ein und trennt damit die Rolle des Clients von der Rolle des Ressourcenbesitzers. Dadurch wird der Drittanbieter Applikation (der Foto-App auf dem Smartphone) Zugriff über einen Zugriffstoken gewährt und nicht über die Zugriffsdaten des Benutzers.

Wie funktioniert OAuth2.0?

Bei OAuth2.0 existieren insgesamt vier Teilnehmer, die am Autorisierungsprozess beteiligt sind. Der Ressource-Eigentümer – er ist in der Lage Zugriff auf die Ressource zu gewähren (in unserem Beispiel der Besitzer des Smartphones). Der Ressource-Server – er stellt die benötigten Ressourcen bereit (in unserem Beispiel das Google-Konto). Der Client, welcher auf die Ressource zugreifen möchte (in unserem Beispiel die Foto-App). Abschließend noch der Autorisierungsserver, der den Zugriffstoken ausstellt.

Die Kommunikation zwischen den einzelnen Teilnehmern wird im oben angeführten Bild dargestellt.

Limes empfiehlt:

Zwar kann OAuth2 mittels unsicherem HTTP verwendet werden, sollte aber dennoch nur über HTTPS zum Einsatz kommen. Das Protokoll tauscht unter anderem Zugriffstokens aus, die als kritisch anzusehen sind. Das bedeutet übrigens auch, dass OAuth2-Zugriffstokens niemals geloggt oder via GET-Parameter transportiert werden sollen.
Schützen Sie den Zugriffstoken genauso gut wie Ihr Passwort!
Verwenden Sie keine Standard-OAuth2-Tokens! Die Verwendung von JSON Web Tokens (JWT) ist ratsam, da diese Tokens zusätzliche Informationen wie Zeitstempel oder betroffenen Ressourcen beinhalten können.

Wenn Sie mehr über Autorisierung und Authentifizierung für Web-Applikationen erfahren möchten, empfehlen wir einen unserer Kurse im Bereich Java-, C#- oder Web-Security. # Zur Kursanfrage