miniature-waitress-95147
09/22/2025, 1:01 PMchilly-king-10285
09/22/2025, 1:02 PMchilly-king-10285
09/22/2025, 1:02 PMyaml selfservice: methods: totp: config: issuer: <http://ExampleIssuer.com|ExampleIssuer.com> enabled: true flows: settings: required_aal: highest_available # step-up for settings session: whoami: required_aal: highest_available # require MFA for app usage
Notes: - Users still need to enroll TOTP on their accounts after you enable it project-wide. [[TOTP](https://www.ory.sh/docs/kratos/mfa/totp)] - If you want to trigger a TOTP challenge on demand (dynamic step-up), initialize a login flow with aal=aal2 (and refresh=true if the session is already aal2). [[Step-up auth](https://www.ory.sh/docs/kratos/mfa/step-up-authentication)] If you’re on Ory Network, the same settings can be toggled in Console under Authentication → Two-factor auth. [[Step-up auth](https://www.ory.sh/docs/kratos/mfa/step-up-authentication); [Identities getting started](https://www.ory.sh/docs/identities/get-started/mfa)]miniature-waitress-95147
09/22/2025, 1:06 PMchilly-king-10285
09/22/2025, 1:07 PMchilly-king-10285
09/22/2025, 1:07 PMyaml selfservice: methods: totp: enabled: true config: issuer: <http://ExampleIssuer.com|ExampleIssuer.com> flows: settings: required_aal: highest_available session: whoami: required_aal: highest_available
- This combination enables TOTP and requires AAL2 both for app usage and for accessing settings, which compels users to enroll a second factor. [[Self-hosted MFA](https://www.ory.sh/docs/kratos/self-hosted/mfa); [Step-up auth](https://www.ory.sh/docs/kratos/mfa/step-up-authentication); [TOTP](https://www.ory.sh/docs/kratos/mfa/totp)] If you’re on Ory Network - Use Console → Authentication → Two-factor auth to toggle enforcement (Strict model is default: highest_available). [[Step-up auth](https://www.ory.sh/docs/kratos/mfa/step-up-authentication); [MFA get-started](https://www.ory.sh/docs/identities/get-started/mfa)]