Prerequisites
Before you can use the MFA APIs, you’ll need to enable the MFA grant type for your application. Go to Auth0 Dashboard > Applications > Advanced Settings > Grant Types and select MFA.- Configure Push as a factor in the Dashboard or using the Management API.
Enroll with push
Get MFA token
Depending on when you are triggering enrollment, you can obtain an for using the MFA API in different ways:- If you are enrolling during authentication, see Authenticate With Resource Owner Password Grant and MFA.
- If you want to let the user enroll a factor at any moment, see Manage MFA Factor Enrollments.
Enroll authenticator
Make aPOST
request to the MFA Associate endpoint to enroll the user’s authenticator. The bearer token required by this endpoint is the MFA token obtained in the previous step.
To enroll with push, set the authenticator_types
parameter to [oob]
and the oob_channels
parameter to [auth0]
.
User is already enrolled
error, the user already has an MFA factor enrolled. Before associating another factor with the user, you must challenge the user with the existing factor.
If this is the first time the user is associating an authenticator, you’ll notice the response includes recovery_codes
. Recovery codes are used to access the user’s account in the event that they lose access to the account or device used for their second-factor authentication. These are one-time usable codes, and new ones are generated as necessary.
Confirm push enrollment
To confirm the enrollment, the end user will need to scan a QR code with thebarcode_uri
in the Guardian application, within the next 5 minutes.
Once that is done, the Guardian application will notify Auth0 that the user enrolled successfully. To know if that happened, poll the Auth0 with the oob_code
returned by the MFA Associate endpoint call.
authorization_pending
response, indicating that you need to call oauth_token
again in a few seconds:
active
is true
.
Challenge with push
Get MFA token
Get an MFA token following the steps described in Authenticate With Resource Owner Password Grant and MFA.Retrieve enrolled authenticators
To challenge the user, you need theauthenticator_id
for the factor you want to challenge. You can list all enrolled authenticators using the MFA Authenticators endpoint:
Challenge user with push
To trigger a push challenge,POST
to the MFA Challenge endpoint using the corresponding authenticator_id
and the mfa_token
.
Complete authentication using received code
If success, you receive the following response:Result | Description |
---|---|
authorization_pending | Error: If the challenge has not been accepted or rejected. |
slow_down | Error: If the polling is too frequent. |
access_token and refresh_token | If the challenge has been accepted; polling should be stopped at this point. |
invalid_grant | Error: If the challenge has been rejected: polling should be stopped at this point. |