Was ist OAuth und wie funktioniert es?

OAuth (Open Authorisation) – ist ein offenes Standard-Autorisierungsprotokoll oder -Rahmenwerk, das den vorgesehenen Zugriff für Anwendungen ermöglicht. Da OAuth auf einer Token-Autorisierung beruht, bleiben alle Benutzerpasswörter sicher geschützt.

OAuth

OAuth (Open Authorisation)

OAuth ist ein offenes Standard-Autorisierungsprotokoll oder -Rahmenwerk, das den designierten Zugriff für Anwendungen erleichtert. Mit OAuth können externe Websites auf die Social-Media-Profile eines Benutzers zugreifen, um Aktualisierungen des Profils zu posten.  Anstatt sich auf Anmeldeinformationen zu verlassen, verwendet OAuth HTTPS in Verbindung mit Zugriffstoken, um Geräte, APIs, Server und Anwendungen zu autorisieren. Da das OAuth-Authentifizierungsprotokoll es Benutzern ermöglicht, Interaktionen zwischen Anwendungen zu genehmigen, ohne Passwörter weiterzugeben, bleiben alle Passwörter für soziale Medien sicher geschützt. Das heisst, wenn externe Dienste Opfer von Cyberkriminalität werden, bleiben das Profil und die Anmeldedaten des Benutzers sicher.

Unternehmen vertrauen OAuth beim Schutz von Partner- und Kunden-APIs sowie von internen Clients, die private Cloud-Modelle nutzen. Vor OAuth war die einzige Option ein direktes Authentifizierungsmuster, d. h. die HTTP-Basisauthentifizierung, die zur Authentifizierung und Autorisierung auf einen Benutzernamen und ein Passwort angewiesen ist. Auch wenn diese Methode noch immer als eine Form der API-Authentifizierung für serverseitige Anwendungen verwendet wird, senden die Benutzer bei jeder Anfrage eine API-Schlüssel-ID und ein Benutzergeheimnis anstelle eines Benutzernamens und eines Passworts an den Server. Bevor das OAuth-Protokoll entwickelt wurde, haben Websites auf die Daten (oder Konten) der Benutzer zugegriffen, nachdem diese ihre sensiblen Benutzernamen und Passwörter eingegeben hatten – ein Prozess, der oft als Passwort-Anti-Pattern bezeichnet wird.

Der OAuth-Standard entstand aus dem Wunsch heraus, den Benutzern mehr Kontrolle über Autorisierungsberechtigungen zu geben, ohne dass sie ihre Anmeldedaten für soziale Medien angeben müssen. Es gibt zwei Versionen von OAuth: OAuth 1.0a und OAuth 2.0., die vollkommen eigenständig sind und ohne jegliche Abwärtskompatibilität unabhängig voneinander funktionieren.

Das OAuth 2.0-Protokoll unterstützt eine Reihe unterschiedlicher Client-Typen, die auf REST-APIs zugreifen. Dazu gehören Anwendungen, die auf Webservern von Unternehmen laufen und mit der Cloud kommunizieren, sowie Anwendungen auf mobilen Geräten der Benutzer. Das OAuth-Protokoll ist in der Lage, verschiedene Client-Typen zu unterstützen, indem es mehrere Mechanismen für den Erhalt eines Tokens definiert, wobei jeder einzelne Mechanismus die Einschränkungen des Client-Typs berücksichtigt. OAuth 2.0 hat eine Reihe wertvoller Funktionen, wie zum Beispiel:

  • Vereinfachtes Auslesen von Benutzerdaten aus einer anderen Anwendung.
  • Bereitstellung des Autorisierungsworkflows für Web-, Desktop-Anwendungen und mobile Geräte.
  • Agiert als serverseitige Webanwendung, die sich auf den Autorisierungscode stützt, anstatt direkt mit den Anmeldedaten der Benutzer zu interagieren.
  • Gibt den Benutzern mehr Kontrolle über ihre Daten, indem diese bei der Nutzung einer Anwendung Zugriff auf verschiedene Funktionalitäten gewähren können.

Vorteile von OAuth

