Auth0 MFA API

The MFA API from Auth0 — 4 operation(s) for mfa.

OpenAPI Specification

auth0-mfa-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Auth0 Authentication actions MFA API
  description: Auth0 Authentication API. Endpoints for authentication and authorization using OpenID Connect, OAuth 2.0, SAML, WS-Federation, and Passwordless flows.
  version: 1.0.0
servers:
- url: '{auth0_domain}'
  description: The Authentication API is served over HTTPS.
  variables:
    auth0_domain:
      description: Auth0 domain
      default: https://demo.us.auth0.com
tags:
- name: MFA
paths:
  /mfa/challenge:
    post:
      operationId: mfa_challenge
      tags:
      - MFA
      summary: Auth0 Request a Challenge for Multi-factor Authentication
      description: Request a challenge for multi-factor authentication (MFA) based on the challenge types supported by the application and user. The challenge_type is how the user will get the challenge and prove possession. Supported challenge types include otp for one-time password (OTP), oob for SMS/Voice messages or out-of-band (OOB). If OTP is supported by the user and you don't want to request a different factor, you can skip the challenge request and verify the multi-factor authentication with a one-time password.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                mfa_token:
                  type: string
                  description: The token received from mfa_required error.
                client_id:
                  type: string
                  description: Your application's Client ID.
                client_assertion:
                  type: string
                  description: A JWT containing a signed assertion with your application credentials. Required when Private Key JWT is your application authentication method.
                client_assertion_type:
                  type: string
                  description: The value is urn:ietf:params:oauth:client-assertion-type:jwt-bearer. Required when Private Key JWT is the application authentication method.
                client_secret:
                  type: string
                  description: Your application's Client Secret. Required when the Token Endpoint Authentication Method field at your Application Settings is Post or Basic.
                challenge_type:
                  type: string
                  description: A whitespace-separated list of the challenges types accepted by your application. Accepted challenge types are oob or otp. Excluding this parameter means that your client application accepts all supported challenge types.
                authenticator_id:
                  type: string
                  description: The ID of the authenticator to challenge. You can get the ID by querying the list of available authenticators for the user as explained on List authenticators below.
      responses:
        '200':
          description: Successful response
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '501':
          $ref: '#/components/responses/NotImplemented'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /mfa/associate:
    post:
      operationId: mfa_associate
      tags:
      - MFA
      summary: Auth0 Associates or Adds a New Authenticator for Multi-factor Authentication (MFA).
      description: 'If the user has active authenticators, an Access Token with the enroll scope and the audience set to https://{yourDomain}/mfa/ is required to use this endpoint.

        If the user has no active authenticators, you can use the mfa_token from the mfa_required error in place of an Access Token for this request.

        After an authenticator is added, it must be verified. To verify the authenticator, use the response values from the /mfa/associate request in place of the values returned from the /mfa/challenge endpoint and continue with the verification flow.

        A recovery_codes field is included in the response the first time an authenticator is added. You can use recovery_codes to pass multi-factor authentication as shown on Verify with recovery code above.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                client_id:
                  type: string
                  description: Your application's Client ID.
                client_assertion:
                  type: string
                  description: A JWT containing a signed assertion with your application credentials. Required when Private Key JWT is your application authentication method.
                client_assertion_type:
                  type: string
                  description: The value is urn:ietf:params:oauth:client-assertion-type:jwt-bearer. Required when Private Key JWT is the application authentication method.
                client_secret:
                  type: string
                  description: Your application's Client Secret. Required when the Token Endpoint Authentication Method field in your Application Settings is Post or Basic.
                authenticator_types:
                  type: array
                  items:
                    type: string
                  description: The type of authenticators supported by the client. Value is an array with values "otp" or "oob".
                oob_channels:
                  type: array
                  items:
                    type: string
                  description: The type of OOB channels supported by the client. An array with values "auth0", "sms", "voice". Required if authenticator_types include oob.
                phone_number:
                  type: string
                  description: The phone number to use for SMS or Voice. Required if oob_channels includes sms or voice.
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  recovery_codes:
                    type: array
                    items:
                      type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '501':
          $ref: '#/components/responses/NotImplemented'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /mfa/authenticators:
    get:
      operationId: mfa_authenticators
      tags:
      - MFA
      summary: Auth0 Returns a List of Authenticators Associated with Your Application.
      description: 'To access this endpoint you must set an Access Token at the Authorization header, with the following claims:

        scope: read:authenticators

        audience: https://{yourDomain}/mfa/

        '
      parameters:
      - name: ACCESS_TOKEN
        in: header
        required: true
        schema:
          type: string
        description: The Access Token obtained during login.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    authenticator_type:
                      type: string
                    oob_channels:
                      type: string
                      nullable: true
                    name:
                      type: string
                      nullable: true
                    active:
                      type: boolean
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '501':
          $ref: '#/components/responses/NotImplemented'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /mfa/authenticators/{AUTHENTICATOR_ID}:
    delete:
      operationId: mfa_authenticators_delete
      tags:
      - MFA
      summary: Auth0 Deletes an Associated Authenticator Using Its ID.
      description: 'You can get authenticator IDs by listing the authenticators.

        To access this endpoint, you must set an Access Token at the Authorization header, with the following claims:

        scope: remove:authenticators

        audience: https://{yourDomain}/mfa/

        '
      parameters:
      - name: ACCESS_TOKEN
        in: header
        required: true
        schema:
          type: string
        description: The Access Token obtained during login.
      - name: AUTHENTICATOR_ID
        in: path
        required: true
        schema:
          type: string
        description: The ID of the authenticator to delete.
      responses:
        '204':
          description: Successful response. No content.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '501':
          $ref: '#/components/responses/NotImplemented'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
components:
  responses:
    NotImplemented:
      description: Not Implemented
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
              error_description:
                type: string
    ServiceUnavailable:
      description: Service Unavailable
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
              error_description:
                type: string
    InternalServerError:
      description: Internal Server Error
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
              error_description:
                type: string
    TooManyRequests:
      description: Too Many Requests
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
              error_description:
                type: string
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
              error_description:
                type: string
    NotFound:
      description: Not Found
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
              error_description:
                type: string
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
              error_description:
                type: string
    MethodNotAllowed:
      description: Method Not Allowed
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
              error_description:
                type: string