See api-docs Menu

Enroll an Authentication Factor


Use this API to enroll a user with a given authentication factor.

If the authentication factor requires confirmation to complete, then the device will have an active state of false otherwise it will have an active state of true (corresponding to devices that are either pending confirmation or not)

To change the active state of the device to true, the OTP device‚Äôs id would need to be supplied to the Activate a Factor endpoint. Then the `otp_code` would need to be sent to the Verify a Factor endpoint.

Currently the API only supports enrollment of the OneLogin SMS factor. Other factors can be enrolled manually by the user.

Resource URL

https://api.<us_or_eu>.onelogin.com/api/1/users/<user_id>/otp_devices

Header Parameter

Authorization

required

string

Set to bearer:<access_token>.

Set <access_token> to the access token you generated using the Generate Token API.

The access token must have been generated using an API credential pair created using the scope required to call this API. This API can be called using any one of the following scopes: Read Users, Manage users, Read All, or Manage All.

Resource Parameter

user_id

required

integer

Set to the id of the user.

If you don’t know the user’s id, use the Get Users API call to return all users and their id values.

Request Parameter

factor_id

required

integer

The identifier of the factor to enroll the user with.

See Get Available Factors for a list of possible id values.

display_name

required

string

A name for the users device

number

required

string

The phone number of the user in E.164 format.

e.g. +14156456830

Request Body

{
  "factor_id": 16282,
  "display_name":  "Rich's Phone",
  "number": "+1xxxxxxxxxx"
}

Sample Response

{
    "status": {
        "type": "success",
        "code": 200,
        "message": "Success",
        "error": false
    },
    "data": [
        {
            "active": false,
            "default": true,
            "state_token": "f2402de2b446abd86ea5aa1f79b3fa72b4befacd",
            "auth_factor_name": "OneLogin SMS",
            "phone_number": "+1xxxxxxxxxx",
            "type_display_name": "OneLogin SMS",
            "needs_trigger": true,
            "user_display_name": "Rich's Phone",
            "id": 525509
        }
    ]
}
{
    "status": {
        "error": true,
        "code": 400,
        "type": "bad request",
        "message": "Authorization Information is incorrect"
    }
}
{
    "status": {
        "type": "bad request",
        "code": 400,
        "message": "User does not exist",
        "error": true
    }
}
{
    "status": {
        "error": true,
        "code": 401,
        "type": "Unauthorized",
        "message": "Authentication Failure"
    }
}

Response Elements

active

True = enabled (used successfully for authentication at least once). False = pending (registered but never used).

default True = is user’s default MFA device for OneLogin.
state_token A short lived token that is required to Verify the Factor. This token expires in 120 seconds.
auth_factor_name "Official" authentication factor name, as it appears to administrators in OneLogin.
phone_number

For OTP codes sent via SMS, the phone number receiving the SMS message.

type_display_name Authentication factor display name as it appears to users upon initial registration, as defined by admins at Settings > Authentication Factors.
needs_trigger

true: You MUST Activate this Factor to trigger an SMS or Push notification before Verifying the OTP code.
false: No Activation required. You can Verify the OTP immediately.

MFA factors that provide both push notifications (user accepts notification) and pull code submission (user initiates code submission from device or enters it manually) should appear twice; once with needs_trigger: true and once with needs_trigger: false.

user_display_name Authentication factor display name assigned by users when they enroll the device.
id MFA device identifier.

Sample Code

cURL

Replace sample values indicated by < > with your actual values.

curl 'https://api.<us_or_eu>.onelogin.com/api/1/users/<user_id>/otp_devices' \
-X POST \
-H "Authorization: bearer: <access_token>" \
-d '{
  "factor_id": 16282,
  "display_name":  "Rich's Phone",
  "number": "+1xxxxxxxxxx"
}'

Have a Question?

Have a how-to question? Seeing a weird error? Ask us about it on StackOverflow.

Found a bug? Submit a support ticket.

Have a product idea or request? Share it with us in our Ideas Portal.

StackOverflow discussions about "[onelogin] mfa api"

  • 5
    Votes

    Q: AWS API credentials with OneLogin SAML and MFA

    Asked Oct 30 2016

    fully re-authenticate to OneLogin (including MFA) every 60 minutes as the AWS temporary credentials expire. I think that won't fly - our users are accustomed to permanent API credentials tied to a … We want to allow our users to retrieve a set of temporary CLI credentials for a given AWS role by signing in to OneLogin with password and MFA. We have a working solution, but it requires the user to …

  • 1
    Votes
    1
    Answers

    Q: Getting a SAML assertion after creating a session via API

    Asked Apr 04 2017

    Related to Accessing Third Party Apps After Creating A Session Via API Token and to AWS API credentials with OneLogin SAML and MFA Since AWS assumeRoleWithSAML temporary security credentials are … because of the short validity. It's totally odd to the web base OneLogin usage, where he is logged in once for the whole day or even week (depending on the policy). I know how to get a session via API …

  • 1
    Votes

    A: Getting a SAML assertion after creating a session via API

    Answered Apr 05 2017

    While being able to generate a SAML assertion for any user (without the need for MFA and a user/pass) seems like a good workaround, this is unfortunately fraught with security perils. An API that … hours. This wouldn't allow for MFA on an app policy, but we are building out the ability to request and verify MFA via API (coming soon) so you could implement MFA in your app (independent of any app …

  • 1
    Votes
    1
    Answers

    Q: Implement custom connector to in-house applications

    Asked Dec 05 2016

    have MFA enabled. I tried the API route but it requires the user to enter the MFA code every time they want to log in, which is great for security but users want simple solution. So I was suggested to … I am trying to figure out how custom connectors work or if it's the correct solution. Basically the company I work at wants to implement a "login using OneLogin" to our in-house applications and we …

  • 0
    Votes

    Q: Onelogin API - Verify Factor for SAML assertion when using Duo

    Asked Oct 11 2017

    I've been developing an application that hits the api/1/saml_assertion, https://developers.onelogin.com/api-docs/1/saml-assertions/generate-saml-assertion , endpoint of OneLogin with Duo as my MFAAPI url for Duo. The base64 encoded elements are the user's email, what I'm assuming is the user's Duo ID, and a number that I'm unsure about since it changes with every request. I'm assuming this …

Loading...