EMZETT.
Login

SAML: Anmeldung zwischen Organisationen

Kurz: Ein XML-basierter Standard für Single Sign-on, bei dem ein Identitätsanbieter einer Anwendung bestätigt, wer sich angemeldet hat.

Genauer: SAML (Security Assertion Markup Language) 2.0 wird vor allem in Unternehmen und Hochschulen eingesetzt. Der Benutzer meldet sich beim Identity Provider (IdP) an, die Anwendung (der Service Provider, SP) vertraut dessen signierter Aussage („Assertion“) und muss kein eigenes Passwort verwalten.

Im Detail

Ablauf (SP-initiiert)

  1. Du rufst die Anwendung (SP) auf.
  2. Der SP leitet deinen Browser mit einer AuthnRequest zum IdP um.
  3. Du meldest dich beim IdP an (wenn nicht ohnehin angemeldet), gegebenenfalls mit Zwei-Faktor.
  4. Der IdP schickt eine signierte Assertion über deinen Browser zurück an den SP (HTTP-POST).
  5. Der SP prüft die Signatur, Gültigkeit und Zielgruppe und legt eine Sitzung an.

Was in einer Assertion steht

Eine Assertion enthält die Identität (NameID), Zeitfenster der Gültigkeit, den vorgesehenen Empfänger (Audience) und Attribute wie E-Mail, Name oder Gruppen. Vertrauen entsteht durch den Austausch von Metadaten (Adressen und Zertifikate) zwischen IdP und SP.

SAML und OpenID Connect

Beide verfolgen dasselbe Ziel. SAML ist älter, XML-basiert und im Unternehmensumfeld, bei Hochschulverbünden und Behörden verbreitet. OpenID Connect baut auf OAuth 2.0 auf, verwendet JSON und JWT und ist bei modernen Web-Anwendungen und mobilen Apps üblich.

Typische Fehler

Eine nicht geprüfte Signatur oder die Annahme beliebiger Assertions ermöglicht Identitätsdiebstahl (XML-Signature-Wrapping-Angriffe). Prüfe immer Signatur, Audience, Recipient, Zeitfenster und die Einmaligkeit der Assertion. Verwende bewährte Bibliotheken, statt XML selbst zu parsen.

Siehe auch: Single Sign-on, OpenID Connect, OAuth, Zertifikat