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 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:
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:
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:
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.
Was ist der Zweck eines Zugriffstokens in OAuth 2.0?
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?
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?
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?
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.