SAML Configuration
Configure AuthMe as a SAML 2.0 Identity Provider, connect your Service Provider, and test single sign-on end-to-end.
What is SAML?
Security Assertion Markup Language (SAML) 2.0 is an XML-based standard for exchanging authentication and authorization data between an Identity Provider (IdP) and a Service Provider (SP).
AuthMe acts as a SAML 2.0 Identity Provider. Your applications register as Service Providers and delegate user authentication to AuthMe.
Identity Provider Metadata
Most SP libraries auto-configure when you provide the IdP metadata URL:
curl https://auth.example.com/realms/my-realm/protocol/saml/descriptor The XML document contains the IdP entity ID, SSO service URL, SLO service URL, and the signing certificate.
Creating a SAML Client
Register your Service Provider in the Admin Console:
- 1
Open the Admin Console
Navigate to
/consoleand select your realm. - 2
Create a new Client
Go to Clients → New Client. Choose
SAMLas the protocol. - 3
Set the Entity ID
The Entity ID uniquely identifies your SP, e.g.
https://app.example.com/saml/metadata. - 4
Configure ACS URL
Set the Assertion Consumer Service URL to your SP's callback endpoint, e.g.
https://app.example.com/saml/acs. - 5
Configure Attribute Mappers
Add mappers to include email, name, and role attributes in the SAML assertion.
Key SAML Endpoints
| Endpoint | URL |
|---|---|
| IdP Metadata | /realms/{realm}/protocol/saml/descriptor |
| SSO (POST) | /realms/{realm}/protocol/saml |
| SSO (Redirect) | /realms/{realm}/protocol/saml |
| Single Logout | /realms/{realm}/protocol/saml |
Testing the SSO Flow
Use a SAML testing tool like SAML-tracer (Firefox/Chrome extension) to inspect assertions:
- Install SAML-tracer in your browser and enable it.
- Trigger a login from your SP application.
- Inspect the SAMLRequest sent to AuthMe and the SAMLResponse with the assertion.
- Verify that the expected attributes (email, name, roles) appear in the assertion.
Ensure your SP's clock is within 5 minutes of AuthMe's clock. SAML assertions have a strict NotBefore / NotOnOrAfter validity window.