Vergleich von SAML und OAuth: Gemeinsamkeiten und Unterschiede

Security Assertion Markup Language (SAML) ist ein Authentifizierungsprozess. Wenn Sie morgens im Büro ankommen und sich an Ihrem Computer anmelden, verwenden Sie wahrscheinlich SAML.

Open Authorization (OAuth) ist ein Autorisierungsprozess, dank dem Benutzer zwischen verschiedenen Diensten wechseln können, ohne jedes Mal neue Anmeldedaten eingeben zu müssen. Wenn Sie bei Google angemeldet sind und über die gleichen Anmeldedaten Hootsuite aufrufen, verwenden Sie OAuth.

Beide Prozesse können für Single Sign-On (SSO) im Web verwendet werden, wobei sich SAML eher auf den Benutzer und OAuth auf eine bestimmte Anwendung bezieht. Die Verfahren sind nicht austauschbar und daher nicht wirklich vergleichbar, aber sie lassen sich kombinieren.

Wie funktioniert SAML?

SAML ist ein offener Standard für Identitätsprüfung und Authentifizierung. In einer klassischen Büroumgebung müssen sich die Mitarbeiter anmelden, um Zugriff auf die internen Funktionen des Unternehmens zu erhalten.

Nach erfolgter SAML-Authentifizierung hat der Benutzer Zugriff auf eine ganze Reihe von Tools, einschließlich Unternehmens-Intranet, Microsoft Office und Browser. SAML ermöglicht es dem Benutzer, mit nur einer digitalen Signatur auf all diese Ressourcen zuzugreifen.

In Unternehmen mit strengeren Sicherheitsrichtlinien kann der Benutzer mit SAML unter Umständen nur eine Tür öffnen oder einen Computerbildschirm entsperren. Autorisierung ist erforderlich, damit der Benutzer anschließend bestimmte Aktionen durchführen kann, z. B. auf Dateien zugreifen.

Netzwerkadministratoren haben mit SAML die Möglichkeit, Benutzer zentral zu verwalten. Mit nur einem Passwort werden sämtliche Dienste entsperrt, die der Benutzer für seine Arbeit benötigt, gleichzeitig bleibt das Unternehmen sicher.

SAML diagram

So sieht ein typischer SAML-Workflow aus:

  • Anfrage: Ein Benutzer tippt auf die Schaltfläche „Anmelden“.
  • Validierung: SAML und der Identitätsanbieter stellen eine Verbindung her, um den Benutzer zu authentifizieren.
  • Anmeldung: Dem Benutzer wird ein Bildschirm angezeigt, in den er Benutzername und Passwort eingeben muss.
  • Tokenerstellung: Wenn der Benutzer die richtigen Informationen eingibt, wird ein SAML-Token an den Dienstanbieter übergeben und der Benutzer kann sich beim Server anmelden.

Mithilfe dieses Workflows können Dienstanbieter, Browser und Identitätsanbieter die Informationen nahtlos übergeben. Da dieser Prozess in der Regel innerhalb weniger Sekunden erfolgt, ist für den Benutzer kaum eine Verzögerung erkennbar.

Wie funktioniert OAuth?

Die Verkürzung „Auth“ kann sowohl für Authentifizierung als auch für Autorisierung stehen. Im Zusammenhang mit dem OAuth-Protokoll meinen wir jedoch speziell die Autorisierung. Mit dem Protokoll wird die Autorisierung zwischen verschiedenen Diensten weitergeben, während Benutzername und Passwort geschützt sind.

Mit OAuth lässt sich enorm viel Zeit einsparen. In manchen Umgebungen wechselt ein durchschnittlicher Mitarbeiter bis zu 1.100 Mal am Tag zwischen verschiedenen Job-relevanten Anwendungen hin und her. Für den Mitarbeiter wäre es wesentlich einfacher, wenn er sich nicht bei jedem Wechsel neu anmelden müsste. Mit OAuth ist das möglich.

Zum Beispiel kann ein Mitarbeiter, der ein aktives Google-Konto besitzt, mit denselben Anmeldeinformationen auch Daten auf anderen Plattformen aufrufen, darunter:

  • Hootsuite
  • SurveyMonkey
  • HotJar
  • Microsoft 365
  • Salesforce
  • Marketo
  • Box

Der Mitarbeiter benötigt all diese webbasierten Programme, um seine Aufgaben korrekt zu erfüllen. Der Gedanke, dazu fünf unterschiedliche Sets aus Benutzername und Passwort zu erstellen (und sich diese merken zu müssen) ist ziemlich abschreckend.

Wenn der Benutzer einfach immer dieselben Anmeldedaten, steht die Sicherheit auf dem Spiel. Denn wird eine der Sites kompromittiert, sind nicht nur die kritischen Daten des Benutzers zugänglich, sondern auch die Daten auf den anderen Plattformen in Gefahr. Ganz anders sieht es aus, wenn sich der Benutzer bei einer Site anmeldet, nachdem seine Anmeldedaten zuvor von einer anderen Site validiert wurden.

Einige Verbraucher sehen die Gefahr von Data Mining und befürchten, dass die Verwendung eines solchen Verfahrens Unternehmen wie Facebook zu viel Macht verleiht. Jedes Mal, wenn sich ein Benutzer über Facebook bei anderen Apps und Websites anmeldet, erhält Facebook mehr Einblick in den Kunden. Sollten die Facebook-Daten kompromittiert werden, könnten auch die anderen Anmeldungen des Benutzers fehlschlagen.

Die meisten Mitarbeiter wären jedoch dankbar, wenn sie durch geringeren Aufwand Zeit sparen könnten.

