Okta CDF
The web format of this guide reflects the most current release. Guides for older iterations are available in PDF format.
Integration Details
ThreatQuotient provides the following details for this integration:
Current Integration Version | 1.0.1 |
Compatible with ThreatQ Versions | >= 4.35.0 |
Support Tier | ThreatQ Supported |
Introduction
The Okta CDF for ThreatQ enables analysts to automatically pull back a list of users (and their identity information) from Okta, into ThreatQ.
The integration ingests identities and identity attributes into the ThreatQ platform.
Prerequisites
The Okta CDF requires an Okta API Token. See the section below for steps on generating an Okta API Token.
Generating an Okta API Token
Use the following steps to generate an Okta API Token to use for this integration.
- Log into your Okta Portal.
- Click on Security > API in the left navigation.
- Select the Tokens tab.
- Click on the Create Token button.
- Name the token. ThreatQuotient recommends the following name: ThreatQ.
- Click on the Create button
- Copy and save the token to a secure location. This token will be used when configuring the CDF.
Installation
This integration can be installed in the My Integration section of your ThreatQ instance. See the Adding an Integration topic for more details.
Configuration
ThreatQuotient does not issue API keys for third-party vendors. Contact the specific vendor to obtain API keys and other integration-related credentials.
To configure the integration:
- Navigate to your integrations management page in ThreatQ.
- Select the Commercial option from the Category dropdown (optional).
If you are installing the integration for the first time, it will be located under the Disabled tab.
- Click on the integration entry to open its details page.
- Enter the following parameters under the Configuration tab:
Parameter Description Okta Host Enter your Okta hostname. Do not include the http schema or any trailing slashes. API Token Enter your Okta API Token generated at Security > API > Tokens in your Okta portal. See the Prerequisites chapter for more details. Ingest Users Based on Last Run Timeframe Enable this option if you don't want the entire user list ingested every time the feed runs. You can use the manual run button to pull historically if this is option is enabled. Custom Search Query (Optional) Optional. Enter a custom search query to apply to the API requests. See the following Okta reference for more details: https://developer.okta.com/docs/reference/api/users/#list-users-with-search. Include User Information Select the pieces of user information that you'd like to be brought into ThreatQ. - Review any additional settings, make any changes if needed, and click on Save.
- Click on the toggle switch, located above the Additional Information section, to enable it.
ThreatQ Mapping
The feed automatically pulls back a list of Okta users (as Identity objects) into ThreatQ
GET https://{okta_host}/api/v1/users
Sample Response:
[
{
"id": "00u1t42alzDtDDRNY5d7",
"status": "RECOVERY",
"created": "2021-09-14T18:52:11.000Z",
"activated": null,
"statusChanged": "2021-09-14T19:31:35.000Z",
"lastLogin": "2021-09-17T13:03:41.000Z",
"lastUpdated": "2021-09-17T13:44:52.000Z",
"passwordChanged": "2021-09-14T19:31:37.000Z",
"type": {
"id": "oty1t42agnkjSIFX55d7"
},
"profile": {
"lastName": "Doe",
"zipCode": "22066",
"preferredLanguage": "English",
"city": "Cupertino",
"displayName": "John Doe",
"timezone": "EST",
"title": "Solutions Architect",
"locale": "",
"login": "john.doe@threatq.com",
"employeeNumber": "1",
"division": "Sales Engineering",
"countryCode": "US",
"state": "California",
"department": "Sales",
"email": "john.doe@threatq.com",
"manager": "Jack Black",
"nickName": "John",
"secondEmail": "john.doe@gmail.com",
"firstName": "John",
"primaryPhone": "7031231234",
"postalAddress": "22066",
"mobilePhone": "7031231234",
"streetAddress": "1 Cupertino Road",
"organization": "ThreatQuotient",
"middleName": "L",
"userType": "Employee"
},
"credentials": {
"password": {},
"emails": [
{
"value": "john.doe@threatq.com",
"status": "VERIFIED",
"type": "PRIMARY"
},
{
"value": "john.doe@gmail.com",
"status": "VERIFIED",
"type": "SECONDARY"
}
],
"provider": {
"type": "OKTA",
"name": "OKTA"
}
},
"_links": {
"self": {
"href": "https://dev-15613756.okta.com/api/v1/users/00u1t42alzDtDDRNY5d7"
}
}
}
]
ThreatQuotient provides the following default mapping for this feed:
Feed Data Path | ThreatQ Entity | ThreatQ Object Type or Attribute Key | Published Date | Examples | Notes | |
---|---|---|---|---|---|---|
data.profile.[firstName/lastName] |
Object Value | Identity | First and last name concatenated | data.created | N/A | N/A |
data.profile.firstName |
Attribute | First Name | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.lastName |
Attribute | Last Name | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.zipCode |
Attribute | Zip Code | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.preferredLanguage |
Attribute | Preferred Language | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.city |
Attribute | City | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.displayName |
Attribute | Display Name | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.timezone |
Attribute | Timezone | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.title |
Attribute | Title | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.locale |
Attribute | Locale | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.login |
Attribute | Login | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.employeeNumber |
Attribute | Employee Number | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.division |
Attribute | Division | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.countryCode |
Attribute | Country Code | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.state |
Attribute | State | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.department |
Attribute | Department | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.email |
Attribute | N/A | data.created | N/A | Conditionally set, if enabled | |
data.profile.manager |
Attribute | Manager | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.nickName |
Attribute | Nickname | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.secondEmail |
Attribute | Secondary Email | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.primaryPhone |
Attribute | Primary Phone | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.postalAddress |
Attribute | Postal Address | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.mobilePhone |
Attribute | Mobile Phone | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.streetAddress |
Attribute | Street Address | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.organization |
Attribute | Organization | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.middleName |
Attribute | Middle Name | N/A | data.created | N/A | Conditionally set, if enabled |
data.profile.userType |
Attribute | User Type | N/A | data.created | N/A | Conditionally set, if enabled |
Average Feed Run
Object counts and Feed runtime are supplied as generalities only - objects returned by a provider can differ based on credential configurations and Feed runtime may vary based on system resources and load.
Metric | Result |
---|---|
Run Time | 1 minute |
Identities | 2 |
Identity Attributes | 23 |
Known Issues / Limitations
- If the
Ingest Users Based on Last Run Timeframe
is enabled, users will only be pulled back when they have been last updated within the feed run timeframe. Disable this option to always pull back the full list of users, or keep it enabled and utilize the manualRun Integration
button to pull a list of users, historically.
Change Log
- Version 1.0.1
- CDF optimization by ThreatQuotient Engineering.
- Updated Support tier from Not Supported to ThreatQ Supported.
- Version 1.0.0
- Initial Release
PDF Guides
Document | ThreatQ Version |
---|---|
Okta CDF Guide v1.0.1 | 4.35.0 or Greater |
Okta CDF Guide v1.0.0 | 4.35.0 or Greater |