SAML vs OIDC
SAML und OIDC sind die beiden beliebtesten Authentifizierungsprotokolle, die in der SSO-Branche verwendet werden. Dieser Artikel vergleicht SAML und OIDC in Bezug auf ihre Architektur und Anwendungsfälle.
Was ist SAML?
SAML (Security Assertion Markup Language) ist ein XML-basiertes offenes Standardprotokoll zum Austausch von Authentifizierungs- und Autorisierungsdaten zwischen verschiedenen Parteien, insbesondere zwischen einem Identitätsanbieter (IdP) und einem Dienstanbieter (SP). Es ermöglicht webbasiertes SSO (Single Sign-On), bei dem sich Benutzer einmalig authentifizieren, um auf mehrere Anwendungen zuzugreifen. SAML ist ein ausgereiftes Protokoll, das schon lange existiert und von Unternehmen weit verbreitet ist. Einige der bekanntesten SaaS-Plattformen wie Salesforce, Workday und Microsoft Azure AD unterstützen alle SAML SSO.
SAML-Komponenten
- Identitätsanbieter (IdP): Die Entität, die Benutzer authentifiziert und Identitätsinformationen an Dienstanbieter übermittelt.
- Dienstanbieter (SP): Die Entität, die Dienstleistungen für Benutzer bereitstellt und sich auf den Identitätsanbieter verlässt, um Benutzer zu authentifizieren.
- SAML Assertions: XML-basierte Dokumente, die die Authentifizierungs- und Autorisierungsdetails des Benutzers enthalten. Dazu gehören Authentifizierungs-Statements, Attribut-Statements und Autorisierungsentscheidungs-Statements.
- SAML-Protokoll: Definiert das Nachrichtenformat und die Regeln für den Austausch von SAML Assertions zwischen IdP und SP.
- SAML-Bindings: Definiert, wie SAML-Nachrichten über verschiedene Kommunikationsprotokolle wie HTTP POST, HTTP Redirect usw. transportiert werden.
- SAML-Metadaten: XML-basierte Dokumente, die die Konfigurationsinformationen von IdP und SP enthalten. Dazu gehören der öffentliche Schlüssel, Endpunkte und unterstützte Bindings, die verwendet werden, um zwischen IdP und SP Vertrauen aufzubauen.
- Signal Sign-On-Endpunkt: Der Endpunkt, an den der SP den Benutzer zur Authentifizierung mit dem IdP weiterleitet.
- Assertion Consumer Service (ACS) URL: Der Endpunkt, an den der IdP die SAML Assertion nach erfolgreicher Authentifizierung sendet.
Wie funktioniert SAML?
- Vom SP initiiertes SSO-Verfahren:
- Vom IdP initiiertes SSO-Verfahren:
Vorteile von SAML
- Reif und weit verbreitet: SAML ist ein reifes Protokoll, das schon lange existiert und von Unternehmen weit verbreitet ist.
- Standardisiert: SAML ist ein offener Standard, der von OASIS gepflegt wird und die Interoperabilität zwischen verschiedenen Anbietern sicherstellt.
- SSO: SAML ermöglicht webbasiertes SSO, bei dem sich Benutzer einmalig authentifizieren, um auf mehrere Anwendungen zuzugreifen.
- Zentrale Benutzerverwaltung: SAML ermöglicht es Organisationen, Benutzeridentitäten zentral zu verwalten und Sicherheitsrichtlinien konsequent durchzusetzen.
Herausforderungen von SAML
- Komplexität: SAML ist ein komplexes Protokoll, das ein tiefes Verständnis von XML- und Sicherheitskonzepten erfordert.
- Leistung: SAML-Nachrichten sind XML-basiert und können groß sein. Die XML-Übertragung und -Analyse kann langsamer sein im Vergleich zu Token-Formaten wie JSON Web Token (JWT).
- Veralteter Standard: SAML ist ein älterer Standard im Vergleich zu OIDC und gilt als weniger sicher.
- Anbietersperre: SAML ist ein anbieterabhängiges Protokoll, und der Wechsel zwischen Anbietern kann herausfordernd sein.
Was ist OIDC?
OIDC (OpenID Connect) ist eine Identitätsschicht, die auf dem OAuth 2.0 Protokoll aufbaut. Ähnlich wie SAML wird auch OIDC zum Austausch von Authentifizierungs- und Autorisierungsdaten zwischen IdP und SP verwendet.
Im Vergleich zu SAML ist OIDC ein moderneres und leichteres Protokoll, das an Popularität für moderne Web- und Mobile-Anwendungen gewinnt. OIDC verwendet JWT zur Übermittlung von Identitätsinformationen, was im Vergleich zu XML-basierten SAML Assertions kompakter und einfacher zu handhaben ist. Es ist besonders beliebt für konsumentenorientierte Anwendungen und API-Sicherheit.
OIDC-Komponenten
- Identitätsanbieter (IdP): Die Entität, die Benutzer authentifiziert und Identitätsinformationen an Dienstanbieter übermittelt.
- Vertrauenswürdige Partei (RP): Die Entität, die Dienstleistungen für Benutzer bereitstellt und sich auf den Identitätsanbieter verlässt, um Benutzer zu authentifizieren. Z.B. Webanwendungen, mobile Apps oder APIs.
- OIDC Token: Token, die die Identitätsinformationen des Benutzers enthalten.
- ID Token: JWT-Format-Token, das die Identitätsinformationen des Benutzers enthält.
- Access Token: JWT- oder undurchsichtiges Format-Token, das Zugriff auf geschützte Ressourcen gewährt.
- Refresh Token: Token, das verwendet wird, um ein neues Access Token zu erhalten, ohne dass sich der Benutzer erneut authentifizieren muss. Es bietet eine Offline-langfristige Autorisierung für die RP.
- OIDC-Endpunkte: Endpunkte, die für die Authentifizierung und Token-Austausch verwendet werden. Einige der wichtigsten Endpunkte sind:
- Discovery-Endpunkt: Wo die RP die öffentliche OIDC-Konfigurationsinformationen vom IdP abrufen kann.
- Autorisierungs-Endpunkt: Wo die RP die Authentifizierungsanfrage sendet.
- Token-Endpunkt: Wo die RP beim Autorisierungsserver Token anfordert.
- Userinfo-Endpunkt: Wo die RP die Profilinformationen des Benutzers abrufen kann.
- Scopes: OIDC definiert eine Reihe von Standard-Scopes, die die Zugriffsrechte definieren, die der RP gewährt werden. Wie
openid
,profile
,email
,address
usw.
Wie funktioniert OIDC?
OIDC bietet mehrere Verfahren, die ausdrücklich für unterschiedliche Anwendungsfälle entwickelt wurden. Hier sind zwei der häufigsten OIDC-Verfahren:
- Autorisierungscode-Verfahren:
Das Autorisierungscode-Verfahren ist das häufigste Verfahren, das in OIDC für konsumentenorientierte Anwendungen verwendet wird.
- Client-Credentials-Verfahren:
Das Client-Credentials-Verfahren kann für nicht-benutzerbasierte (Machine-to-Machine) Authentifizierungen verwendet werden.
Vorteile von OIDC
- Modern und leichtgewichtig: OIDC ist ein modernes Protokoll, das JSON-basierte JWT-Token verwendet, die kompakter und einfacher zu handhaben sind im Vergleich zu XML-basierten SAML Assertions.
- Konsumentenorientierte Anwendungen: OIDC ist besonders beliebt für konsumentenorientierte Anwendungen und API-Sicherheit.
- Interoperabilität: Aufgebaut auf OAuth 2.0 ist OIDC mit verschiedenen Plattformen, Geräten und Plattformen kompatibel.
- Sicherheit: OIDC bietet eine sicherere Methode für Benutzer-Authentifizierung und API-Schutz. Es beinhaltet verschiedene moderne Sicherheitsfunktionen wie Token-Inspektion, Token-Widerruf, Proof Key for Code Exchange (PKCE) und unterstützt verschiedene Authentifizierungsverfahren, die an unterschiedliche Sicherheitsbedürfnisse angepasst sind.
- Benutzerfreundlichkeit: OIDC ist einfacher zu implementieren und zu verwenden im Vergleich zu SAML. Es ist entwicklerfreundlicher und verfügt über umfassende Bibliotheken und SDKs für mehrere Programmiersprachen und Plattformen.
Herausforderungen von OIDC
- Token-Verwaltung: OIDC verlässt sich auf Token für Authentifizierung und Autorisierung. Es erfordert geeignete Verfahren zur Token-Verwaltung, um die Sicherheit zu gewährleisten.
- Komplexität: Obwohl OIDC für einfache Setups einfach ist, kann es aufgrund seiner flexiblen Natur Komplexität hinzufügen, wenn fortschrittliche Anpassungen implementiert werden. Z.B. benutzerdefinierte Claims und rollenbasierte Zugriffskontrolle (RBAC) usw.
- Annahme: OIDC ist im Vergleich zu SAML, insbesondere im Unternehmensbereich, noch relativ neu. Einige Altsysteme können sich immer noch auf SAML für SSO-Zwecke stützen.
Vergleich SAML vs OIDC
Aspekt | SAML | OIDC |
---|---|---|
Token-Format | XML-basierte SAML Assertions | JSON-basierte JWT-Token |
Hauptanwendungsfall | Unternehmens-SSO, B2B-Integrationen | Konsumentenorientierte Apps, API-Sicherheit |
Benutzerfreundlichkeit | Komplex, erfordert tiefes Verständnis von XML | Einfach, JSON-basiert, einfach zu implementieren |
Annahme | Weit verbreitet bei Unternehmen | Zunehmende Popularität bei modernen Apps |
Sicherheit | Reif, aber als weniger sicher angesehen | Modern und sicherer |
Flexibilität | Begrenzt, für SSO-Anwendungsfälle entworfen | Flexibel, unterstützt verschiedene Anwendungsfälle |
Zukunft von SAML und OIDC
Sowohl SAML als auch OIDC werden häufig für Authentifizierungs- und Autorisierungszwecke verwendet.
SAML bleibt ein Eckpfeiler für Unternehmens-SSO und B2B-Integrationen. Seine robuste Unterstützung für föderiertes Identitätsmanagement und bewährte Erfolgsbilanz gewährleisten seine anhaltende Relevanz, insbesondere für Altsysteme und groß angelegte Organisationen.
OIDC hingegen entwickelt sich kontinuierlich weiter, getrieben durch die Nachfrage nach sicherer und skalierbarer Authentifizierung in modernen Anwendungen. Seine Leichtigkeit und Ausrichtung auf APIs und Microservices machen es zu einem Eckpfeiler für Cloud-native und verteilte Architekturen. Mit dem Aufstieg von passwordloser Authentifizierung, Biometrie und Multi-Faktor-Authentifizierung (MFA) wird erwartet, dass OIDC nahtlos in aufkommende Technologien integriert wird und seine Relevanz in den kommenden Jahren sicherstellt.