SAML und Federation

Veröffentlicht am:

Die wichtigsten Befehle zum Merken

  • xmllint --noout — prüfen, ob die Metadaten als XML lesbar sind.
  • xmllint --format — die Struktur übersichtlich ausgeben.

Befehle und Optionen

Befehl oder Option Bedeutung
--nonet Netzwerkabrufe in libxml2-Versionen mit dieser Fähigkeit deaktivieren.
--noout Dokumentausgabe unterdrücken; Syntaxfehler bleiben sichtbar.
--format Eingerückte Darstellung ausgeben, ohne die Quelldatei zu ändern.
idp-metadata.xml Vertrauenswürdiger lokaler Metadatenexport, keine Benutzer-Assertion.

Neuere libxml2-Versionen haben eingebaute Netzwerkabrufe entfernt; dort ist --nonet nicht mehr nötig. Der Befehl ist Parser, keine Sandbox und kein SAML-Signaturprüfer.

Die entscheidenden Konzepte

1. Föderation verschiebt Authentifizierung über eine Vertrauensgrenze

Bei Föderation akzeptiert eine Anwendung eine Authentifizierungsaussage eines externen Identitätsanbieters. SAML nennt die Anwendung Service Provider, kurz SP, und den Anbieter Identity Provider, kurz IdP.

Der SP vertraut einem konfigurierten IdP für einen bestimmten Zweck. Das vereinfacht organisationsübergreifende Anmeldung, berechtigt aber nicht automatisch jede fremde Identität oder Gruppe zu allen lokalen Aktionen.

2. Eine Assertion enthält Aussagen über ein Subjekt

Eine SAML-Assertion ist XML mit Aussagen zur authentifizierten Person, zu Bedingungen und gegebenenfalls weiteren Attributen. Bei browsergestützter Anmeldung gelangt häufig eine Antwort vom IdP zum Assertion Consumer Service des SP.

Der Browser transportiert die Nachricht, macht sie aber nicht vertrauenswürdig. Der SP muss Antwort, Binding und Profil korrekt verarbeiten. Plausibel aussehendes XML bleibt ungeprüfte Eingabe, bis sämtliche erforderlichen Prüfungen gelingen.

3. Metadaten beschreiben die Föderationspartner

Metadaten nennen eine Entität und ihre Rollen, Endpunkte, Bindings und Schlüssel. Eine Entity-ID ist eine Kennung innerhalb der Föderation und nicht zwingend eine aufrufbare Anmelde-URL.

Signierzertifikate in Metadaten unterstützen die Nachrichtenprüfung. Sie sind nicht mit dem HTTPS-Zertifikat der Anmeldeseite austauschbar. Vertrauenswürdige Metadatenverteilung und geplanter Schlüsselwechsel erhalten die Partnerschaft bei Rotation.

4. Die Signaturprüfung muss zur akzeptierten Assertion gehören

Der SP prüft die relevante Signatur mit vertrauenswürdigen Schlüsseln und verarbeitet genau den signierten Inhalt. Dazu kommen Aussteller, Zielgruppe, gegebenenfalls Zieladresse oder Empfänger, Zeitbedingungen und je nach Ablauf die Zuordnung zur Anfrage. Replay-Behandlung verhindert erneute Nutzung bereits akzeptierter Assertions.

Wohlgeformtes XML ist nur der erste Schritt. Es belegt weder eine gültige Signatur noch die Berechtigung zur Sitzung. Nutze eine gepflegte SAML-Implementierung: Ein bekannter Benutzername im XML ersetzt keine Vertrauensprüfung.

Ein kleines Beispiel

Optional: Lege den vertrauenswürdigen Metadatenexport eines Test-IdP unter dem genannten Namen ab. Verwende keine echte Benutzer-Assertion; diese kann persönliche Daten und nutzbares Authentifizierungsmaterial enthalten.

xmllint --nonet --noout idp-metadata.xml
xmllint --nonet --format idp-metadata.xml

Der erste Befehl sollte bei wohlgeformtem XML nichts ausgeben. Die zweite Ausgabe erleichtert das Finden von EntityDescriptor, IDPSSODescriptor, KeyDescriptor und SingleSignOnService; Präfixe können abweichen. Vergleiche Entity-ID, Endpunktadressen und Bindings.

Eine stille Parserprüfung bedeutet keine erfolgreiche SAML-Anmeldung oder Signaturprüfung. Die Befehle konfigurieren keinen Partner, prüfen kein Zertifikatsvertrauen und kontaktieren keinen Endpunkt. Der Export bleibt unverändert.

Merke dir: Föderation beruht auf geprüften Aussagen eines bewusst vertrauenswürdigen Ausstellers, nicht auf einem vom Browser gelieferten identitätsähnlichen Dokument.