Users
Users can perform a variety of actions in ThreatConnect depending on their user account type and their System and Organization role. In addition, users can be assigned to Workflow Cases, Workflow Tasks, and Task Groups.
Endpoint: /api/v3/security/users
Attention
Only API users with an Organization role of Organization Administrator can create, update, and delete users; however, they may not perform these actions for users whose System role is Administrator, Community Leader, Operations Administrator, or Super User. API users with any other Organization role can only retrieve users.
Endpoint Options
Available Fields
Send the following request to retrieve a list of fields, including each field’s name, description, and accepted data type, that can be included in the body of a POST or PUT request to the /v3/security/users
endpoint:
OPTIONS /v3/security/users?show=readonly
Alternatively, refer to the following table for a list of available fields that can be included in the body of a POST or PUT request to the /v3/security/users
endpoint:
Field |
Description |
Type |
Required for Creation? |
Updatable? |
---|---|---|---|---|
customTqlTimeout |
The maximum amount of time, in milliseconds, that ThreatConnect Query Language (TQL) queries made by the user will be allowed to run before timing out |
Integer |
FALSE |
TRUE |
disabled |
Determines whether the user’s account is disabled |
Boolean |
FALSE |
TRUE |
firstName |
The user’s first name |
String |
TRUE |
TRUE |
lastName |
The user’s last name |
String |
TRUE |
TRUE |
locked |
Determines whether the user’s account is locked |
Boolean |
FALSE |
TRUE |
logoutIntervalMinutes [1] |
The amount of time, in minutes, after which the user will be logged out of ThreatConnect |
Integer |
FALSE |
TRUE |
owner |
The Organization to which the user belongs |
String |
TRUE |
FALSE |
ownerRoles |
The user’s role within each Organization, Community, or Source to which they have access |
String |
TRUE |
TRUE |
password [2] |
The password for the user’s account |
String |
TRUE |
TRUE |
passwordResetRequired |
Determines whether the user needs to reset their password the next time they log into ThreatConnect |
Boolean |
FALSE |
TRUE |
pseudonym |
The user’s pseudonym |
String |
FALSE |
TRUE |
systemRole [3] |
The user’s System role |
String |
TRUE |
TRUE |
termsAccepted |
Determines whether to present the user with ThreatConnect’s terms of service the next time they log into ThreatConnect |
Boolean |
FALSE |
TRUE |
twoFactorResetRequired |
Determines whether to require the user to configure multi-factor authentication (MFA) for their account (or to reset MFA if the user already has it configured) |
Boolean |
FALSE |
TRUE |
uiTheme [4] |
Specifies whether to set the ThreatConnect user interface to a light or dark theme for the user (accepted values include “Light” and “Dark”) |
String |
FALSE |
TRUE |
userName |
The username for the user’s account |
String |
TRUE |
TRUE |
Include Additional Fields in Responses
When creating, retrieving, or updating data, you can use the fields
query parameter to include additional fields in the API response that are not included by default.
Send the following request to retrieve a list of fields you can include in responses returned from the /v3/security/users
endpoint:
OPTIONS /v3/security/users/fields
Filter Results
When retrieving data, you can use the tql
query parameter to filter results with ThreatConnect Query Language (TQL).
Send the following request to retrieve a list of valid TQL parameters you can use when including the tql
query parameter in a request to the /v3/security/users
endpoint:
OPTIONS /v3/security/users/tql
Create Users
Attention
Only API users with an Organization role of Organization Administrator can create users. However, they may not create users whose System role is Administrator, Community Leader, Operations Administrator, or Super User.
The following example illustrates the basic format for creating a user:
POST /v3/security/users
Content-Type: application/json
{
"firstName": "John",
"lastName": "Smith",
"userName": "[email protected]",
"password": "Password1!",
"owner": "Demo Organization",
"ownerRoles": {
"Demo Organization": "Standard User"
},
"systemRole": "User"
}
For example, the following request will create a new user who will be required to reset their password and enroll in MFA after logging into ThreatConnect for the first time:
POST /v3/security/users
Content-Type: application/json
{
"firstName": "Herschel",
"lastName": "Hodges",
"userName": "[email protected]",
"password": "Password1!",
"owner": "Demo Organization",
"ownerRoles": {
"Demo Organization": "Standard User"
},
"systemRole": "User",
"passwordResetRequired": true,
"twoFactorResetRequired": true
}
JSON Response
{
"data": {
"id": 12,
"userName": "[email protected]",
"firstName": "Herschel",
"lastName": "Hodges",
"owner": "Demo Organization",
"lastPasswordChange": "2022-09-07T12:11:13Z",
"uiTheme": "Light",
"termsAccepted": false,
"logoutIntervalMinutes": 0,
"systemRole": "User",
"disabled": false,
"locked": false,
"passwordResetRequired": true,
"twoFactorResetRequired": true
},
"message": "Created",
"status": "Success"
}
Refer to the Available Fields section for a list of available fields that can be included in the body of a POST request to the /v3/security/users
endpoint.
Note
Creating users in bulk is not supported at this time.
Retrieve Users
When retrieving data for users, additional fields will be included in the response for API users with an Organization role of Organization Administrator. In the examples used in the following subsections, the response an API user with an Organization role of Organization Administrator will receive is labeled JSON Response (Organization Administrator):.
Retrieve All Users
Send the following request to retrieve data for all users in the Organization in which your API user account resides:
GET /v3/security/users
JSON Response:
{
"data": [
{
"id": 1,
"userName": "[email protected]",
"firstName": "John",
"lastName": "Smith",
"pseudonym": "JMS",
"owner": "Demo Organization"
},
{
"id": 2,
"userName": "[email protected]",
"firstName": "Pat",
"lastName": "Jones",
"pseudonym": "patjones",
"owner": "Demo Organization",
},
{
"id": 3,
"userName": "11112222333344445555",
"firstName": "John",
"lastName": "Smith",
"pseudonym": "jsmithAPI",
"owner": "Demo Organization",
},
{...}
],
"status": "Success"
}
Retrieve a Specific User
Send a request in the following format to retrieve data for a specific user in the Organization in which your API user account resides:
GET /v3/security/users/{userId}
For example, the following request will retrieve data for the user whose ID is 3:
GET /v3/security/users/3
JSON Response:
{
"data": {
"id": 3,
"userName": "11112222333344445555",
"firstName": "John",
"lastName": "Smith",
"pseudonym": "jsmithAPI",
"owner": "Demo Organization"
},
"status": "Success"
}
JSON Response (Organization Administrator):
{
"data": {
"id": 3,
"userName": "11112222333344445555",
"firstName": "John",
"lastName": "Smith",
"pseudonym": "jsmithAPI",
"owner": "Demo Organization",
"lastPasswordChange": "2022-05-03T14:51:55Z",
"termsAccepted": false,
"logoutIntervalMinutes": 30,
"systemRole": "Administrator",
"ownerRoles": {
"Demo Organization": "Organization Administrator",
"Demo Community": "Director",
"Demo Source": "Director"
},
"disabled": false,
"locked": false,
"passwordResetRequired": false,
"twoFactorResetRequired": false
},
"status": "Success"
}
Update Users
Attention
Only API users with an Organization role of Organization Administrator can update users. However, they may not update users whose System role is Administrator, Community Leader, Operations Administrator, or Super User.
The following example illustrates the basic format for updating a user:
PUT /v3/security/users/{userId}
Content-Type: application/json
{
{updatedField}: {updatedValue}
}
For example, the following request will disable and lock the account for the user whose ID is 11:
PUT /v3/security/users/11
Content-Type: application/json
{
"disabled": true,
"locked": true
}
JSON Response
{
"data": {
"id": 11,
"userName": "[email protected]",
"firstName": "Donald",
"lastName": "Jefferson",
"pseudonym": "DonJ",
"owner": "Demo Organization",
"lastPasswordChange": "2022-08-30T12:45:17Z",
"uiTheme": "Light",
"jobFunction": "Threat Intelligence",
"jobRole": "Analyst",
"termsAccepted": true,
"logoutIntervalMinutes": 30,
"systemRole": "User",
"ownerRoles": {
"Demo Organization": "Standard User",
"Demo Community": "Director",
"Demo Source": "Director"
},
"disabled": true,
"locked": true,
"passwordResetRequired": false,
"twoFactorResetRequired": false
},
"message": "Updated",
"status": "Success"
}
In this next example, the request will update the owner role for the user whose ID is 12 in their Organization:
PUT /v3/security/users/12
Content-Type: application/json
{
"owner": "Demo Organization",
"ownerRoles": {
"Demo Organization": "Organization Administrator"
}
}
JSON Response
{
"data": {
"id": 12,
"userName": "[email protected]",
"firstName": "Herschel",
"lastName": "Hodges",
"owner": "Demo Organization",
"lastPasswordChange": "2024-07-09T14:35:05Z",
"uiTheme": "Light",
"termsAccepted": false,
"logoutIntervalMinutes": 30,
"systemRole": "User",
"ownerRoles": {
"Demo Organization": "Organization Administrator",
"Demo Community": "Editor",
"Demo Source": "Editor"
},
"disabled": false,
"locked": false,
"passwordResetRequired": true,
"twoFactorResetRequired": true
},
"message": "Updated",
"status": "Success"
}
Refer to the Available Fields section for a list of available fields that can be included in the body of a PUT request to the /v3/security/users
endpoint.
Note
Updating users in bulk is not supported at this time.
Delete Users
Attention
Only API users with an Organization role of Organization Administrator can delete users. However, they may not delete users whose System role is Administrator, Community Leader, Operations Administrator, or Super User.
Send a request in the following format to delete a user:
DELETE /v3/security/users/{userId}
For example, the following request will delete the user whose ID is 10:
DELETE /v3/security/users/10
JSON Response
{
"message": "Deleted",
"status": "Success"
}
Note
Deleting users in bulk is not supported at this time.