Manage Authentication Factors with Authentication API
Describes how to manage MFA authenticator factor enrollments for applications using the Auth0 MFA API.
Before you start
Enable the MFA grant type for your application. To learn more, read Update Grant Types.
Auth0 provides several API endpoints to help you manage the authenticators you’re using with an application for (MFA). You can use these endpoints to build a complete user interface that lets users manage their authenticator factors.
To call the MFA API to manage enrollments, you first need to obtain an for the MFA API.To use the MFA API as part of an authentication flow, you can follow the steps detailed in Authenticate With Resource Owner Password Grant and MFA. If you are building a user interface to manage authentication factors, you’ll need to obtain a token you can use for the MFA API at any moment, not only during authentication.An MFA access token, or an access token with an https://{yourDomain}/mfa/ , simultaneously authenticates and instigates an MFA challenge request. Factor enablement in your tenant and enrollment by your users determine whether the MFA challenge initiates:
If your tenant allows for multiple factor enrollment and your users enroll in a valid factor (excluding email), such as a one-time password (OTP), the user is issued the MFA challenge upon login.
If your users are not enrolled with any authentication factors, or are only enrolled with the email factor, the MFA token is minted and the user not issued a challenge.
The default expiry time of access tokens with the https://{yourDomain}/mfa/* audience is 10 minutes. This value cannot be configured.
If you are using Universal Login, redirect to the Authorize endpoint, specifying the https://{yourDomain}/mfa/ audience.
When https://{yourDomain}/mfa/ is specified as the audience, MFA is enforced. When end users enable Remember this browser while .../mfa is specified as audience, the setting will have no effect.Auth0 recommends that tenant administrators create an action that sets allowRememberBrowser to false. This will hide Remember this browser from view in the end user’s experience.
If you are using the Password Grant (ROPG), you have 3 options:
Ask for the https://{yourDomain}/mfa/ audience when logging-in, and use a refresh token to refresh it later.
If you need to list and delete authenticators, ask the user to authenticate again with /oauth/token, specifying the https://{yourDomain}/mfa/ audience. Users will need to complete MFA before being able to list and/or delete authentication factors.
If you only need to list authenticators, ask the user to authenticate again using /oauth/token with username/password. The endpoint will return an mfa_required error, and an mfa_token you can use to list authenticators. Users will need to provide their password to see their authenticators.
To get a list of the authenticators for a user, you can call the MFA Authenticators endpoint:You should receive information about the authenticator type(s) in the response:
For the purposes of building a user interface for end users to manage their factors, you should ignore authenticators that have active as false. Those authenticators are not confirmed by users, so they can’t be used to challenge for MFA.The MFA API will list the following enrollments depending on the authenticator type:
Authenticator
Actions
Push and OTP
If push is enabled, Auth0 also creates an OTP enrollment. You will see both when listing enrollments.
SMS and Voice
If both SMS and voice are enabled, when a user enrolls with either SMS or voice, Auth0 automatically creates two authenticators for the phone number, one for SMS and another for voice.
Email
All verified emails will be listed as authenticators.
To delete an associated authenticator, send a DELETE request to the MFA Authenticators endpoint replacing the AUTHENTICATOR_ID with the relevant authenticator ID. You can get the ID when you list authenticators.If an mfa_token was used to list authenticators, users will need to complete MFA to obtain an access token with an audience of https://{yourDomain}/mfa/ in order to delete an authenticator.If the authenticator was deleted, a 204 response is returned.When you delete an authenticator, the following actions take place depending on the authenticator type:
Authenticator
Action
Push and OTP
When a user enrolls a push authenticator, Auth0 also enrolls OTP. If you delete either of them, the other one will also be deleted.
SMS and Voice
When a user enrolls in either SMS or Voice,. Auth0 creates two authenticators, SMS and voice. If you delete either of them, the other will will also be deleted.
Email
All verified emails listed as authenticators, but you can’t delete them. You can only delete email authenticators that are enrolled explicitly.