Da die meisten Unternehmens-APIs auf OAuth zurückgreifen, ist es eine kluge Wahl für ein Autorisierungsprotokoll. Darüber hinaus gibt es eine Reihe von vorgefertigten Lösungen, die an individuelle Bedürfnisse angepasst werden können; zudem kann OAuth mehrere Anfragen bearbeiten und eine Reihe von Benutzern gleichzeitig ansprechen. Es gibt noch zahlreiche andere Gründe, warum sich Unternehmen für das OAuth-Autorisierungsprotokoll entscheiden, darunter:

  • Die Verwendung von Secure Sockets Layer (SSL), das die Datensicherheit zwischen Webserver und Browsern gewährleistet. SSL sorgt auch dafür, dass die Daten zwischen Webserver und Browsern geheim bleiben. Darüber hinaus stützt sich SSL auf branchenübliche Verschlüsselungsprotokolle, um Daten zu schützen und Datenpannen zu verhindern.
  • Die Umsetzung der Tokenisierung, um einen begrenzten Zugriff auf Benutzerdaten zu ermöglichen. So werden beispielsweise Token-IDs verwendet, um sensible Daten wie Kreditkartennummern und Sicherheitscodes zu kennzeichnen, die auf Verbraucher-Websites gespeichert sind. Das bedeutet, dass Einzelhändler Token erhalten und nicht die eigentlichen sensiblen Daten.
  • Ein einfacher Ansatz für eine starke Authentifizierung. So können Token bei Bedarf widerrufen werden (z. B., wenn verdächtige Aktivitäten festgestellt werden). OAuth erleichtert auch die Integration der Zwei-Faktor-Authentifizierung und kann gemeinsam mit Single Sign-On verwendet werden.
  • Die Verwendung von HTTP/HTTPS für den Zugriff auf Ressourcen, wobei die Token im Header angegeben werden. Dies ermöglicht die Integration von OAuth in nahezu jede Lösung, einschliesslich mobiler und Desktop-Anwendungen, Websites und Plattformen und sogar in Browser-Plug-ins.

Wie funktioniert OAuth?

Wie bereits erwähnt, ermöglicht OAuth 2.0 Anwendungen den Zugriff auf und den Austausch von Daten, ohne Benutzeranmeldeinformationen weiterzugeben. Zu diesem Zweck werden sensible Daten aus der Ferne gespeichert und mit einer Token-ID versehen. Auf diese Weise können Einzelhändler und Dritte bei der Durchführung von Transaktionen Token verifizieren, anstatt direkt auf sensible Daten wie Kreditkartennummern, Krankenakten, Bankkontoinformationen usw. zuzugreifen.

Mit OAuth 2.0 können Zugriffsanfragen von einem Client (mobile App, Website, Desktop-Anwendung usw.) initiiert werden. Danach erfolgen Token-Anfrage, -Austausch und -Antwort:

  • Der Client fragt den Zugriff (beim Autorisierungsserver) an, indem er Client-ID und -Geheimnis als eine Form der ID übermittelt. Ausserdem benennt er den Geltungsbereich und einen Endpunkt-URI (Redirect-URI), an den das Zugriffstoken oder der Autorisierungscode gesendet werden soll.
  • Der Autorisierungsserver authentifiziert den Client und prüft, ob die angeforderten Geltungsbereiche zulässig sind.
  • Der Ressourcenbesitzer kommuniziert mit dem Autorisierungsserver, um den Zugriff zu gewähren.
  • Der Autorisierungsserver leitet den Client mit einem Autorisierungscode oder einem Zugriffstoken zurück, je nach Art des gewährten Zugriffs (Einzelheiten hierzu im nächsten Abschnitt). Es kann auch ein Aktualisierungstoken bereitgestellt werden.
  • Der Client verwendet das Zugriffstoken, um den Zugriff auf die Ressource vom Ressourcenserver anzufordern. 

SAML vs. OAuth

SAML (Security Assertion Markup Language) ist ein alternativer föderierter Authentifizierungsstandard, der von zahlreichen Unternehmen für Single Sign-On (SSO) verwendet wird. Mit SAML können Unternehmen überwachen, wer Zugriff auf Unternehmensressourcen hat.

