Im Internet-Ökosystem von zunehmend miteinander verflochtenen Anwendungen, wenn eine Anwendung eine Aktion auf einer anderen Anwendung im Namen eines Benutzers ausführen möchte, besteht die Notwendigkeit, dies zu tun, ohne das Kennwort einer Anwendung an eine andere zu teilen. Ein häufiges Beispiel hierfür ist die Anmeldung bei Facebook durch Apps, die etwas auf Ihrer Timeline posten oder auf Ihr Google Drive zugreifen möchten. Wenn Sie Ihr Facebook-Passwort mit solchen Apps teilen, damit sie auf Ihre Timeline zugreifen können und eine Datenpanne mit diesen Apps passiert, werden auch Ihre Facebook-Anmeldeinformationen bedroht. Durch die Freigabe Ihres Passworts geben Sie solchen Apps die volle Kontrolle über Ihr Facebook-Konto statt des eingeschränkten Zugriffs. Um diese Herausforderung zu lösen, wurde ein Protokoll namens OAuth definiert.
Oauth
OAuth ist ein Open-Standard-Autorisierungsprotokoll/-framework, das es Anwendungen ermöglicht, eingeschränkten Zugriff auf Benutzerkonten einer anderen Anwendung zu erhalten, ohne ein Kennwort zu teilen. Diese Anwendungen sind mit einem Autorisierungstoken versehen, das für die Verwendung von Diensten einer anderen Anwendung in Ihrem Namen verwendet werden kann, ohne Ihr Kennwort zu gefährden. OAuth kann verwendet werden, um Anwendungen, APIs, Geräte und Server zu autorisieren.
Auf hoher Ebene handelt es sich um einen gesicherten delegierten Autorisierungsprozess und eingeschränkten Zugriff über HTTP, anstatt Ihre Anmeldeinformationen zu verwenden, die das Sicherheitsrisiko minimieren. Wenn eine Sicherheitsverletzung auftritt und Ihre Daten aus der App gestohlen werden, die Zugriff auf Ihr Facebook hat, ist Ihr Facebook-Passwort sicher. Keine Sorge.
OAuth hat zwei Versionen – OAuth 1.0a und OAuth 2.0. Beide Versionen unterscheiden sich in Bezug auf Spezifikationen völlig voneinander und sind nicht kompatibel, um zusammen verwendet zu werden. Aber OAuth 2.0 Version wird am häufigsten verwendet und wir werden uns nur auf diese konzentrieren, wenn wir uns auf OAuth beziehen, es sei denn, wir werden explizit erwähnt.
Schauspieler und Flow
Es gibt vier Schauspieler, auch als Rollen bezeichnet, in einem OAuth-Flow.
- Ressourcenbesitzer (Benutzer) – der Besitzer der entsprechenden Daten, die sich auf dem Ressourcenserver befinden. Der Ressourcenbesitzer autorisiert den Kontozugriff, der auf den Umfang der erteilten Autorisierung beschränkt ist.
- Resource Server (API) – Hier werden das Benutzerkonto/die Ressourcen in einer geschützten Umgebung gehostet.
- Client (Anwendung) – die Anwendung, die Zugriff auf das Benutzerkonto anfordert.
- Autorisierungsserver (API) – Der Autorisierungsserver führt die Identitätsüberprüfung durch, um das Zugriffstoken auszugeben.
Diese Akteure interagieren auf der Grundlage des OAuth-Protokolls miteinander. Bitte beachten Sie, dass es im OAuth-Protokoll um Autorisierung und nicht um Authentifizierung geht. Der allgemeine Ablauf eines OAuth-Protokolls ist wie folgt:
- Der Client möchte auf den Ressourcenserver zugreifen und fordert die Berechtigung des Benutzers an.
- Der Benutzer autorisiert die Anforderung entweder oder verweigert sie.
- Im Falle einer Autorisierung erhält der Client eine Autorisierungserteilung.
- Der Client legt diese Autorisierungserteilung und seine Identität dem Autorisierungsserver vor und fordert ein Zugriffstoken an.
- Wenn der Client über beides, eine gültige Identität und eine Autorisierungserteilung verfügt, stellt der Autorisierungsserver ihm ein Zugriffstoken zur Verfügung.
- Der Client wechselt dann zum Ressourcenserver und fordert den Ressourcenzugriff an, indem er ihm das Zugriffstoken vorstellt.
- Der Ressourcenserver stellt den zulässigen eingeschränkten Zugriff auf den Client nur dann bereit, wenn das Token gültig ist.
Herausforderungen bei der Überwachung von OAuth-fähigen Anwendungen
Die OAuth-Implementierung ermöglicht Ihrer App den Zugriff auf Serverressourcen in anderen Apps mit Datenschutz und großer Benutzererfahrung. Gleichzeitig stellt OAuth jedoch einige Herausforderungen bei der Überwachung Ihrer Anwendung dar. Werfen wir einen Blick auf diese Herausforderungen.
Token-Verwaltung – Die OAuth-Implementierung erfordert die Verwaltung von Token mit Statusverwaltung. Das bedeutet, dass diese Token aktualisiert und gedreht werden. Wenn ein Autorisierungsfehler auftritt, wird es schwierig herauszufinden, welcher Akteur im OAuth-Protokoll fehlerhaft ist. Es wird ein Debugging-Albtraum.
OAuth-Anforderungs-/Antwortabhängigkeit – Was passiert, wenn Ihr OAuth-Anbieter etwas in seinem Mechanismus geändert hat? Schon die geringste Änderung der Anforderungs-/Antwortparams kann Ihre gesamte Anwendung unterbrechen. Es kann eine Weile dauern, bis Sie herausfinden, ob Ihre Entwickler nicht auf neue Versionen Ihres OAuth-Anbieters achten.
Rückrufe – Je nach Implementierung kann es mehr als einen API-Aufrufe zwischen allen Akteuren für eine erfolgreiche OAuth-Transaktion dauern. In den meisten Fällen wird die Callbacks-Methode verwendet, um dies zu erreichen, die komplex genug sein kann, um nachzuverfolgen, wenn etwas dazwischen bricht. Herkömmliche Überwachungstools reichen nicht aus, um Rückruffehler zu ermitteln, die Debugzeit zu erhöhen und damit Ihre Ausfallzeiten zu erhöhen.
Konfiguration – Dies ist wichtig, um das Leben Ihres DevOps-Teams zu vereinfachen. Wenn Sie ein Überwachungstool verwenden, das sich nicht auf hochgradig konfigurierbare HTTP(S)-Aufgaben spezialisiert hat, haben Sie es schwer, OAuth-Flows zu überwachen, die tokenablaufen/erneuern und mehrere API-Aufrufe über HTTP(s) beinhalten.
Die Lösung für die Überwachung von OAuth-fähigen Anwendungen
Synthetische Überwachung ist eine ausgezeichnete Wahl, wenn wir uns mit Abhängigkeiten von Drittanbietern, HTTP(S), REST-APIs, komplexen Benutzerpfaden und benutzerdefinierten Anmeldemechanismen wie OAuth usw. befassen.
Die synthetische Überwachung funktioniert, indem das Verhalten von Endbenutzern mit benutzerdefinierten Skripts in einer hochgradig konfigurierbaren Umgebung simuliert wird, um die Flexibilität der Architektur zu unterstützen, und dann den Datenverkehr und den Fluss proaktiv überwacht. Dies hilft beim Erkennen und Lösen von Problemen, bevor echte Benutzer ihnen gegenüberstehen. Die Dotcom-Monitor-Plattform verwendet ein Point-and-Click-Skriptstool namens EveryStep Web Recorder, um Skripts zu erstellen, die Benutzerpfade simulieren können, sowie Inhalte zu überprüfen, die als Antwort auf bestimmte Aktionen zurückgegeben werden. Um die Überwachungsherausforderungen der OAuth-Implementierung zu bewältigen, müssen Sie spezielle synthetische Überwachungstools mit den folgenden Must-Have-Funktionen verwenden:
Mehrstufige Webtransaktionsüberwachung – Wie wir kurz erwähnt haben, ist eine erfolgreiche OAuth-Transaktion ein mehrstufiger Prozess zwischen seinen Akteuren. Mit der synthetischen Überwachung können Sie die mehrstufige Überwachung für OAuth-Transaktionen konfigurieren und kontinuierlich auf Verfügbarkeit und Leistung überwachen. Die Multitask-Überwachung wird Ihnen genau sagen, welcher Schritt für den unterbrochenen Fluss verantwortlich ist, so dass Sie ihn schnell beheben können.
Benutzerdefinierte Skripts mit HTTP/S-Aufgaben – Die tatsächliche OAuth-Implementierung unterscheidet sich je nach Architektur und Sicherheitsrichtlinien von Anwendungen zu Anwendungen.
Mit dem Tool zur Überwachung von synthetischen Webdiensten können Sie hochgradig konfigurierbare HTTP(s)-Aufgaben und benutzerdefinierte Skripts für komplexe Benutzerpfade schreiben. Auf diese Weise können Sie den End-to-End-Fluss der OAuth-Transaktion Ihrer Anwendung und den Gesamtzustand von APIs und Rückrufen überwachen. Wenn Sie außerdem Daten, z. B. Benutzernamen, überprüfen müssen, die als Antwort zurückgegeben werden, können Sie die Skripts mit dem EveryStep Web Recorder einrichten, um diese spezifischen Schlüsselwörter zu überprüfen.
Zusätzlich zu diesen Funktionen sind synthetische Überwachungstools ein wertvolles Gut für die Überwachung von Abhängigkeiten von Drittanbietern, Webdiensten und Protokollen (SOAP-, REST-, TCP- und ICMP-Protokolle) und infrastruktur. Mit Dotcom-Monitor können Sie eine mehrstufige Transaktion für die OAuth-basierte Web-API mithilfe der HTTP(s-Task) konfigurieren und rund um die Uhr kontinuierlich nach Betriebszeit, Leistung und Funktionalität suchen.
Testen Sie die vollständige Dotcom-Monitor Plattform 30 Tage lang kostenlos.