Prerequisites
Before you start, make sure you have:- A Prelude account with access to Prelude Auth
- An Application ID (
appID): see Applications - Your Management API key for backend calls
- OAuth credentials from the customer’s IdP application (client ID, client secret, and for Okta the issuer URL)
- Admin access to the Identity Provider you want to connect
Supported providers
Enterprise connections are available for the OIDC-capable providers:Personal vs enterprise connections
Each OAuth provider config carries atype:
personal(the default): the classic social-login button. At most one per provider, addressed as…/oauth/{provider}.enterprise: a per-customer OIDC connection. An app can hold any number of them per provider, each addressed as…/oauth/{provider}/{connection_id}.
The
type of a connection is immutable. To switch between personal and
enterprise, delete the config and create a new one.Create a connection
Enterprise connections are managed through the same endpoint as social login, withtype set to enterprise and an enterprise block:
connection_id (an ocon_… identifier). Use it to update, delete, or launch the connection.
Connection behavior
Theenterprise block controls provisioning, login, and profile syncing:
How the flow works
An enterprise login is the same authorization-code flow as social login:- Initiate: Your app starts the flow by email (resolved to a connection via its domain allowlist) or by connection id. Prelude derives the provider from the connection and redirects the user to the IdP.
- Callback: After authenticating, the IdP redirects back and Prelude redirects to your app with a
challenge_token. - Finalize: Your app finalizes the
challenge_token, exactly as for social login.
verify_email OTP step. A login whose IdP email falls outside the allowlist is refused (oauth_email_domain_not_allowed).
Enterprise identities are scoped per connection. The stored identifier is
oauth:{provider}:{connection_id}, so the same provider subject seen through
two different connections never collapses onto one account.Getting the email from Microsoft Entra ID
Microsoft only includes anemail claim in the id_token when the signed-in user has an email set on their profile, or when the app registration requests the email optional claim. If Entra logins reach the callback without an email (which an enterprise connection rejects, since it cannot match a domain) add the optional claim:
- In the Azure portal, open App registrations → your app → Token configuration.
- Choose Add optional claim, select ID, and add email.
- Request the
emailscope in the connection’sscopes.
What’s next?
Web integration
Start an enterprise SSO login from the JavaScript SDK.
Social login
Configure classic social-login providers.