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 phone as a factor in the Dashboard or using the Management API.
Enroll with SMS or voice
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 SMS or voice, they enroll with a phone number that can be challenged either with SMS or voice. Specific the parameters below to call the endpoint. The oob_channels
parameter indicates how you want to send the code to the user (SMS or voice).
Parameter | Value |
---|---|
authentication_types | [oob] |
oob_channels | [sms] or [voice] |
phone_number | +11…9 , the phone number E.164 format |
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 SMS or voice enrollment
Users should receive a message with a 6-digit code that they need to provide to the application. To complete enrollment, make aPOST
request to the . You need to include the oob_code
returned in the previous response, and the binding_code
with the value received in the message.
Challenge with SMS or voice
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 OTP
To trigger a 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:binding_code
parameter. You can verify the code and get authentication tokens using the OAuth0 Token endpoint, specifying the binding_code
and oob_code
returned by the previous call: