Understand SAML
SAML lets you log in to an application with your organisation's account, without the application ever seeing the password.
See also: the SAML history timeline · the OAuth and OpenID Connect one
Imagine a concert. The application is the venue: it wants to know who comes in, but it does not check your papers itself. The identity provider is your company's accreditation desk: it really knows your identity. At the entrance, the venue sends you to the desk, which hands you a sealed badge bearing your name. The venue only trusts the seal, which it knows how to recognise.
This sealed badge is the SAML assertion. The seal is the signature.
The user, with their browser. It carries the messages from one site to the other.
The service you want to access. The jargon says "SP", for service provider.
The one that authenticates you: Microsoft Entra ID, Okta, Keycloak, Google Workspace… The jargon says "IdP".
Before the first test, the application and the identity provider exchange a kind of technical ID card: the metadata. It holds their names (Entity ID), their addresses and above all the certificate used to recognise the seal. This is the "configuration" part, and it is where almost all problems originate.
| Identity provider side | Application side |
|---|---|
| The application's name (Entity ID) | The identity provider's name (Entity ID) |
| The address to send the person back to (ACS URL) | The address to send them to identify themselves (SSO URL) |
| Optionally the application's certificate | The identity provider's certificate |
A one-character mistake (a trailing slash, http instead of https) is enough to block everything. ID-Kit tells you exactly which value does not match.
To go further: the technical detail, or common errors.
Want to see it for real? ID-Kit plays the role you are missing and shows you each step.