SAML 2.0 SSO
AxisSynapse is a SAML 2.0 Service Provider. Configure your IdP (Okta, Entra ID / Azure AD, ADFS, Ping, OneLogin) once per tenant; users on the configured email domains then sign in without ever seeing a password prompt.
Configure a provider
From the dashboard:
- Go to
/settings → Identity & SSO → SAML 2.0 SSO providers→ Add provider - Paste the IdP's entityID, SSO URL, and X.509 signing certificate
- Add the email domains that should route to this IdP
- Save (status DRAFT)
- Click SP info on the row to copy our metadata URL into your IdP wizard
- Click Test config — runs validation + reachability checks
- Click Enable to switch the provider to ACTIVE
SP metadata
Every provider exposes its metadata at a stable URL:
https://app.axissynapse.com/api/saml/{providerId}/metadataMetadata advertises:
- entityID:
{baseUrl}/api/saml/{providerId}/metadata - ACS URL:
{baseUrl}/api/saml/{providerId}/acs - Binding:
urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST - NameID format:
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress(default) - AuthnRequestsSigned: false
- WantAssertionsSigned: true (configurable)
Attribute mapping
The platform ships defaults for every IdP we've seen. They cover all of:
email/Email/emailAddresshttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddressurn:oid:0.9.2342.19200300.100.1.3(RFC 4524 mail)givenName/urn:oid:2.5.4.42surname/sn/urn:oid:2.5.4.4groups/memberOf/http://schemas.xmlsoap.org/claims/Group
Tenants can override per-provider in the attributeMap field. NameID fallback: if no explicit Email attribute is provided but the NameID looks like an email, it's used.
Just-in-time provisioning
When allowJitProvisioning is on, a verified SAML assertion for an unknown email creates a fresh TenantUser with the provider's defaultRole. Existing users with status DISABLED or SUSPENDED are REACTIVATED — the IdP just said the person should have access.
We bridge IdP-side identifiers to local TenantUser.id via the ExternalIdMapping table, so future SCIM updates target the right row even when email changes.
Sign-in flow
- User enters email at
/auth/login - Login form parallel-queries OIDC + SAML discovery — SAML wins when both are configured
- Browser is redirected to
/api/saml/{id}/loginwith the original target inrelayState - We POST a SAMLRequest to the IdP via an auto-submitting form
- IdP authenticates, posts back to our
/api/saml/{id}/acs - We verify the signature, attributes, conditions, audience, InResponseTo
- JIT-provision or look up the user, issue a session ticket, redirect to RelayState