Eugenio Marongiu - Fotolia

Sichere Verwendung von OAuth 2.0 für Enterprise-Logins

OAuth 2.0 ist ein Protokoll, das zur Authentifizierung von Anwendern und Geräten verwendet wird. Es enthält jedoch keine Mechanismen zur Autorisierung.

Mit einem Authentifizierungsmechanismus wie OAuth 2.0 (Open Authorization) ist es möglich, Anwendern und Geräten bestimmte Zugriffsrechte zuzuweisen. Das offene Protokoll ist damit ein wichtiger Baustein für die Etablierung sicherer Logins. Die Begriffe sind dabei aber nicht immer klar.

Authentifizierung dient dazu, die Identität einer bestimmten Person oder etwa einer Anwendung zu bestätigen, während eine Autorisierung erst nach einer erfolgreichen Authentifizierung möglich ist. Mit einer Autorisierung lassen sich dann Zugriffsrechte auf wichtige Systemressourcen zuweisen oder verweigern.

Viele Entwickler von Webseiten und mobilen Apps gehen aber davon aus, dass bei einem Anwender oder einem Gerät, das erfolgreich authentifiziert wurde und dem dabei gleich die entsprechenden Rechte zugewiesen wurden, keine weiteren Autorisierungs-Checks nötig sind. Das kann dazu führen, dass Apps vertrauliche Daten zwar authentifizierten, aber nicht autorisierten Anfragen offenlegen. Das negiert dann alle Vorteile, die Produkte aus dem IAM-Bereich (Identity Access Management) eigentlich bieten.

Was wirklich hinter dem Protokoll OAuth 2.0 steckt

Dieses Problem existiert, weile viele Entwickler davon ausgehen, dass ein einmal authentifizierter Nutzer vertrauenswürdig ist. Dabei sollten auch Anfragen von authentifizierten Anwendern oder Geräten zunächst noch einmal überprüft werden, bevor ihnen erlaubt wird, bestimmte Aktionen durchzuführen. Viele Programmierer denken aber schlicht nicht daran, diese zweite Hürde in ihre Produkte einzubauen. Wichtig ist es aber, die Zugriffsrechte des Anwenders, also ob er bestimmte Daten sehen, bearbeiten und löschen darf, sowohl zu authentifizieren als auch zu autorisieren.

Viele Apps verwenden das Protokoll OAuth bislang sowohl für eine Authentifizierung als auch für die Autorisierung. Aus technischer Sicht handelt es sich dabei aber nur um eine Spezifikation zur Autorisierung, die nicht zur Authentifizierung vorgesehen ist. So besagt RFC 6749 in Sektion 3.1:

„Der Autorisierungs-Endpunkt wird genutzt, um mit dem Besitzer einer Ressource zu interagieren und um eine Autorisierung zu erhalten. Der Autorisierungsserver MUSS deswegen die Identität des Besitzers der Ressource vorher überprüfen. Die Art, wie der Autorisierungsserver den Besitzer der Ressource authentifiziert (zum Beispiel mit einem Nutzernamen und Passwort oder mit Session Cookies) ist nicht Teil dieser Spezifikation.“

Verifizierung durch Authentifizierung und Autorisierung

Obwohl es viele Libraries und Dienste gibt, die das OAuth-2.0-Protokoll zur Authentifizierung nutzen, ist dies doch keine sichere Vorgehensweise. OAuth 2.0 sollte stattdessen etwa mit dem Standard OpenID Connect kombiniert werden, wenn Programmierer eine sichere Lösung entwickeln wollen, die sowohl Authentifizierung als auch Autorisierung umfasst. OpenID Connect ist ein zusätzlicher Layer zur Identifizierung einer Person oder eines Geräts, der mit OAuth 2.0 zusammenarbeitet.

Damit ist es dann etwa möglich, dass ein Anwender einer Applikation eines Drittanbieters erlaubt, auf bestimmte Daten zuzugreifen, ohne dass er dazu seine Login-Daten offenlegen muss. OpenID Connect ermöglicht es also, dass eine Anwendung eines anderen Anbieters auf bestimmte Informationen zugreifen darf. Diese Technik erleichtert es Entwicklern erheblich, Anwender über Webseiten und Apps hinweg zu autorisieren, ohne dazu ihre Passwörter kennen und verwalten zu müssen. So ist etwa Google+ Sign-In eine Plattform, die auf OpenID Connect und OAuth 2.0 basiert und die wiederum von anderen Entwicklern genutzt werden kann, ihren Nutzern ein sicheres Login zu ermöglichen.

Aus den genannten Gründen ist es wichtig, dass die zugehörige Dokumentation während eines gesamten Entwicklungsprozesses immer wieder gelesen und verstanden wird. Dieser Punkt gilt unabhängig davon, für welche Form der Authentifizierung und Autorisierung sich ein Entwicklerteam entscheidet. Viele der verfügbaren Applikationen und Richtlinien behaupten von sich, leicht zu implementieren zu sein. Den richtigen Code und die richtigen Prozesse zu verwenden, ist aber kein trivialer Vorgang.

Um wirklich Sicherheit zu gewährleisten, sind umfangreiche Tests notwendig, die sowohl einen absichtlichen als auch einen unabsichtlichen Missbrauch der verwendeten Verfahren umfassen. Nur so lässt sich sicherstellen, dass die vorgesehenen Authentifizierungs- und Autorisierungsprozesse wie vorgesehen funktionieren und dass nur authentifizierte Anwender und Geräte auf Ressourcen zugreifen dürfen, für die sie auch autorisiert wurden.

Folgen Sie SearchSecurity.de auch auf Twitter, Google+, Xing und Facebook!

Nächste Schritte

Zugriffsrechte an Identitäten koppeln - IAM

Sicherheitslücken in OAuth 2.0: Das können Firmen tun

Den Zugriff auf Cloud-Dienste absichern

Artikel wurde zuletzt im Dezember 2017 aktualisiert

Erfahren Sie mehr über SaaS-Sicherheit: Cloud-Services und -Systeme

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchStorage.de

SearchNetworking.de

SearchEnterpriseSoftware.de

SearchDataCenter.de

Close