See api-docs Menu

Set Password by ID Using Salt and SHA-256

Initially set or subsequently change a user’s password.

Note that this API cannot verify that the password value supplied meets the password complexity requirements set for the user’s account. If this is a concern, and you use a third-party directory like AD or LDAP, you can use the cleartext version of this API, which can update the password in a third-party directory directly, and enforces the password complexity requirements of the third-party directory. Please note that neither of these APIs enforces OneLogin password policies, in keeping with the Change Password administrative functionality in the OneLogin admin UI.

Resource URL

https://api.<us_or_eu>.onelogin.com/api/1/users/
set_password_using_salt/:id

Header Parameters

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 the Manage All scope only.

Content-Type

required

string

Set to application/json.

Resource Parameter

id

required

integer

Set to the id of the user for which you want to set or reset a password. If you don’t know the user’s id, use the Get Users API call to return all users and their id values.

Request Parameters

password

required

string

Set to the password value using a SHA-256-encoded value. If you are including your own value in your request, prepend the salt value to the cleartext password value before SHA-256-encoding it.

For example, if your salt value is 11xxxx1 and your cleartext password value is P@33w0rd1, the value you need to SHA-256-encode is 11xxxx1P@33w0rd1. The resulting encoded value would be 9fb8dc1cdabee85d13f5b4ba680a5e71cb8c80e78e5ffe8c01b698fa39346006.

password_confirmation

required

string

This value must match the password value.

password_algorithm

required

string

Set to salt+sha256.

password_salt

string

To provide your own salt value, include this parameter. For example: "password_salt":"11xxxx1"

The API supports a salt value that is up to 40 characters long.

If you provide your own salt value, prepend it to the password value before SHA-256-encoding it. See the password description above.

If instead you want OneLogin to provide the salt value; include a blank parameter, "password_salt": "", or leave the parameter out of the request entirely.

Sample Request Body

{
   "password":"xxxxx637aead4030a653f29dae62f1542d67484342c00627a65066e05c5f0",
   "password_confirmation":"xxxxx637aead4030a653f29dae62f1542d67484342c00627a65066e05c5f0",
   "password_algorithm":"salt+sha256",
   "password_salt":"11xxxx1"
}

Sample Response

{
    "status": {
        "error": false,
        "code": 200,
        "type": "success",
        "message": "Success"
 }
}

Here are a few different errors that will return a 400 Bad Request status code.

{
  "status": {
    "error": true,
    "code": 400,
    "type": "bad request",
    "message": {
      "attribute": "id",
      "description": "ID is incorrect"
    }
 }
}

Typically, the following error means that the Authorization header is missing or incorrectly formatted. The Authorization header should use this format: bearer:<access_token>.

{
    "status": {
        "error": true,
        "code": 400,
        "type": "bad request",
        "message": "Authorization Information is incorrect"
 }
}

{
    "status": {
        "error": true,
        "code": 400,
        "type": "bad request",
        "message": "Content Type is not specified or specified incorrectly. 
                    Content-Type header must be set to application/json"
 }
}

{
    "status": {
        "error": true,
        "code": 400,
        "type": "bad request",
        "message": "password and password_confirmation must be same"
    }
}

{
    "status": {
        "error": true,
        "code": 400,
        "type": "bad request",
        "message": "setting password requires these parameters => password 
                    password_confirmation password_algorithm "
    }
}

{
    "status": {
        "error": true,
        "code": 400,
        "type": "bad request",
        "message": "password_algorithm must be => salt+sha256"
    }
}

{
    "status": {
        "error": true,
        "code": 400,
        "type": "bad request",
        "message": "Input JSON is not valid"
    }
}

Here are a few different errors that will return a 401 Unauthorized status code.

Typically, the following error means that the access token used to make the call was generated using API credentials that have insufficient permissions. This API can be called using the Manage All scope only.

{
    "status": {
        "error": true,
        "code": 401,
        "type": "Unauthorized",
        "message": "Insufficient Permission"
 }
}

Typically, the following error means that the access token is invalid.

{
    "status": {
        "error": true,
        "code": 401,
        "type": "Unauthorized",
        "message": "Authentication Failure"
 }
}
{
    "status": {
        "error": true,
        "code": 403,
        "type": "forbidden",
        "message": "user is not authorized to access this User"
 }
}
{
  "status": {
    "error": true,
    "code": 404,
    "type": "not found",
    "message": "User for id 9999999999999999 was not found"
 }
}

Postman Collection

Replace sample variables indicated by < > in the sample request body with your actual values. Also, be sure to set Postman-specific environment variables indicated by {{ }}.

Download for the Users API

Sample Code

cURL

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

curl 'https://api.<us_or_eu>.onelogin.com/api/1/users/set_password_using_salt/<id>' \
-X PUT \
-H "Authorization: bearer:<access_token>" \
-H "Content-Type: application/json" \
-d '{
    "password": "<password>",
    "password_confirmation": "<password_confirmation>",
    "password_algorithm": "salt+sha256"
}'

Python

See Work with OAuth 2.0 Tokens, Users, and Roles.


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.