OAuth option

So sieht ein OAuth-Workflow aus:

  • Anfrage: Ein Benutzer klickt auf einer Webseite auf die Schaltfläche „Anmelden“.
  • Auswahl: Der Client wählt die für die Autorisierung zu verwendenden Anmeldedaten eines Dritten aus.
  • Anmeldung: Der Autorisierungsserver erstellt ein Zugriffstoken, das dann an den Ressourcenserver gesendet wird.
  • Verbindung: Nach erfolgreicher Prüfung des Tokens gewährt der Ressourcenserver Zugriff.

Während dieses Prozesses senden die beiden Server Informationen hin und her. In der Regel wird für die Token im Rahmen von OAuth JWT verwendet, alternativ kann aber auch JavaScript Object Notation (JSON) eingesetzt werden.

Unabhängig davon, auf welche Art sie erstellt werden, sind Token immer codiert und normalerweise signiert. Da sie von Server zu Server übergeben werden, sind sie jedoch selten verschlüsselt.

Vergleich von OAuth und SAML: Ähnlichkeiten und Unterschiede

OAuth und SAML sind beides Protokolle, die dazu dienen, Interoperabilität zu vereinfachen und zu standardisieren.

Benutzer verwenden diese Tools gerne, um schnell auf wichtige Ressourcen zuzugreifen, ohne immer wieder neue Benutzernamen und Passwörter festlegen zu müssen. Für App-Verantwortliche bieten OAuth und SAML einfaches Onboarding und die Möglichkeit, die Benutzerverwaltung zu delegieren. Für Administratoren bedeuten die Tools schnelle Integration sowie zentralisierte Authentifizierung und Autorisierung.

Die zwei Tools sind jedoch für sehr unterschiedliche Funktionen zuständig:

  • Authentifizierung: Dieser Prozess prüft die Identität des Benutzers. SAML hat in etwa die Funktion eines Haustürschlüssels ermöglicht den Zugang zum Haus.
  • Autorisierung: Dieser Prozess prüft die Berechtigungen des Benutzers. OAuth entspricht der Hausordnung. Sie gibt vor, was die Person im Haus darf und was nicht, nachdem sie Zugang erlangt hat.

Übertragen wir dieses Bild auf einen Mitarbeiter an einem durchschnittlichen Arbeitstag. Der Mitarbeiter meldet sich bei der Ankunft im Büro einmal mit SAML an. Mit der Anmeldung erhält er Zugriff auf eine ganze Reihe SAML-basierter Anwendungen. Beim Wechsel zwischen den einzelnen Anwendungen muss der Benutzer nichts weiter tun.

Anwendungsbereiche von SAML und OAuth

Sowohl SAML als auch OAuth bieten SSO-Unterstützung und sind daher wichtig für produktive Mitarbeiter. Es handelt sich aber nicht um Alternativen, sondern vielmehr um sich ergänzende Technologien.

In einer Microsoft-Umgebung handhabt beispielsweise OAuth die Autorisierung und SAML die Authentifizierung. Sie können beides parallel einsetzen: SAML, um Zugriff zu gewähren, und OAuth, um Zugriff auf eine geschützte Ressource zu gewähren.

Sie können aber auch keines der Tools verwenden. Für einige Webseiten beispielsweise sind Authentifizierung und Autorisierung nicht erforderlich.

In den meisten Unternehmen mit digitalen Systemen ist jedoch eine Form von Authentifizierung und Autorisierung Voraussetzung für einen effektiven Betrieb. Damit Benutzer ihre Aufgaben ordnungsgemäß erledigen können, müssen sie die Möglichkeit haben, sich anzumelden und zwischen den Systemen des Unternehmens zu wechseln.

Was ist OpenID Connect (OIDC)?

OAuth kann relevant sein, wenn Sie ein zweites Tool für Verbraucher entwickeln, z. B. Apps oder Portale. Ihre Kunden und Partner schätzen sicherlich die Möglichkeit, sich bei Ihren Tools anzumelden, ohne dafür extra einen neuen Benutzernamen und ein Passwort erstellen zu müssen. OAuth bietet sich außerdem für Mitarbeiter an, die Tools ohne SAML verwenden.

Damit Sie einen besseren Vergleich zu SAML anstellen können, machen Sie sich am besten mit den Unterschieden zwischen SAML, OAuth und OpenID Connect vertraut.

Zusammenarbeit mit Okta

Okta ist vor allem für seine SSO-Dienste bekannt. Diese bieten Ihnen eine nahtlose Authentifizierung bei allen Anwendungen, die Sie tagtäglich verwenden. Für sicheres Single Sign-On wird häufig das Protokoll SAML verwendet. Okta bietet aber auch verschiedene andere Optionen, darunter ein Sign-in-Widget, Auth SDK (eine JavaScript-basierte Bibliothek), Social Login und eine Authentifizierungs-API für jeden beliebigen Client.

Hier finden Sie weitere Informationen zu den vorkonfigurierten Identitätslösungen von Okta.

Referenzen

A Survey on Single Sign-On Techniques, Procedia Technology, 2012.

Employees Switch Apps More Than 1,100 Times a Day, Decreasing Productivity, TechRepublic, Dezember 2018. 

Stop Synching Your Contacts with Facebook, Mashable, August 2019. 

Authentication vs. Authorization, Medium, September 2018.

Authentication vs. Authorization, Microsoft, Mai 2020.

Why SAML? (Security Assertion Markup Language), Medium, Juli 2018.

Understanding Authentication, Authorization, and Encryption (Grundlegendes zu Authentifizierung, Autorisierung und Verschlüsselung), Boston University.