Zwischen SAML und OAuth gibt es mehrere Unterschiede. SAML verwendet XML zur Übertragung von Nachrichten, während OAuth auf JSON zurückgreift. OAuth ermöglicht eine einfachere Mobile Experience, während SAML auf die Sicherheit von Unternehmen zugeschnitten ist. Das ist ein wesentliches Unterscheidungsmerkmal. OAuth stützt sich weitestgehend auf API-Aufrufe und bietet daher eine bessere Benutzererfahrung für mobile Anwendungen, moderne Webanwendungen, Spielekonsolen und Geräte des Internets der Dinge (IoT). SAML hingegen fügt ein Sitzungscookie in einen Browser ein und gewährt den Benutzern so Zugang zu bestimmten Webseiten. Dies ist zwar für die kurzzeitige Nutzung ideal, aber nicht für Geräte, auf die regelmässig zugegriffen wird, wie IoT-Glühbirnen und andere Smart-Home-Geräte.

SAML unterstützt nicht nur Single Sign-On, sondern auch die Autorisierung über Attributabfragen. OAuth hingegen ist häufig gezwungen, Authentifizierungen durchzuführen (z. B. für soziale Anmeldefunktionen), obwohl sich OAuth in erster Linie auf die Autorisierung fokussiert. Als solches unterstützt OAuth2 kein SSO.

SAML definiert ein Tokenformat mit komplizierter Verschlüsselung, wobei die Grösse der ausgetauschten Nachrichten ein signifikanter Faktor ist. Im Gegensatz dazu stützt sich OAuth2 weder auf die Nachrichtenverschlüsselung (sondern auf HTTPS), noch definiert es ein Tokenformat.

Der Reiz von OAuth2 liegt in seiner Einfachheit und Flexibilität. Es kann in mobilen Geräten, Smart Devices, Web-Apps, Single-Page-Apps usw. eingesetzt werden. Zahlreiche Bibliotheken sind verfügbar, was die Integration mit verschiedenen Client-Typen und Diensteanbietern erleichtert. SAML wurde jedoch nicht für moderne Anwendungen konzipiert. Es ist daher schwieriger mit derartigen Systemen zu verwenden und wird stattdessen eher bei traditionellen Webanwendungen eingesetzt.

FAQ zu OAuth

Was ist der Zweck eines Zugriffstokens in OAuth 2.0?

orange-plus orange-minus

Ein Zugriffstoken ist eine Zeichenfolge, die die dem Client vom Ressourceneigentümer erteilte Genehmigung darstellt. Der Client verwendet das Zugriffstoken, um auf die geschützte Ressource auf dem Ressourcenserver zuzugreifen.

Wer kann OAuth verwenden?

orange-plus orange-minus

OAuth ist ein offenes Protokoll, das von vielen Unternehmen und Organisationen genutzt werden kann, die ein sicheres und standardisiertes Verfahren für die Autorisierung von Anwendungen und den Zugriff auf geschützte Ressourcen benötigen. Typischerweise wird OAuth von Unternehmen und Organisationen verwendet, die eine API bereitstellen und den Zugriff auf Benutzerdaten oder Ressourcen kontrollieren müssen. OAuth kann auch von Entwicklern von Drittanbieter-Apps und mobilen Anwendungen verwendet werden, um Zugriff auf geschützte Ressourcen von Nutzern zu erhalten, sofern der Nutzer seine Zustimmung gegeben hat.

Ist OAuth sicher?

orange-plus orange-minus

OAuth ist ein weit verbreitetes Protokoll, das es Anwendungen und Diensten ermöglicht, auf sichere Weise auf die Ressourcen von Nutzern zuzugreifen, ohne die Anmeldedaten des Nutzers direkt an die anfordernde Anwendung weitergeben zu müssen.

OAuth selbst ist ein sicherheitsbewusstes Protokoll, das auf bewährten Sicherheitsmechanismen wie Verschlüsselung, Token-basiertem Zugang und Autorisierung basiert.

Wie lassen sich Phishing-Angriffe auf Nutzerdaten verhindern?

orange-plus orange-minus

Es ist wichtig, dass Anwendungen und Dienste, die OAuth verwenden, sicher implementiert und konfiguriert werden, um die Sicherheit der Nutzerdaten zu gewährleisten. Die Nutzer sollten auch sicherstellen, dass sie vertrauenswürdige Anwendungen und Dienste verwenden und keine Zugriffsrechte erteilen, die nicht notwendig sind.