SAML vs. OAuth vs. OpenID Connect
SAML und OAuth sind zwei verbreitete Standards, um Benutzern Zugriff auf Anwendungen, Dienste und Datenquellen zu ermöglichen, ohne dass sie sich eine große Anzahl an Passwörtern merken müssen. OpenID Connect ist eine zusätzliche Ebene auf OAuth, die speziell auf die Authentifizierung ausgerichtet ist. Was ist der Unterschied zwischen SAML, OAuth und OpenID Connect? Und welche Gemeinsamkeiten bestehen zwischen diesen drei Protokollen? Diese Fragen beantworten wir in diesem Artikel.

Was ist SAML?
SAML steht für Security Assertion Markup Language. Es ist einer der am häufigsten verwendeten Standards für den Austausch von Authentifizierungsdaten. Der Standard spielt unter anderem eine entscheidende Rolle bei der sicheren Bereitstellung von Single Sign-On (SSO). Dabei melden sich Benutzer über ein Dashboard mit einem einzigen Satz Anmeldedaten bei einer Vielzahl von Anwendungen an. Dies ist möglich, weil SAML-Provider miteinander kommunizieren. Dabei wird zwischen Identity Providern (IdP) und Service Providern (SP) unterschieden. Der SP erhält vom IdP alle Informationen, die erforderlich sind, um die Identität und Zugriffsrechte des Benutzers zu prüfen.

Was ist OAuth?
OAuth ist die Abkürzung für Open Authorization. Es ist ein Standard, der es wie SAML ermöglicht, auf mehrere Anwendungen und Dienste zuzugreifen, ohne jedes Mal ein neues Konto erstellen zu müssen. Sie melden sich bei den Anwendungen und Diensten, die Sie nutzen möchten, mit einem Konto an, das OAuth unterstützt. Dazu gehören beispielsweise E-Mail-Konten verschiedener großer E-Mail-Anbieter. Dadurch müssen Sie nicht für jede Anwendung oder jeden Dienst separate Konten erstellen. OAuth erhöht die Benutzerfreundlichkeit, da Sie schnell und einfach Zugriff erhalten.

Was ist OpenID Connect?
OpenID Connect ist eine Authentifizierungsebene, die auf OAuth aufsetzt. Es ergänzt OAuth um eine Identitätsebene. Dadurch können Anwendungen nicht nur prüfen, ob ein Benutzer Zugriff erhalten darf, sondern auch die Identität des Benutzers überprüfen. OpenID Connect tauscht Identitätsinformationen aus Sicherheitsgründen über JSON Web Tokens aus. Das Protokoll ermöglicht Benutzern, sich mit einem einzigen Konto bei verschiedenen Diensten anzumelden, während der Dienstanbieter die Identität des Benutzers verifizieren kann.

Welche Gemeinsamkeiten haben SAML, OAuth und OpenID Connect?
SAML, OAuth und OpenID Connect weisen wichtige Gemeinsamkeiten auf. Beide Standards ermöglichen Benutzern den Zugriff auf Anwendungen und Dienste, ohne dass sie dafür individuelle Passwörter verwenden müssen. Dies bietet verschiedene Vorteile:
Benutzer müssen sich weniger Anmeldedaten merken und vergessen dadurch seltener Passwörter.
Benutzer können stärkere Passwörter verwenden, da sie sich weniger unterschiedliche Passwörter merken müssen.
Sie verbessern die Benutzererfahrung, da Benutzer mit einem Satz Anmeldedaten Zugriff auf die Systeme erhalten, die sie benötigen.
Darüber hinaus prüfen beide Prozesse, ob Benutzer tatsächlich Zugriff auf die Anwendung, den Dienst oder die Ressource haben, auf die sie zugreifen möchten. In beiden Fällen können Sie sicher sein, dass nur autorisierte Benutzer zugelassen werden.

Was ist der Unterschied zwischen SAML, OAuth und OpenID Connect?
Obwohl SAML und OAuth viele Gemeinsamkeiten haben, gibt es auch wichtige Unterschiede. Die wichtigsten Unterschiede sind:
Der Benutzer meldet sich mit SAML bei einem IdP an und erhält anschließend nahtlos Zugriff auf mehrere Anwendungen und Dienste, ohne erneut mit Anmeldebildschirmen konfrontiert zu werden. Bei OAuth ist dies nicht der Fall. Benutzer müssen sich bei einzelnen Anwendungen und Diensten selbstständig mit einem Konto anmelden, das OAuth unterstützt. Bei OpenID Connect melden sich Benutzer nur einmal bei einem IdP an und erhalten anschließend durch die Verwendung von JSON Web Tokens Zugriff auf mehrere Anwendungen, ohne sich jedes Mal erneut anmelden zu müssen.
SAML kommuniziert über XML-Nachrichten, mit denen ein IdP vertrauliche Informationen mit SPs austauschen kann. Das bedeutet in der Praxis, dass der SP Ihre Identität prüfen kann, ohne dass Sie selbst Daten angeben müssen. OAuth verwendet Zugriffstokens. In diesem Fall weiß eine Anwendung lediglich, dass Sie Zugriff erhalten dürfen, kann jedoch nicht prüfen, wer Sie sind. OpenID Connect verwendet dafür JSON Web Tokens, die sowohl Autorisierungs- als auch Authentifizierungsinformationen enthalten.
Charakteristisch ist daher, dass SAML sowohl für die Authentifizierung als auch für die Autorisierung entwickelt wurde, während OAuth ausschließlich auf die Autorisierung ausgerichtet ist. In einigen Fällen wird OpenID Connect (OIDC) als zusätzliche Ebene auf OAuth verwendet, wodurch auch die Verifizierung Ihrer Identität möglich wird.
SAML bietet hohe Sicherheit, da das Protokoll die Verifizierung der Benutzeridentität ermöglicht. Die Implementierung kann jedoch aufgrund der XML-basierten Kommunikation relativ komplex sein. OAuth ist einfacher zu implementieren, bietet jedoch keine Möglichkeit, die Identität von Benutzern zu überprüfen. OpenID Connect kombiniert die einfache Implementierung von OAuth mit der Möglichkeit, die Identität von Benutzern zu verifizieren.

Welches Protokoll wählen Sie?
Welches Protokoll für Ihre Organisation am besten geeignet ist, hängt unter anderem von den spezifischen Anforderungen Ihrer Organisation ab. SAML eignet sich beispielsweise besonders für Unternehmensumgebungen, in denen Sie eine nahtlose SSO-Erfahrung bieten möchten. Sind Autorisierung und Zugriff auf APIs von großer Bedeutung? Dann ist OAuth häufig eine gute Wahl. OpenID Connect eignet sich besonders für Situationen, in denen Sie sowohl Authentifizierung als auch Autorisierung benötigen.
Möchten Sie mehr über SAML erfahren? In unserer Wissensdatenbank finden Sie weitere Informationen zu diesem Standard. Möchten Sie mehr über OAuth und die Kombination mit OIDC lesen?
Lesen Sie hier weiter