Toggling two-factor authentication for a user account

  1. Authenticate to the cloud platform via the Python shell.

    The following variables should be available now:

    >>> base_url  # the base URL of the API
    'https://eu2-cloud.acronis.com/api/2'
    >>> auth  # the 'Authorization' header value with the access token
    {'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6ImMwMD...'}
    >>> tenant_id  # the UUID of the tenant to which the token provides access
    'ede9f834-70b3-476c-83d9-736f9f8c7dae'
    
  2. Assign the user_id variable the UUID of a user account created via the API or a user account found via search:

    >>> user_id = created_user_id
    >>> user_id
    '1c234e69-5469-424a-a6d1-ff5658b387a6'
    
  3. Define a variable named mfa_status, and then assign an object with the enabled key containing desired status of two-factor authentication to this variable:

    >>> mfa_status = {
    ...     'enabled': True
    ... }
    
  4. Convert the mfa_status object to a JSON text:

    >>> mfa_status = json.dumps(mfa_status, indent=4)
    >>> print(mfa_status)
    {
        "enabled": true
    }
    
  5. Send a PUT request with the JSON text to the /users/{user_id}/mfa/status endpoint:

    >>> response = requests.put(
    ...     f'{base_url}/users/{user_id}/mfa/status',
    ...     headers={'Content-Type': 'application/json', **auth},
    ...     data=mfa_status,
    ... )
    
  6. Check the status code of the response:

    >>> response.status_code
    200
    

    Status code 200 means that the platform has changed the status of two-factor authentication for the user account.

    A different status code means that an error has occurred. For the details, refer to “Status and error codes”.