SAML SSO
Enable single sign-on via WorkOS for your team. Supports Okta, Azure AD, Google Workspace, and any SAML 2.0 IdP.
OpenPhn supports SAML 2.0 single sign-on for tenants on the Pro and Scale tiers, federated through WorkOS. Once configured, members signing in with your corporate email domain are routed to your identity provider — no password required.
How it works
- Owner sets up the connection in Settings → SSO. We create a WorkOS organization for your tenant and return a one-time admin portal link.
- You upload IdP metadata in the WorkOS admin portal (Okta XML, Azure AD federation metadata, etc.). WorkOS handles the SAML protocol details.
- Members sign in by email. The Login page detects their domain and shows a "Sign in with SSO" button. Clicking it redirects to your IdP, then back to OpenPhn with a fresh session.
New users (matching your claimed email domain) are JIT-provisioned with the member role on first SSO login. Existing users with the same email are attached to your tenant.
Configuring with Okta
- In Okta, create a new SAML 2.0 application. Copy the SP Entity ID and ACS URL from the WorkOS admin portal into your Okta application configuration.
- Set the Name ID format to
EmailAddress. - Attribute statements: map
emailtouser.email,firstNametouser.firstName,lastNametouser.lastName. - Save and download your Okta application's metadata XML.
- Upload the XML in the WorkOS admin portal, click "Activate Connection".
- Your Settings → SSO page in OpenPhn will show "Active" within a few seconds.
Configuring with Azure AD (Microsoft Entra ID)
- In Entra ID, register a new Enterprise Application → "Non-gallery application" → SAML SSO.
- Copy the Identifier (Entity ID) and Reply URL (ACS URL) from the WorkOS admin portal into the Entra Basic SAML Configuration section.
- User attributes & claims: ensure
emailaddressis the unique identifier (Name ID). - Download the Federation Metadata XML from the SAML Signing Certificate section.
- Upload the XML in the WorkOS admin portal, click "Activate Connection".
- Settings → SSO will flip to "Active" within a few seconds.
Configuring with Google Workspace
- In the Google Admin Console: Apps → Web and mobile apps → Add custom SAML app.
- Copy the SSO URL, Entity ID, and Certificate from the Google Admin Console into the WorkOS admin portal.
- Attribute mapping:
email→ "Primary email",first_name→ "First name",last_name→ "Last name". - Activate the app for your users in Google Admin.
- Click "Activate Connection" in the WorkOS admin portal.
Require SSO
When SSO is active, you can enforce it in Settings → SSO by toggling Require SSO. This rejects password login for all members EXCEPT Owners.
The Owner break-glass exists so a misconfigured IdP never locks out the billing contact. If your Owner can't sign in via SSO, they can always password-login — and from there, disable the Require SSO toggle to restore access for everyone else.
What gets audited
Every SSO event is appended to the tamper-evident audit chain (see /v1/admin/audit/verify):
sso.connection_created— Owner clicks "Set up SSO"sso.connection_activated— WorkOS confirms IdP setup completedsso.connection_deleted— Owner disables the connectionauth.sso_login— successful SSO login (withis_jitflag for first-time users)auth.sso_login_failed— captured assertion didn't match the claimed email domain (potential attack)
Limitations (as of launch)
- One IdP per tenant. Multi-IdP per tenant is on the roadmap; ask if you need it.
- No SCIM directory sync. JIT-on-login is the only provisioning path. Deprovisioning happens manually via Settings → Team. SCIM is on the roadmap for the Scale tier.
- One email domain per tenant. If your team uses multiple domains, contact us — we can configure additional domain claims server-side.
Tier availability
| Feature | Starter | Pro | Scale |
|---|---|---|---|
| Password login | ✅ | ✅ | ✅ |
| SAML SSO | — | ✅ | ✅ |
| JIT user provisioning | — | ✅ | ✅ |
| Require SSO toggle | — | ✅ | ✅ |
| SCIM directory sync | — | — | (roadmap) |
| Audit chain | ✅ | ✅ | ✅ |