How setup works
Setup is a round trip between Serval and Okta. Serval brokers SAML through WorkOS, and the in-product Configure SSO flow gives you the values you need and collects the one value Okta produces:- In Serval, start Configure SSO to get your connection ID (and the SP endpoints derived from it).
- In Okta, add Serval from the catalog and enter that connection ID.
- Back in Serval, paste your Okta metadata so Serval trusts your identity provider.
Prerequisites
- A Serval administrator account: an account with the Admin organization role in the Serval organization you’re configuring. Sign-in URL:
https://app.serval.com. - Okta administrative permissions: a Super Administrator (or an admin role that can add and configure OIN applications) in your Okta org.
- A verified domain in Serval: verify the email domain your users sign in with under Organization → Security in Serval. SAML sign-in is rejected for users whose email domain isn’t verified on your organization.
Supported features
Serval doesn’t create accounts through SAML JIT provisioning. To provision and deprovision users automatically, configure SCIM alongside SSO from Organization → Security.
Set up SSO
1
Get your Serval SSO connection ID
In Serval, switch to the Organization workspace, open Settings → Security, and select Configure SSO.Copy your connection ID — a short identifier like
conn_01ABC…. It’s shown as your Audience URI (SP Entity ID) and as the last segment of your ACS URL (https://auth.workos.com/sso/saml/acs/<connection-id>).Leave this screen open. You’ll return to it in the last step to hand Okta’s metadata back to Serval.2
Add Serval from the Okta Integration Network
In the Okta Admin Console, go to Applications → Applications → Browse App Catalog, search for Serval, and select + Add Integration.On the General Settings page, set the Application label (for example,
Serval) and paste your Serval SSO Connection ID from the previous step into the connection ID field. Okta uses it to build your ACS URL and Audience URI automatically, so you don’t enter any URLs by hand. Select Done.Add Serval from the catalog — don’t create a custom SAML app. The catalog app builds the SAML endpoints from your connection ID; you only supply the connection ID and, later, your Okta metadata.
3
Add the SAML attribute statements
Open the Serval app’s Sign On tab and confirm the populated settings:
- Single sign-on URL (ACS URL):
https://auth.workos.com/sso/saml/acs/<your-connection-id> - Audience URI (SP Entity ID):
<your-connection-id> - Name ID format:
EmailAddress - Application username:
Email
4
Send your Okta metadata to Serval
This is what lets Serval trust logins from your Okta org — SSO fails until you complete it.On the Serval app’s Sign On tab in Okta, copy the Metadata URL (or download the IdP metadata / certificate). Return to the Serval Configure SSO screen from step 1 and provide it where prompted.
5
Assign users and test
On the app’s Assignments tab, assign Serval to the users or groups who should have access. Then confirm sign-in works both ways: from the Okta dashboard (IdP-initiated) and from Serval’s sign-in page (SP-initiated).
SAML attribute statements
Serval requires all four attributes below. Add them under Attribute Statements in the Okta app’s SAML settings.email identifies the user, and id is a stable identifier that doesn’t change if their email does. Send all four — sign-in fails if any is missing.SP-initiated sign-in
Users can start sign-in from Serval directly:- Go to
https://app.serval.com. - Enter your work email. Serval detects your organization’s SSO domain and redirects you to Okta.
- Complete authentication in Okta. Serval returns you to the app, signed in.
Troubleshooting
- “Profile domain does not belong to the target Organization”: the signed-in user’s email domain isn’t verified on your Serval organization. Verify the domain under Organization → Security.
- “Invalid SAML Response”: the Okta metadata Serval has doesn’t match the app sending the assertion. This happens if you recreate the Okta app or rotate its signing certificate. Re-run Configure SSO in Serval and send the current Okta Metadata URL again.
- Sign-in prompts you to verify a domain: the email domain you’re signing in with isn’t verified on the Serval organization. Add and verify it under Organization → Security.
- Locked out after enabling Require SSO: if Okta sign-in is unavailable, an administrator can restore access through magic-link sign-in for guest accounts, or contact your Serval representative.

