- 1 Abschnitt
- 17 Lektionen
- 1 Hour
- Authentifizierung17
- 1.0Einführung in die Authentifizierung
- 1.1Methoden der Authentifizierung
- 1.2Multi-Factor Authentication (MFA)
- 1.3Moderne Authentifizierungsprotokolle
- 1.4OAuth 2.0
- 1.5OpenID Connect
- 1.6SAML (Security Assertion Markup Language)
- 1.7Kerberos
- 1.8Passwortmanagement
- 1.9Biometrische Authentifizierung
- 1.10Token-basierte Authentifizierung
- 1.11Zertifikatsbasierte Authentifizierung
- 1.12Knowledge-based Authentication (KBA)
- 1.13Authentifizierung in speziellen Umgebungen
- 1.14Sicherheitsaspekte der Authentifizierung
- 1.15Aufgaben
- 1.16Lösungen
SAML (Security Assertion Markup Language)
SAML (Security Assertion Markup Language) ist ein XML-basiertes Framework zur Authentifizierung und Autorisierung. Es ermöglicht sicheren Austausch von Authentifizierungs- und Autorisierungsdaten zwischen verschiedenen Domänen, typischerweise zwischen einem Identitätsanbieter (Identity Provider, IdP) und einem Dienstanbieter (Service Provider, SP). SAML wird häufig in Unternehmensumgebungen für Single Sign-On (SSO) Lösungen verwendet.
Hauptkomponenten
- Identity Provider (IdP): Die Entität, die die Identität eines Benutzers authentifiziert und SAML Assertions erstellt.
- Service Provider (SP): Die Entität, die auf die SAML Assertions vertraut und dem Benutzer Zugriff auf Dienste gewährt.
- Assertion: Ein XML-Dokument, das Authentifizierungs-, Attribut- und Autorisierungsinformationen über den Benutzer enthält.
Grundprinzip
SAML ermöglicht es einem Benutzer, sich einmal bei einem IdP anzumelden und dann nahtlos auf mehrere SPs zuzugreifen, ohne sich erneut anmelden zu müssen. Dies wird durch den Austausch von SAML Assertions zwischen dem IdP und den SPs erreicht.
SAML Authentifizierungs-Flows
SAML definiert mehrere Profile, um verschiedene Anwendungsfälle abzudecken. Das häufigste Profil ist das Web Browser SSO Profile, das den Authentifizierungsprozess für webbasierte Anwendungen beschreibt.
Web Browser SSO Profile
Schritte:
AuthnRequest: Der Benutzer versucht, auf eine geschützte Ressource beim SP zuzugreifen. Der SP erstellt eine Authentifizierungsanforderung (AuthnRequest) und leitet den Benutzer zum IdP weiter.
<samlp:AuthnRequest
AssertionConsumerServiceURL="https://sp.example.com/acs"
Destination="https://idp.example.com/sso"
IssueInstant="2020-01-01T12:00:00Z"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Version="2.0">
<saml:Issuer>https://sp.example.com</saml:Issuer>
</samlp:AuthnRequest>
2. Authentication: Der IdP authentifiziert den Benutzer (z.B. durch Eingabe von Benutzername und Passwort).
3. SAML Response: Nach erfolgreicher Authentifizierung erstellt der IdP eine SAML Antwort (Response) mit einer Assertion und leitet den Benutzer zum SP zurück.
<samlp:Response
Destination="https://sp.example.com/acs"
IssueInstant="2020-01-01T12:01:00Z"
Version="2.0">
<saml:Issuer>https://idp.example.com</saml:Issuer>
<saml:Assertion>
<saml:Subject>
<saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">
user@example.com
</saml:NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData
InResponseTo="AUTHN_REQUEST_ID"
Recipient="https://sp.example.com/acs"
NotOnOrAfter="2020-01-01T12:06:00Z"/>
</saml:SubjectConfirmation>
</saml:Subject>
<saml:AuthnStatement AuthnInstant="2020-01-01T12:00:30Z">
<saml:AuthnContext>
<saml:AuthnContextClassRef>
urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
</saml:Assertion>
</samlp:Response>
4. Assertion Consumption:
Der SP verarbeitet die Assertion, überprüft die Authentizität und gewährt dem Benutzer Zugriff auf die geschützte Ressource.
Vorteile und Herausforderungen
Vorteile:
- Single Sign-On (SSO): Ermöglicht Benutzern den Zugriff auf mehrere Anwendungen mit einer einzigen Anmeldung.
- Sicherer Austausch von Authentifizierungsdaten: Nutzung von XML-basierten Assertions zur Übertragung von Sicherheitsinformationen.
- Interoperabilität: Standardisiert und weit verbreitet, unterstützt die Integration zwischen verschiedenen Systemen und Organisationen.
Herausforderungen:
- Komplexität der Implementierung: Erfordert tiefes Verständnis von SAML und XML.
- Verwaltung von Zertifikaten: Verwaltung und Rotation von Zertifikaten für die Signierung und Verschlüsselung.
- Performance: Kann durch die Notwendigkeit, XML-Dokumente zu parsen und zu validieren, beeinflusst werden.
SAML Assertion Details
Eine SAML Assertion enthält verschiedene Arten von Informationen:
- Authentication Statement: Bestätigt, dass der Benutzer authentifiziert wurde.
- Attribute Statement: Enthält zusätzliche Informationen über den Benutzer, wie Name, E-Mail, Rollen.
- Authorization Decision Statement: Gibt an, ob der Benutzer berechtigt ist, eine bestimmte Aktion auszuführen.
Beispiel eines Attribute Statements:
<saml:AttributeStatement>
<saml:Attribute Name="email" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<saml:AttributeValue>user@example.com</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="role" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<saml:AttributeValue>admin</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
