Skip to main content

SAML 2.0 API

SAML 2.0 (Security Assertion Markup Language) is an OASIS standard for XML-based single sign-on. An Identity Provider (IdP) authenticates a user and issues a signed assertion; a Service Provider (SP) trusts the IdP and grants the user access. Messages are carried over HTTP using bindings — most commonly HTTP-POST (form POST) and HTTP-Redirect (query string with signature).

LumoAuth can act as either side of a SAML trust. Use this API to accept logins from a corporate IdP or to issue assertions to a SAML-enabled application.

Dual Mode Architecture

LumoAuth supports two SAML modes:

ModeLumoAuth RoleUse Case
Service Provider (SP)Consumes SAML assertions from external IdPsLet users log in via corporate IdPs (Okta, Azure AD, ADFS)
Identity Provider (IdP)Issues SAML assertions to SP applicationsEnable SSO to SAML apps (Salesforce, Box, Slack, custom apps)

SAML Endpoints Reference

Service Provider Endpoints

Use these when LumoAuth acts as the SP, accepting logins from external IdPs:

EndpointMethodDescription
/orgs/\{orgId\}/saml/sp/metadataGETSP Metadata XML document
/orgs/\{orgId\}/saml/sp/loginGETInitiate SSO (redirects to IdP)
/orgs/\{orgId\}/saml/sp/login/\{idpId\}GETInitiate SSO with specific IdP
/orgs/\{orgId\}/saml/sp/acsPOSTAssertion Consumer Service (receives SAML Response)
/orgs/\{orgId\}/saml/sp/sloGET/POSTSingle Logout Service

Identity Provider Endpoints

Use these when LumoAuth acts as the IdP, issuing assertions to SP applications:

EndpointMethodDescription
/orgs/\{orgId\}/saml/idp/metadataGETIdP Metadata XML document
/orgs/\{orgId\}/saml/idp/ssoGET/POSTSingle Sign-On Service (receives AuthnRequest)
/orgs/\{orgId\}/saml/idp/sloGET/POSTSingle Logout Service

Key Concepts

TermDescription
Entity IDUnique identifier for an SP or IdP, typically a URL
MetadataXML document describing endpoints, certificates, and capabilities
AuthnRequestSAML authentication request sent from SP to IdP
SAML ResponseSigned XML containing one or more assertions
AssertionSigned statement containing user identity and attributes
NameIDUser identifier in SAML (email, persistent ID, transient)
ACS URLAssertion Consumer Service — where responses are sent
SLOSingle Logout — terminates sessions across all parties

Security Features

FeatureDescriptionDefault
Response SigningEntire SAML Response is cryptographically signedEnabled
Assertion SigningIndividual assertions are signedEnabled
Assertion EncryptionAssertions encrypted with SP's certificateOptional
Signature VerificationVerify signatures from IdP/SPRequired
Audience RestrictionAssertions only valid for intended SPEnforced
Replay ProtectionAssertions cannot be reusedEnforced

Getting Started

The simplest setup uses metadata URL exchange: provide your SP's metadata URL to LumoAuth and LumoAuth's metadata URL to your SP. This keeps endpoints and certificates synchronized on both sides.

Supported NameID Formats

FormatURNTypical Use
Email Addressurn:oasis:names:tc:SAML:1.1:nameid-format:emailAddressMost common, matches on email
Persistenturn:oasis:names:tc:SAML:2.0:nameid-format:persistentStable identifier, survives email changes
Transienturn:oasis:names:tc:SAML:2.0:nameid-format:transientSession-specific, privacy-focused
Unspecifiedurn:oasis:names:tc:SAML:1.1:nameid-format:unspecifiedSP determines interpretation

Glossary

TermDefinition
SAMLSecurity Assertion Markup Language — XML-based SSO standard
SSOSingle Sign-On — one login for multiple applications
IdPIdentity Provider — authenticates users and issues assertions
SPService Provider — application that accepts SAML assertions
JIT ProvisioningJust-in-Time user creation on first SAML login
X.509Standard for digital certificates used in SAML signing

Reference Specifications