Aksha Malik
04/02/2026, 1:03 PMDevRev
04/02/2026, 1:04 PMconst email = getEmailInput();
const password = getPasswordInput();
if (isSSODomain(email)) {
// Proceed with SSO login flow without checking the password
} else {
// Validate the password for normal email/password flow
validatePassword(password);
}
In this code:
• getEmailInput() retrieves the email input from the user.
• getPasswordInput() retrieves the password input.
• isSSODomain(email) checks if the email domain is associated with SSO.
• validatePassword(password) is called only if the email domain does not match SSO.
Conclusion
By implementing this conditional check, you can effectively manage the sign-up/sign-in process while ensuring that the password validation is only performed when necessary. If you need further assistance or have more questions, feel free to ask!Akash Jivane
04/02/2026, 2:22 PMtenant.enforceSSO is True → route to the SSO action (password is ignored entirely)
• Else if ssoEnabled is True → route to the SSO action
• Else → route to the Email/Password authentication action (password is validated here)Akash Jivane
04/02/2026, 2:23 PMssoEnabled automatically checks whether a tenant has an SSO configuration matching the user's email domain — Descope resolves this for you.
• tenant.enforceSSO checks if SSO is mandatory for that tenant.
• Because the SSO action path never calls the password verification step, the password input is silently ignored for SSO-domain users.Akash Jivane
04/02/2026, 2:24 PMAksha Malik
04/02/2026, 2:43 PMAkash Jivane
04/02/2026, 3:14 PMAksha Malik
04/02/2026, 3:18 PMAkash Jivane
04/02/2026, 3:44 PM{{device.location.origin}}/sso-login/ncm, and it's opening in a new tab.
Replace the Redirect to URL step with the built-in SSO action from the Descope flow builder. The SSO action handles the IdP redirect within the same flow context so the PKCE code exchange completes correctly. You can also pass form.email as a Login Hint inside the SSO action to pre-fill the email at the IdP side.
2. Your Condition block is currently set to check tenant.enforceSSO is True AND ssoEnabled is True. Because both must be true simultaneously, users whose email domain has SSO configured but not enforced will still fall through to email/password.
Use OR logic — if either condition is met, route to SSO. better use as two separate branches.Akash Jivane
04/02/2026, 3:45 PMAksha Malik
04/02/2026, 3:53 PMAkash Jivane
04/02/2026, 4:41 PM<mailto:amalik@nucompass.com|amalik@nucompass.com>, which means both tenant.enforceSSO and ssoEnabled are evaluating to false.
The ssoEnabled key works by checking whether any tenant in your Descope project has an SSO configuration with a matching email domain. Right now, <http://nucompass.com|nucompass.com> is not configured as an SSO domain for any tenant — so Descope falls back to password.
Add the SSO domain to your tenant -
1. Go to Descope Console → Tenants
2. Select the relevant tenant
3. Go to Authentication Methods → SSO
4. Add <http://nucompass.com|nucompass.com> as an SSO domain
Once saved, ssoEnabled will return true for any @nucompass.com email and the flow will route correctly to SSO.
Let us know once you've added the domain!Aksha Malik
04/02/2026, 4:48 PMAksha Malik
04/02/2026, 4:51 PMAkash Jivane
04/02/2026, 4:58 PMssoEnabled will still return false even if the domain is listed.Aksha Malik
04/02/2026, 5:03 PMAksha Malik
04/02/2026, 5:03 PMAksha Malik
04/02/2026, 5:04 PMAkash Jivane
04/02/2026, 5:14 PMAksha Malik
04/02/2026, 5:19 PMAkash Jivane
04/02/2026, 5:27 PMname="email" and make sure it's not marked as external-input?
The ssoEnabled key needs form.email to be populated to check the domain, and it looks like the email isn't being passed into the flow context from your Login screen.
Let us know if that helps!Aksha Malik
04/02/2026, 5:27 PMAksha Malik
04/02/2026, 5:44 PMAkash Jivane
04/02/2026, 5:45 PM