Authn.tech
Startseite
  • SAML 2.0
  • OAuth 2.0
  • OIDC
  • WebAuthn / Passkey
  • MFA / TOTP
  • LDAP
  • Alle Tools
  • JWT dekodieren
  • JWT signieren
  • JWK erzeugen
  • JWK → PEM
  • PEM → JWK
  • PKCE erzeugen
  • OIDC Discovery
  • TOTP
  • WebAuthn
  • SAML-Codec
  • SAML Metadata
  • SAML Response
  • X.509-Zertifikat
  • PEM prüfen
  • Base64URL
  • LDAP-Filter
  • Übersicht & Rollen
  • OIDC Mock
  • SAML Mock
  • Mail-Server
  • LDAP-Verzeichnis
  • OIDC-Login-Demo
  • SAML-Login-Demo
  • 简体中文
  • English
  • Deutsch
GitHub
Startseite
  • SAML 2.0
  • OAuth 2.0
  • OIDC
  • WebAuthn / Passkey
  • MFA / TOTP
  • LDAP
  • Alle Tools
  • JWT dekodieren
  • JWT signieren
  • JWK erzeugen
  • JWK → PEM
  • PEM → JWK
  • PKCE erzeugen
  • OIDC Discovery
  • TOTP
  • WebAuthn
  • SAML-Codec
  • SAML Metadata
  • SAML Response
  • X.509-Zertifikat
  • PEM prüfen
  • Base64URL
  • LDAP-Filter
  • Übersicht & Rollen
  • OIDC Mock
  • SAML Mock
  • Mail-Server
  • LDAP-Verzeichnis
  • OIDC-Login-Demo
  • SAML-Login-Demo
  • 简体中文
  • English
  • Deutsch
GitHub
  • SAML 2.0

    • SAML 2.0 Überblick
    • Kernkonzepte
    • Typische Flows
    • Typische Parameter und Nachrichtenreferenz

Typische Parameter und Nachrichtenreferenz

Diese Seite ist eine Schnellreferenz-Tabelle, nach Nachrichtentyp organisiert. Flow-Kontext siehe Typische Flows, Konzepterklärungen siehe Kernkonzepte.

AuthnRequest Schlüsselelemente und Attribute

Element/AttributErforderlichBeschreibung
IDJaRequest eindeutige Kennung (NCName, darf nicht mit Zahl beginnen, Konvention _ Präfix). SP muss speichern, zum Abgleich von Response InResponseTo
VersionJaFest 2.0
IssueInstantJaAusstellungszeit, UTC ISO 8601 (wie 2026-07-03T08:29:55Z). IdP lehnt Anfragen mit zu großer Abweichung ab
DestinationEmpfohlenIdP SSO Endpunkt URL. Wenn Nachricht signiert, muss IdP überprüfen, dass es mit empfangener Adresse übereinstimmt
AssertionConsumerServiceURLEmpfohlenErwartete ACS-Adresse zur Response-Rückgabe. IdP muss überprüfen, dass es in SP-Metadaten registriert ist, sonst könnte es zur Assertion-Diebstahl missbraucht werden
ProtocolBindingOptionalErwartetes Response Binding, normalerweise urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST
AssertionConsumerServiceIndexOptionalNutze Index statt explizite URL (gegenseitig ausschließlich)
ForceAuthnOptionalWenn true, fordere IdP auf, existierende Sitzung zu ignorieren, erzwinge Neauthentifizierung (häufig vor sensitiven Operationen)
IsPassiveOptionalWenn true, verbiete IdP mit Benutzer zu interagieren; ohne Sitzung gebe NoPassive Fehler (zum stillen Prüfen von Anmeldestatus)
<Issuer>JaSP Entity ID
<NameIDPolicy>OptionalFormat deklariert erwartete NameID-Format; AllowCreate="true" erlaubt IdP neue Identifikatoren für neue Benutzer zu erstellen
<RequestedAuthnContext>OptionalGeforderte Authentifizierungsstärke, enthält eine oder mehrere <AuthnContextClassRef>; Comparison ist exact/minimum/maximum/better
<Scoping> / <ProxyCount>OptionalProxy/Weiterleitungs IdP Szenarien, seltener genutzt

