Prerequisites
- Enterprise SSO enabled for your Modem organization, and the owner role in it
- Administrator access to your Okta org, with permission to create app integrations
- Access to DNS for the email domain you are claiming
Setup
Setup runs in two passes, because Okta needs an Audience URI that Modem only issues once the provider exists.1
Create the SAML app integration in Okta
In the Okta Admin Console, go to Applications → Applications → Create App Integration, choose SAML 2.0, and give
the app a name such as
Modem.2
Fill in the Configure SAML step
On the Configure SAML step:
- Single sign-on URL — the ACS URL from Modem,
https://app.modem.dev/api/auth/sso/saml2/sp/acs/org-<id>. Leave Use this for Recipient URL and Destination URL checked. - Audience URI (SP Entity ID) — a placeholder for now, for example
https://app.modem.dev. You replace this in step 6 with the SP Entity ID Modem generates. - Name ID format —
UnspecifiedorPersistent. Either works. - Application username — see Sending the Okta user id below. This is the setting that decides the NameID value, and it is the one thing worth getting right the first time.
3
Add the attribute statements
Still on Configure SAML, under Attribute Statements, add three attributes. The names have to match exactly — Modem looks
them up by name.
4
Copy Okta's SAML details
Finish the wizard, then open the app’s Sign On tab and click View SAML setup instructions (in some Okta versions this is a
More details panel). Copy:
- Identity Provider Single Sign-On URL
- Identity Provider Issuer
- The X.509 Certificate
5
Register Okta in Modem
In the Modem dashboard, go to Settings → SSO, choose SAML 2.0, and enter the sign-on URL, issuer,
and certificate (or the metadata XML) you just copied, along with the email domain you are claiming.
6
Paste Modem's SP Entity ID back into Okta
The SSO settings page now shows Modem’s SP Entity ID (Audience URI). Copy it exactly, return to the Okta app’s General tab
→ SAML Settings → Edit, and replace the placeholder Audience URI (SP Entity ID) with it. Save.
The SP Entity ID will look like your Okta org’s own issuer URL. That is expected — copy it exactly as Modem shows it rather
than adjusting it to look more like a Modem URL.
7
Assign the app to your users
On the app’s Assignments tab, assign it to the people or groups who should have access to Modem. Anyone not assigned cannot
sign in.
8
Verify your email domain
Publish the DNS TXT record Modem shows on the SSO settings page and click verify. Sign-in is refused until this succeeds — see
Domain verification.
Sending the Okta user id
In Okta, the NameID value comes from the app’s Application username setting, not from the Name ID format. To send the Okta user id, set Application username to Custom and use the expression:user.email or user.login.
Attribute mapping
Testing the sign-in
Sign out of Modem, or use a private window, then:- Go to
https://app.modem.dev - Click Continue with SSO
- Enter your work email address, or your Modem organization slug
- Complete the Okta prompt
Troubleshooting
Start single sign-on from Modem
Start single sign-on from Modem
The sign-in started from the Okta dashboard tile rather than from Modem. Go to
https://app.modem.dev and click Continue with
SSO. If it helps, edit the app’s tile in Okta to link to https://app.modem.dev so the tile sends people to the right place.Single sign-on is not finished being set up
Single sign-on is not finished being set up
The domain has not been verified yet. Publish the DNS TXT record from the SSO settings page and click verify. DNS can take minutes
to hours to propagate; retrying is safe.
Okta reports an audience or destination mismatch
Okta reports an audience or destination mismatch
The Audience URI (SP Entity ID) in Okta does not match the SP Entity ID Modem shows, or the Single sign-on URL is not the
ACS URL from Modem. Copy both again from the SSO settings page, character for character.
Users sign in but their names or emails are wrong
Users sign in but their names or emails are wrong
Check the attribute statements. The names have to be exactly
email, givenName, and surname — Okta will happily save a
misspelled name, and Modem then falls back to the NameID.The certificate expired or was rotated
The certificate expired or was rotated
Okta signing certificates have an expiry. When you roll one in Okta, copy the new X.509 Certificate from View SAML setup
instructions and update it on the Modem SSO settings page, otherwise assertions stop validating.
A user is not assigned
A user is not assigned
Okta refuses the sign-in before it ever reaches Modem if the person is not assigned to the app. Check the app’s Assignments tab.
Related
Enterprise SSO
Requirements, domain verification, and sign-in behaviour.
Team Management
Roles, invitations, and auto-join.