Add Multi-Factor Authentication to protect user accounts and require additional verification for sensitive operations.
Multi-Factor Authentication (MFA) requires users to provide two or more verification factors to access their accounts. Auth0 supports multiple MFA factors and enables step-up authentication for sensitive operations.
FactorTypeDescriptionTOTPSomething you haveTime-based one-time passwords (Google Authenticator, Authy)SMSSomething you haveOne-time codes via text messageEmailSomething you haveOne-time codes via emailPushSomething you havePush notifications via Auth0 Guardian appWebAuthnSomething you have/areSecurity keys, biometrics, passkeysVoiceSomething you haveOne-time codes via phone callRecovery CodeBackupOne-time use recovery codes
ConceptDescriptionacr_valuesRequest MFA during authenticationamr claimAuthentication Methods Reference - indicates how user authenticatedStep-up authRequire MFA for specific actions after initial loginAdaptive MFAConditionally require MFA based on risk signals
Go to Security → Multi-factor Auth
Enable desired factors (TOTP, SMS, etc.)
Configure Policies:
bash
# View current MFA configuration
auth0 api get "guardian/factors"
# Enable TOTP (One-time Password)
auth0 api put "guardian/factors/otp" --data '{"enabled": true}'
# Enable SMS
auth0 api put "guardian/factors/sms" --data '{"enabled": true}'
# Enable Push notifications
auth0 api put "guardian/factors/push-notification" --data '{"enabled": true}'
# Enable WebAuthn (Roaming - Security Keys)
auth0 api put "guardian/factors/webauthn-roaming" --data '{"enabled": true}'
# Enable WebAuthn (Platform - Biometrics)
auth0 api put "guardian/factors/webauthn-platform" --data '{"enabled": true}'
# Enable Email
auth0 api put "guardian/factors/email" --data '{"enabled": true}'
bash
# Set MFA policy: "all-applications" or "confidence-score"
auth0 api patch "guardian/policies" --data '["all-applications"]'
Step-up auth requires MFA for sensitive operations without requiring it for every login.
acr_values Parameter#Request MFA by including acr_values in your authorization request:
text
acr_values=http://schemas.openid.net/pape/policies/2007/06/multi-factor
The general pattern for all frameworks:
amr claim)acr_values parameterFor complete framework-specific examples, see Examples Guide:
This skill is split into multiple files for better organization:
Complete code examples for all frameworks:
Learn how to validate MFA status on your backend:
Advanced MFA implementation patterns:
Common patterns and troubleshooting:
auth0-quickstart - Basic Auth0 setupauth0-passkeys - WebAuthn/passkey implementationauth0-actions - Custom authentication logic