Home / Knowledge hub / SSO misconfiguration
Knowledge hub
SSO misconfiguration
A single sign-on setup that trusts the wrong issuer or accepts the wrong audience.
What it means
SSO misconfiguration is a mistake in how your app trusts a single sign-on provider. The sign-in protocols are sound, but they only work if your app checks the right things: who issued the statement, who it was meant for, whether it is signed and whether it has expired.
When one of those checks is missing or too loose, the app accepts a statement that was never meant for it. The sign-in page still works for honest users, which is why the flaw can sit unnoticed for years. That makes it a quiet kind of flaw, and one that tends to be found only by someone deliberately sending the wrong input.
Why it matters
The result is usually account takeover, and often of the most powerful accounts. A statement from a different company's tenant, a different application or an unverified email address can be enough to be treated as your administrator. Because sign-in sits at the front door of everything, the effect spreads to every part of the product.
It also hits the customers you most want. Large buyers connect their own identity provider, and a flaw in how you handle that connection can mix up one customer's people with another's. That is a data breach in a product that was only meant to make sign-in easier.
How it shows up
Common causes are accepting tokens from any tenant of a shared identity provider, not checking the audience, linking accounts by email address without confirming ownership, and loose redirect address rules. Also check that the app refuses unsigned statements and that a customer's own setup cannot name someone else's domain.
Look at the callback in your code and at the settings in both systems. Test with a statement issued for another application or tenant, and with a changed email claim. See OpenID Connect and SAML for the checks each protocol expects.
Questions people ask
SSO misconfiguration, answered
Is SSO misconfiguration a flaw in SAML or OpenID Connect?
Usually not. The protocols specify what to check. The flaw is in an app that skips or loosens a check, or in settings that trust more than they should.
What is an audience check?
Each statement names who it was issued for. Your app must confirm that this is itself. Without that, a statement issued for another app can be replayed against yours.
Why is matching users by email risky?
If the provider does not verify email ownership, an attacker can register someone else's address and be matched to their account. Match on a stable identifier, and treat email as a hint.
Does a customer's own identity provider add risk?
It can. You are trusting an issuer you do not run. Bind each connection to one customer, restrict the domains it may assert, and never let it create administrators in another customer's space.
How do we test our SSO setup?
Replay a statement for another application, change the audience and email claims, remove the signature, and use an expired one. A correct app refuses each of them.
Sources
Where this comes from
Related
Terms that sit next to this one
Single sign-on
One company identity for many applications, granted and removed in one place.
Identity provider (IdP)
The service that signs people in and tells your app who they are.
SAML
An older XML standard for single sign-on between a company and its apps.
OpenID Connect
A sign-in layer on top of OAuth that tells your app who the user is.
SAML signature wrapping
Moving a signed SAML assertion so the app reads attacker-chosen content instead.
What does the callback accept?
Sign-in callbacks are a common source of business-logic flaws, and we test them on the running app, proving what a mismatched or forged statement can reach. Each finding carries the request and response. Book a pilot on one app.
Or start with a $199 pilot on one application: thirty days, success criteria agreed before day one, credited against the annual if you convert.