SAML Integration Overview
Updated
by JRNI
JRNI supports SAML (Security Assertion Markup Language) single sign-on, letting your users authenticate into JRNI Studio or customer booking journeys with your organisation’s existing identity provider — Microsoft ADFS, Okta, Azure AD, or Salesforce
With SAML, your users never need a separate JRNI username and password. Their identity is verified by your own authentication system and securely passed to JRNI.
How it works
SAML authentication involves three parties:
Party | Role |
Identity Provider (IdP) | Your authentication system — Okta, Azure AD, Salesforce, ADFS. This is where users actually log in. |
Service Provider (SP) | JRNI — the application your users want to reach. |
User | The staff member or customer signing in to JRNI. |
Authentication flow
A SAML login can be initiated from either side — your identity provider, or JRNI.
IdP-initiated — the user starts at your identity provider
- User — Your user signs in to your identity provider, or already has an active session.
- IdP — The IdP builds a signed SAML response containing the user’s identity attributes.
- IdP → JRNI — The response is POSTed to JRNI’s Assertion Consumer URL.
- JRNI — JRNI validates the response using the certificate or fingerprint you configured.
- Signed in — The user is matched (or provisioned) and redirected into JRNI with an active session.
SP-initiated — the user starts at JRNI
- User — Your user opens JRNI — the Studio login page or a booking journey link.
- JRNI → IdP — JRNI redirects them to your identity provider’s SSO Target URL.
- IdP — The user authenticates with your IdP, or is already in an active session.
- IdP → JRNI — The identity provider returns a signed SAML response to JRNI.
- Signed in — JRNI validates the response, matches the user, and grants access.
Single Logout (SLO)
JRNI also supports SAML Single Logout. When configured, logging out of JRNI ends the session with your identity provider too — and vice versa, if your IdP supports it.
Supported response formats
JRNI accepts any combination of a signed or unsigned response with the four assertion types below — eight combinations in all.
Response | Unsigned assertion | Signed assertion | Encrypted assertion | Encrypted + signed |
Unsigned response | ✅ | ✅ | ✅ | ✅ |
Signed response | ✅ | ✅ | ✅ | ✅ |
For extra security, you can optionally require signed and/or encrypted assertions in your JRNI SAML settings.
SAML assertion attributes
These are the attributes JRNI expects inside the SAML assertion. The ones you include determine whether a user can be looked up (authenticated) and/or created (provisioned).
Member (customer) attributes
Attribute | Lookup | Create | Required | Notes |
| ✅ | — | 1+ lookup | JRNI internal member ID (integer) |
| ✅ | ✅ | 1+ lookup | Valid email address |
| ✅ | — | 1+ lookup | JRNI internal login ID (integer) |
| ✅ | ✅ | 1+ lookup | Your external reference (e.g. employee ID) |
| — | ✅ | Provisioning | Text |
| — | ✅ | Provisioning | Text |
| — | ✅ | Optional | Mobile phone number |
| — | ✅ | Optional | Landline phone number |
| — | ✅ | Optional | Country dialling code (e.g. 44) |
| — | ✅ | Optional | Country dialling code (e.g. 44) |
| — | ✅ | Optional | Integer — the membership tier ID |
| — | ✅ | Optional |
|
| — | ✅ | Optional | Text — sets the initial password on creation |
To look up a member, the assertion must include at least one of
member_id,login_id, orreference.
Admin (staff / user) attributes
Attribute | Authenticate | Create | Required | Notes |
| ✅ | — | 1+ lookup | JRNI internal user ID (integer) |
| ✅ | ✅ | Required | Valid email — used for both lookup and provisioning |
| ✅ | — | 1+ lookup | Your external reference string |
| — | ✅ | Provisioning | Text |
| — | ✅ | Provisioning | Text |
| — | ✅ | Optional |
|
| — | ✅ | Provisioning | The JRNI company ID the user should be assigned to |
| — | ✅ | Provisioning | The JRNI company external id the user should be assigned to |
To look up an admin user, the assertion must include at least one of
user_id,reference.
Provisioning — how JRNI decides
If your assertion carries enough attributes, JRNI can create the user record on first login. Here’s the logic JRNI applies to every incoming assertion:
- Can the user be identified? — the assertion includes a lookup attribute (e.g.
emailorreference).- No → Authentication fails.
- Yes → continue.
- Does the user already exist in JRNI? — JRNI matches the lookup attribute against existing records.
- Yes → Authenticate & sign in.
- No → continue.
- Are provisioning attributes present? — members need
first_name+last_name; admins also needcompany_id.- Yes → Create the record, then sign in.
- No → Fails; the user must already exist in JRNI.
To provision a member: email or reference for lookup, plus first_name and last_name.
To provision an admin: email, first_name, last_name, andcompany_id or company_referece
SAML connection settings
Configured in JRNI Studio under Settings › Advanced Settings › SAML Settings.
Setting | Description |
Name | A friendly name for this SAML connection. |
SP Entity ID (Issuer) (Required) | Unique identifier for your IdP. Must match the Audience / Issuer field in your IdP configuration. |
IdP SSO Target URL | Where JRNI sends users to authenticate (SP-initiated login). |
Customer URL | Where your IdP redirects members after authentication (customer journey). |
Admin URL | Where your IdP redirects admin users after authentication (Studio). |
IdP SLO Target URL | The URL for single logout (SP-initiated). |
SLO Customer URL | Where members are redirected after logout. |
SLO Admin URL | Where admin users are redirected after logout. |
IdP Certificate | Your IdP’s X.509 certificate in PEM format. Used to validate signed responses. |
Secondary Certificate | A backup certificate for seamless rotation when the primary expires. |
Certificate Fingerprint | The SHA1 fingerprint of the IdP certificate (alternative to the full certificate). |
Signed Assertion | When enabled, JRNI requires assertions to be digitally signed. |
Encrypted Assertion | When enabled, JRNI requires assertions to be encrypted using JRNI’s public certificate. |
You must provide either the IdP Certificate or the Certificate Fingerprint. If both are supplied, the full certificate takes precedence.
URLs JRNI provides
Once a SAML connection is created, JRNI gives you these URLs to configure in your identity provider:
URL | Purpose |
Assertion Consumer URL | Where your IdP should POST the SAML response after authentication. |
Metadata URL | Your IdP can import this to auto-configure the connection. |
SP Connection Initialisation URL | Used for SP-initiated login flows. |
Multiple SAML connections
JRNI supports multiple SAML connections on a single company — useful when different user populations use different identity providers (for example, one IdP for staff and another for customers).