Response und Assertion Struktur

Response äußere Schicht

Element/AttributBeschreibung
ID / Version / IssueInstantWie oben, ID für Log-Zuordnung und Wiederholungsschutz
InResponseToEntspricht AuthnRequest ID. Existiert nicht in IdP-initiated Flow
DestinationSP ACS URL, SP muss überprüfen, dass es sich selbst gleicht
<Issuer>IdP Entity ID
<samlp:Status>Verarbeitungsergebnis, siehe unten StatusCode Tabelle
<saml:Assertion> oder <saml:EncryptedAssertion>Bei Erfolg Assertion (0..n, Web SSO normalerweise genau 1); bei Fehler möglicherweise keine

Status

ElementBeschreibung
<StatusCode Value="...">Top-Level Status Code (siehe unten Tabelle), kann genestete zweite StatusCode zur Verfeinerung der Ursache enthalten
<StatusMessage>Für Menschen lesbare Info, beim Debugging zuerst ansehen
<StatusDetail>Maschinen-lesbare zusätzliche Details

Subject und SubjectConfirmation (bearer)

Element/AttributBeschreibung
<NameID>Hauptakteur-Kennung, Format siehe unten Übersichtstabelle
<SubjectConfirmation Method>Web SSO fest urn:oasis:names:tc:SAML:2.0:cm:bearer („das Halten selbst ist Nachweis")
SubjectConfirmationData/@RecipientMuss ACS URL gleichen, die dieses Assertion empfängt, SP muss überprüfen
SubjectConfirmationData/@NotOnOrAfterBearer Bestätigungsablauf, muss überprüft werden; beachte: bearer Szenario enthält nicht NotBefore
SubjectConfirmationData/@InResponseToGleiche Semantik wie Response äußere, SP-initiated muss Abgleich passen

Conditions

Element/AttributBeschreibung
NotBefore / NotOnOrAfterAssertion gesamtfenster Gültigkeit (first inclusive, last exclusive), bei Validierung 2-3 Minuten Clock-Toleranz ermöglichen
<AudienceRestriction>/<Audience>Zielgruppe, muss SPs Entity ID enthalten (nicht ACS URL)
<OneTimeUse>Wenn vorhanden, muss SP einmalige Nutzung sicherstellen

AuthnStatement

Attribut/ElementBeschreibung
AuthnInstantTatsächliche Authentifizierungszeit (kann weit vorher sein, besonders bei IdP-Sitzung-Wiederverwendung)
SessionIndexIdP-seitige Sitzungskennung, SP sollte speichern, SLO zurückfüllen
SessionNotOnOrAfterIdP empfohlene SP-Sitzungs-Obergrenze, SP sollte beachten
<AuthnContextClassRef>Authentifizierungsmethode, häufig: ...ac:classes:PasswordProtectedTransport (HTTPS-Passwort), ...ac:classes:Password, ...ac:classes:TimeSyncToken, urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified. SP sollte diese Wert überprüfen wenn MFA erzwungen wird

AttributeStatement

Attribut/ElementBeschreibung
<Attribute Name>Attributname. Kann Kurzname sein (mail) oder URI/OID-Stil (urn:oid:0.9.2342.19200300.100.1.3, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress), bei Anbindung nach tatsächliche Werte gehen
NameFormat...attrname-format:basic / :uri / :unspecified
FriendlyNameLesbare Alias, nicht für Abgleich beteiligt
<AttributeValue>Kann mehrwertig sein (z.B. mehrere Gruppen); beachte xsi:type könnte vorhanden sein

Häufige StatusCode

Top-Level Codes (Value Präfix sind alle urn:oasis:names:tc:SAML:2.0:status:):

WertBedeutung
SuccessErfolgreich
RequesterAnfrageer (SP) Fehler — Anfrage ungültig, Parameter nicht akzeptiert
ResponderAntworter (IdP) Fehler — IdP interne Gründe, kann nicht verarbeiten
VersionMismatchProtokollversion Nicht-Übereinstimmung

Häufige zweite Level Codes (genestelt unter Top-Level):

Wert (gleicher Präfix)Bedeutung
AuthnFailedAuthentifizierung fehlgeschlagen (falsches Passwort, Benutzer abgebrochen usw.)
InvalidNameIDPolicyIdP kann angeforderte NameID Format nicht erfüllen
NoAuthnContextKann RequestedAuthnContext Stärkeanforderung nicht erfüllen
NoPassiveIsPassive=true aber Benutzer keine Sitzung, braucht Interaktion
RequestDeniedRemote versteht Anfrage aber lehnt Durchführung ab (häufig Vertrauens-Konfiguration Nicht-Übereinstimmung)
UnknownPrincipalKann Hauptakteur nicht erkennen
UnsupportedBindingNicht-unterstütztes Binding angefordert
PartialLogoutSLO konnte nicht alle Beteiligten benachrichtigen
ProxyCountExceededProxy Hop-Limit überschritten

NameID Format Übersicht

Format URIBeschreibung
urn:oasis:names:tc:SAML:1.1:nameid-format:unspecifiedUnspezifiziert, Semantik von Parteien offline vereinbart (Kompatibilität Fallback, sorgfältig nutzen)
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddressE-Mail-Format
urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectNameX.509 Zertifikat-Subject-Name
urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedNameDOMAIN\user Form
urn:oasis:names:tc:SAML:2.0:nameid-format:kerberosKerberos principal
urn:oasis:names:tc:SAML:2.0:nameid-format:entityKennzeichnet SAML-Entität selbst (Issuer Element Standard)
urn:oasis:names:tc:SAML:2.0:nameid-format:persistentPersistente Pseudonym: undurchsichtig, stabil für einzelnen SP, unterschiedlich über SP, empfohlen als Konto-Link Primärschlüssel
urn:oasis:names:tc:SAML:2.0:nameid-format:transientTransiente Kennung, nur diese Sitzung gültig

Binding Parameter

HTTP-Redirect Binding (URL Abfrage Parameter)

ParameterBeschreibung
SAMLRequest / SAMLResponseNachricht Rumpf: XML → raw deflate → Base64 → URL Kodierung (Kodierungsdetails siehe Typische Flows)
RelayStateUndurchsichtiger Zustand, ≤80 Bytes, Remote muss unverändert zurückgeben
SigAlgSignatur-Algorithmus URI, wie http://www.w3.org/2001/04/xmldsig-more#rsa-sha256
SignatureSignatur über SAMLRequest(oder SAMLResponse)=..&RelayState=..&SigAlg=.. String (URL kodierte Form, feste Reihenfolge, nur tatsächlich vorhandene Parameter), Base64 dann URL kodiert

HTTP-POST Binding (Formular Felder)

FeldBeschreibung
SAMLRequest / SAMLResponseXML → Base64 (kein deflate), über Browser Auto-Submit Formular POST
RelayStateWie oben

Im POST Binding ist Signatur XML-eingebettete <ds:Signature>, nicht separate Felder.

Metadata Schlüsselelemente

Universal

Element/AttributBeschreibung
<EntityDescriptor entityID>Wurzelelement; entityID ist Entitätskennung
validUntil / cacheDurationMetadaten Gültigkeitsdauer/Cache-Dauer, Consumer sollte periodisch aktualisieren
<KeyDescriptor use="signing">Signatur Verifikationszertifikat (enthält <ds:X509Certificate>); use auslassen bedeutet Signatur/Verschlüsselung beide
<KeyDescriptor use="encryption">Verschlüsselungs-Public-Key Zertifikat

IdP Seite (<IDPSSODescriptor>)

Element/AttributBeschreibung
protocolSupportEnumerationFest enthält urn:oasis:names:tc:SAML:2.0:protocol
<SingleSignOnService Binding Location>SSO Endpunkt, nach Binding je eine
<SingleLogoutService Binding Location>SLO Endpunkt
WantAuthnRequestsSignedOb SP AuthnRequest signieren soll

SP Seite (<SPSSODescriptor>)

Element/AttributBeschreibung
<AssertionConsumerService Binding Location index isDefault>ACS Endpunkt, kann mehrere, index zur AssertionConsumerServiceIndex Referenzierung
<SingleLogoutService>SP SLO Endpunkt
AuthnRequestsSignedSP verpflichtet sich AuthnRequest zu signieren
WantAssertionsSignedSP fordert Assertion muss signiert sein
<NameIDFormat>SP Unterstützung/erwartete NameID Format Liste

Troubleshooting Schnellreferenz

PhänomenHäufige Ursachen
IdP meldet SAMLRequest nicht parsbarRedirect Binding Kodierungs-Reihenfolge falsch (deflate vergessen / zlib-Header mitgenommen / URL-safe Base64 / doppelt URL-kodiert)
Signature validation failedRemote-Zertifikat rotiert, lokale Metadata nicht synchron aktualisiert; Signatur/Digest-Algorithmus nicht akzeptiert (z.B. SHA-1 verboten); Redirect Signatur String Verkettungs-Reihenfolge oder URL-Kodierungs-Form falsch; XML von Middleware verändert (formatiert, Kodierung)
Invalid Destination / RecipientACS oder SSO Endpunkt URL Nicht-Übereinstimmung: http vs https, Port, Trailing-Slash, Reverse-Proxy ändert Host
Audience Validierung fehlgeschlagenSP Entity ID fehlkonfiguriert (häufig: ACS URL als Entity ID gefüllt)
Response abgelaufen / noch nicht gültigDoppel-Uhr Offset; SP keine clock skew Toleranz konfiguriert; Benutzer verbrachte lange Zeit auf IdP-Anmeldeseite vor Einreichung
InResponseTo Nicht-ÜbereinstimmungSP Cluster teilt Request ID Speicher nicht (Knoten A sendet Anfrage, Knoten B empfängt Response); Benutzer Zurück/Refresh markiert ID verbraucht; IdP-initiated Response an SP-initiated-only SP
Anmeldung erfolgreich, aber Attribute nicht abrufbarIdP hat Attribute Release Richtlinie nicht konfiguriert; Attributnamen Nicht-Übereinstimmung (Kurzname vs URI/OID); Assertion verschlüsselt aber SP dekodiert nicht bevor Wert liest
Umleitungs-Schleife (SP↔IdP wiederholtes Springen)SP Session Cookie nicht gesetzt (SameSite/Secure/Domäne Konfiguration falsch), SP denkt immer noch nicht angemeldet
IdP meldet unbekannt/ungültig SPAuthnRequest Issuer stimmt nicht mit IdP-seitig registrierter Entity ID
SLO danach andere SP noch onlineSLO-Kette einen Hop fehlgeschlagen (prüfe ob PartialLogout zurückkommt); SP speichert SessionIndex nicht; Third-Party Cookie von Browser blockiert
Nur IE/bestimmter Proxy fehlgeschlagenURL zu lang (Redirect Binding Nachricht zu groß), nutze POST Binding für AuthnRequest

Debugging Tools

Browser Plugin SAML-tracer (Firefox/Chrome) kann abgefangene SAMLRequest/SAMLResponse direkt dekodieren; beim Backend-Debugging erst Base64 dekodieren und XML ansehen, dann diese Seiten-Tabelle Punkt für Punkt durchgehen. Überwiegend Probleme liegen bei URL/Entity ID/Zertifikat-Konfigurationen-Nicht-Übereinstimmung.

Zuletzt aktualisiert: 06.07.26, 07:49
Mitwirkende: linux, Claude Opus 4.8
Prev
Typische Flows