Hi,
We’re implementing a secure fund transfer workflow in our application that requires additional security measures. We want to ensure that users must complete MFA verification for every fund transfer operation, not just once per session.
Current Implementation
-
Frontend: Using auth0-react SDK
-
Authentication: Using loginWithRedirect with scope parameter including transfer:funds
-
Backend: Validating access tokens with the appropriate scopes
-
Following the Step-up Authentication pattern documented here:
(https://auth0.com/docs/secure/multi-factor-authentication/step-up-authentication/configure-step-up-authentication-for-apis#validate-access-tokens-for-mfa)
The Issue
Currently, once a user completes MFA and obtains an access token with the transfer:funds scope, they can perform multiple transfers without re-authenticating with MFA. The token remains valid throughout its lifetime.
What We Need
- Force MFA verification before each fund transfer operation
- Invalidate the previous access token after the user completes MFA and performs a transfer
Specific Questions
-
Is it possible to selectively invalidate only access tokens with the transfer:funds scope while preserving tokens with other scopes?
-
If we invalidate a refresh token that was used to obtain an access token with the transfer:funds scope, will that also invalidate tokens with other scopes (like view:balance)?
-
Can we implement scope-based token invalidation rather than invalidating all tokens for a user?
We want our users to re-authenticate for sensitive operations (transfers) but maintain their session for less sensitive operations (checking balances).
Any guidance or sample implementations would be greatly appreciated.
Thank you!