
Enterprise buyers expect one login for your product and the rest of their tools. Single sign-on (SSO) does that by letting their identity provider prove who the user is, while your application still decides what that user may do.
SSO is not “we turned off passwords.” It is a handoff between their directory and your session, with a clear way to turn access off when someone leaves.
The user hits your app. You have no session, so you send them to the company’s identity provider (IdP). They authenticate there, often with the same login they use for email. The IdP sends you a signed proof: this person, this email, these groups, at this time. You create a session and let them in.
Two protocols cover almost every enterprise deal:
In both cases your app is the relying party. You do not collect their corporate password.
User opens your app
↓
No session → redirect to the company IdP
↓
User signs in at the IdP (and passes MFA there)
↓
IdP returns a signed assertion or code
↓
Your backend validates signature, audience, and expiry
↓
You map their identity to a user and a tenant
↓
You issue your own session
Validate on the server. A signature check inside the browser is not the control. Check audience (it was meant for your app), issuer (it came from their IdP), and expiry. Reject anything reused past its lifetime.
The IdP says who the person is. Your app says which tenant they belong to and which role they have. A group named “Admins” in their directory is a hint you map on purpose. It is not automatically your superuser role.
Store the stable subject id from the IdP, not only the email. People change emails. The subject id is how you keep one user when that happens.
Just-in-time provisioning can create the user on first login. For stricter tenants, require an invite first so a random employee in their directory cannot appear inside your customer’s books.
SSO fails in production when a departed employee still has a session. Plan for:
MFA belongs at the IdP for workforce SSO. Do not ask the user to enroll a second, weaker factor in your app unless the contract requires step-up for a specific action, such as changing a payout account.
Each customer organization has its own IdP config: entity id or client id, login URL, certificate or issuer, and the email domain allowed to use it. Isolate that config per tenant. One company’s certificate must not validate another company’s users.
Test with their IdP’s sandbox or a trial tenant before go-live: first login, wrong audience, expired assertion, user removed from the group, and login from an email domain you did not allow. Offer a break-glass admin that is not tied to SSO, locked down and monitored, so a bad certificate change cannot strand the customer.
Enterprise SSO works when their IdP proves identity, your server checks the proof, and your app still owns tenant, role, and session lifetime. Map groups deliberately, revoke on a directory disable, and keep one break-glass path that is harder to use than the happy login.
At KIS Technology, we help businesses transform their ideas into secure and scalable digital solutions through software development, API integration, and quality engineering.
Build smarter. Build securely. Build for growth.
Connect with our Founder: