Fehlerbehebung

Funktioniert es nicht? Häufige SAML-Fehler

Die Fehlermeldung hängt vom Werkzeug ab, die Ursachen sind aber fast immer dieselben. Finden Sie Ihre.

Tipp: Fügen Sie die SAML-Antwort in den Decoder ein oder nutzen Sie den Test-SP, um genau zu sehen, welche Prüfung fehlschlägt.

„Invalid audience“ / „Audience restriction“Audience

Wahrscheinliche Ursache. Die Assertion ist für einen anderen Anwendungsnamen bestimmt als den, den die Anwendung erwartet. Der Unterschied kann ein einzelnes Zeichen sein: Schrägstrich am Ende, http statt https, URL statt URN, Großbuchstaben.

Was tun? Vergleichen Sie die im IdP deklarierte Entity ID mit der der Anwendung (in ihren Metadaten sichtbar) und machen Sie sie exakt identisch.
„Incorrect ACS URL“ / „Recipient“ / „Destination“Destination, Recipient

Wahrscheinliche Ursache. Die Adresse, an die der IdP die Antwort sendet, ist nicht exakt die der Anwendung. Häufiger Fall: Ein Reverse-Proxy macht intern aus https ein http oder fügt einen Pfad hinzu.

Was tun? Korrigieren Sie die im IdP deklarierte ACS-URL (aus den Metadaten der Anwendung kopieren). Prüfen Sie auch die Einstellung der öffentlichen URL der Anwendung, wenn sie hinter einem Proxy liegt.
„Invalid signature“ / „digest mismatch“Signature

Wahrscheinliche Ursache. Der Inhalt wurde nach der Signierung geändert oder eine Komponente hat das XML unterwegs neu formatiert (Gateway, Web-Virenscanner, Copy-and-paste).

Was tun? Holen Sie die rohe Antwort (Feld SAMLResponse), ohne sie zu verändern. Prüfen Sie, dass die Base64-Kodierung nicht durch Zeilenumbrüche zerstört oder doppelt kodiert wurde.
„Unknown certificate“ / „signature does not match any certificate“Signatur

Wahrscheinliche Ursache. Das in der Anwendung konfigurierte Zertifikat ist nicht das, mit dem signiert wird. Sehr oft hat der IdP sein Zertifikat erneuert und die Anwendung das alte behalten.

Was tun? Importieren Sie die aktuellen Metadaten des IdP erneut oder kopieren Sie sein aktuelles Signaturzertifikat. Um einen Bruch beim Wechsel zu vermeiden, sollte der IdP während des Übergangs das alte und das neue veröffentlichen.
„Assertion expired“ / „not yet valid“ (NotBefore, NotOnOrAfter)NotBefore, NotOnOrAfter

Wahrscheinliche Ursache. Die Uhren von Anwendungsserver und IdP sind nicht synchronisiert, oder der Gültigkeitszeitraum ist sehr kurz.

Was tun? Synchronisieren Sie die Server (NTP). Erlauben Sie auf Anwendungsseite eine Toleranz von 2 bis 5 Minuten. Verlängern Sie die Gültigkeit auf IdP-Seite nur als letzten Ausweg.
„Unexpected InResponseTo“ / „unsolicited response“InResponseTo

Wahrscheinliche Ursache. Die Anwendung findet die Anfrage nicht, auf die sich die Antwort bezieht: zwischenzeitlich verlorene Sitzung (blockiertes Cookie, anderer Browser, anderer Tab), mehrere Server ohne Sitzungsteilung oder eine vom IdP gestartete Anmeldung, die die Anwendung untersagt.

Was tun? Starten Sie die Anmeldung erneut von der Anwendung aus, in einem einzigen Tab. Teilen Sie hinter einem Load Balancer den Sitzungszustand. Erlauben Sie bei IdP-initiierter Anmeldung diese ausdrücklich, falls gewollt.
„NameID missing“ oder unerwartetes FormatNameID

Wahrscheinliche Ursache. Die Anwendung erwartet eine E-Mail-Adresse und der IdP sendet einen opaken Bezeichner (oder umgekehrt).

Was tun? Gleichen Sie das Format an: emailAddress oder persistent auf beiden Seiten, und prüfen Sie, ob der IdP den passenden Wert für den Benutzer hat.
Die Attribute (Name, Gruppen…) sind leerAttribute

Wahrscheinliche Ursache. Der IdP sendet das Attribut nicht oder unter einem anderen Namen (mail, email oder ein langer Name im URI-Stil).

Was tun? Fügen Sie im IdP das Attribut zur Liste hinzu, die an diese Anwendung gesendet wird; geben Sie in der Anwendung den genauen Namen ein, einschließlich Groß-/Kleinschreibung.
Endlose Weiterleitungsschleife

Wahrscheinliche Ursache. Die Anwendung kann nach der Antwort ihre Sitzung nicht erstellen (blockiertes Cookie, Secure bei internem http oder ein ACS, der selbst zur Anmeldung umleitet).

Was tun? Prüfen Sie die Sitzungscookies (Domain, Secure, SameSite) und ob der ACS nicht durch genau die Anmeldung geschützt ist, die er abschließen soll.
Der Benutzer ist authentifiziert, aber „Zugriff verweigert“

Wahrscheinliche Ursache. Auf IdP-Seite ist der Benutzer der Anwendung nicht zugewiesen, oder seine Gruppen passen nicht zu den Regeln der Anwendung.

Was tun? Weisen Sie den Benutzer (oder seine Gruppe) im IdP der Anwendung zu und prüfen Sie dann die gesendeten Gruppenattribute.
„Encrypted assertion“ unlesbarVerschlüsselte Assertion

Wahrscheinliche Ursache. Der IdP verschlüsselt Assertions, aber die Anwendung hat den Entschlüsselungsschlüssel nicht, oder dem IdP wurde das falsche Verschlüsselungszertifikat gegeben.

Was tun? Geben Sie dem IdP das Verschlüsselungszertifikat der Anwendung (use="encryption") und behalten Sie den passenden privaten Schlüssel. ID-Kit entschlüsselt noch nicht: Deaktivieren Sie die Verschlüsselung für den Test.
„Unable to decode SAMLRequest“Redirect

Wahrscheinliche Ursache. Beim Redirect-Binding wird die Anfrage vor dem Base64 komprimiert (Deflate). Ein Werkzeug, das nur Base64 dekodiert, sieht unleserliche Zeichen.

Was tun? Nutzen Sie den ID-Kit-Decoder, der die Kompression verarbeitet, oder prüfen Sie, ob die URL abgeschnitten wurde.
„Status: RequestDenied“ / „AuthnFailed“Status

Wahrscheinliche Ursache. Der IdP lehnt ab: unbekannte Anwendung (nicht deklarierte Entity ID), nicht deklarierter ACS, unbekannter Benutzer oder fehlgeschlagene Authentifizierung.

Was tun? Lesen Sie die StatusMessage und das Log des IdP. Prüfen Sie, ob die Anwendung dort mit der richtigen Entity ID und dem richtigen ACS deklariert ist.

Möchten Sie es live sehen? ID-Kit übernimmt die Rolle, die Ihnen fehlt, und zeigt Ihnen jeden Schritt.