Troubleshooting
The error message depends on the tool, but the causes are almost always the same. Find yours.
Tip: paste the SAML response into the decoder or use the test SP to see exactly which check fails.
Probable cause. The assertion is meant for a different application name than the one the application expects. The difference can be a single character: trailing slash, http vs https, URL vs URN, capitals.
Probable cause. The address the IdP sends the response to is not exactly the application's. Common case: a reverse proxy turns the application from https to http internally, or adds a path.
Probable cause. The content changed after signing, or a component reformatted the XML along the way (gateway, web antivirus, copy-paste).
SAMLResponse field) without altering it. Check that the base64 encoding is not broken by line breaks or encoded twice.Probable cause. The certificate configured in the application is not the one that signs. Very often, the IdP has renewed its certificate and the application kept the old one.
Probable cause. The application server and IdP clocks are not synchronised, or the validity period is very short.
Probable cause. The application cannot find the request the response refers to: session lost in the meantime (blocked cookie, another browser, another tab), several servers without session sharing, or a login started from the IdP while the application forbids it.
Probable cause. The application expects an email address and the IdP sends an opaque identifier (or the reverse).
emailAddress or persistent on both sides, and check that the IdP has the matching value for the user.Probable cause. The IdP does not send the attribute, or sends it under another name (mail, email or a long URI-style name).
Probable cause. The application cannot create its session after the response (blocked cookie, Secure on internal http, or an ACS that itself redirects to the login).
Secure, SameSite) and that the ACS is not protected by the very login it is meant to complete.Probable cause. On the IdP side, the user is not assigned to the application, or their groups do not match the application's rules.
Probable cause. The IdP encrypts assertions but the application does not have the decryption key, or the wrong encryption certificate was given to the IdP.
use="encryption") and keep the matching private key. ID-Kit does not decrypt yet: disable encryption for the test.Probable cause. With the Redirect binding, the request is compressed (deflate) before base64. A tool that only decodes base64 sees unreadable characters.
Probable cause. The IdP refuses: unknown application (undeclared Entity ID), undeclared ACS, unknown user, or failed authentication.
Want to see it for real? ID-Kit plays the role you are missing and shows you each step.