I'm adding Google-based SSO to an existing application where some sensitive actions currently require the user to re-enter their password, such as changing security settings or performing destructive operations. SSO users do not have a password stored locally, so I need a suitable replacement for that confirmation step.
Possible approaches include requesting step-up authentication from the identity provider, requiring MFA, sending a one-time email code, or creating a separate application password. The application also has an older security-question feature, but using it for high-risk actions seems questionable.
My main concern is that an identity-provider session may already be active. If re-authentication silently reuses that session, it may not provide meaningful additional assurance. What pattern should an application use to confirm a user's identity before allowing sensitive actions when authentication is handled through SSO?
4 Answers
I would not add a local password just for SSO users. A reasonable order of preference is recent identity-provider authentication, provider-managed MFA or WebAuthn, and then a carefully implemented one-time code as a fallback. Requiring confirmation only for clearly defined high-impact actions also makes the security model easier to explain and reduces unnecessary interruptions.
MFA is generally best handled by the identity provider rather than implemented separately in every application. For especially sensitive operations, use a step-up flow that requests stronger authentication or a recent authentication event. Standards such as OAuth step-up authentication can help structure this. The right design also depends on the threat you are addressing—account takeover, an unattended unlocked session, or accidental destructive actions may each call for different controls.
Use identity-provider step-up authentication when possible. For Google, an authorization request can use parameters such as `prompt=login` or an appropriate `max_age` value, then the application should inspect the returned authentication time and require that it is recent. That helps distinguish a genuinely recent authentication from simply reusing an old application session. Avoid creating a separate application password, since it introduces another credential system to maintain and undermines the single sign-on model.
If provider step-up authentication is unavailable or would make the experience too disruptive, a short-lived email OTP can be a practical fallback for destructive actions. It is common and relatively easy for users to understand, but it should be treated as weaker assurance because access to the email account may be linked to the same SSO identity. Use a short expiration, limit attempts, record the event, and never use security questions as the primary protection for high-risk actions.

Related Questions
How to Build a Custom GPT Journalist That Posts Directly to WordPress
Cloudflare Origin SSL Certificate Setup Guide
How To Effectively Monetize A Site With Ads