Okta Connector

The Okta Connector integrates identity data from Okta's Universal Directory into Qualys Enterprise TruRisk Management, enabling security teams to maintain a centralized inventory of users and groups. By synchronizing identity assets into the Unified Asset Inventory, security practitioners gain visibility into who has access to what resources and can correlate identity information with other security asset data. The connector supports delta pulls for efficient updates after the initial full synchronization, reducing the overhead of continuous identity reconciliation. This unified view helps security teams identify access control risks, enforce principle of least privilege, and respond more effectively to identity-related threats in cloud-first and hybrid environments where Okta serves as the primary identity provider.

Connector Details

The following table summarizes the capabilities and configuration characteristics of the Okta Connector.

Vendor

Okta

Product Name

Okta 

Connector Category

Identity & Access Managements

Asset Types Supported

Identity

Finding Types Supported

No

Supported Version & Type

v1.0.0

Integration Method

API Integration (REST)

Direction

Unidirectional (Okta to Qualys)

Incremental Sync (Delta)

Supported

Import of Installed Software

Not Supported

Import of Source Tags

Not Supported

Filters / Filter Query

Not Supported

Connection Settings

User Roles and Permissions

The Okta Connector uses an API token (SSWS) for authentication. OAuth is not supported for this connector. The admin account used to generate the API token must have the following permissions assigned via a custom role. To configure roles, go to Security > Admin > Roles in the Okta Admin Console, then assign the role to the API token owner.

OAuth-based authentication is not supported for this connector. Only SSWS API tokens are accepted.

Entity

Required Permission

Description

Users

okta.users.read

Read user profiles and credentials (all users or scoped to groups).

Groups

okta.groups.read

Read groups and members (all or specific groups).

Policies

okta.policies.read

View policies. Requires Okta release 2025.05.0 or later.

Applications

okta.apps.read

Read applications and their members (all, type-specific, or a single app).

Custom Roles

okta.iam.read

View roles, resources, and role assignments.

To generate an API token in Okta:

  1. Log in to the Okta Admin Console.
  2. Go to Security > API > Tokens.
  3. Click Create Token and provide a descriptive name.
  4. Copy the token value immediately — it is not shown again after the dialog is closed.

Authentication Details

Provide the following credentials in the connector configuration screen:

Name Key Type Description
Base URL BaseURL String The unique domain of your Okta organization (e.g., https://yourorg.okta.com). This acts as the root endpoint for all API requests.
API Token API Token Encrypted SSWS API token generated in the Okta Admin Console. Used to authorize all API requests made by the connector.

Connector Configuration


Basic Details

  1. Log in to Qualys ETM.
  2. Go to Connectors > Integration and locate the Okta Connector.
  3. Click Manage from the ellipsis menu.
  4. Provide a Name and Description for the connector.
  5. Enter the Base URL and API Token.
  6. Click Next to proceed to profile configuration.

Okta Connector configuration screen showing Name, Base URL, and API Token fields

Mapping Details

Data Model

The Okta Connector provides out-of-the-box data model mappings for identity asset types: Users, Groups, and Roles. No vulnerability finding mappings are provided. View the complete schema in ETM to understand all supported target fields.

Transform Maps

Default transform maps are provided for each asset type. You can create or clone maps to customize field transformations.

  1. Click Create New to add a new transform map.
  2. Provide a Transform Map Name, select a Source Data Model, and select a Target Data Model.
  3. Save the map.
  4. Alternatively, use Clone from the quick menu to copy and adjust an existing default transform map.

Data Model Mapping – Role Asset Transformation

Source Field

Target Field

id

asset.assetHeader.externalAssetId (Required)

id

asset.assetHeader.vendorAssetId

label

asset.assetDetail.name

id

asset.assetDetail.roleAssetClass.id

label

asset.assetDetail.roleAssetClass.name

label

asset.assetDetail.roleAssetClass.displayName

description

asset.assetDetail.roleAssetClass.description

permissions[].label

asset.assetDetail.roleAssetClass.permissions[].id

permissions[].label

asset.assetDetail.roleAssetClass.permissions[].name

created

asset.assetDetail.sourceCreatedAt

lastUpdated

asset.assetDetail.sourceUpdatedAt

permissions[].label

asset.assetDetail.untypedAttributes.oktaRolePermissionLabels[]

isCloneable

asset.assetDetail.untypedAttributes.oktaRoleIsCloneable

Data Model Mapping – User Asset Transformation

Source Field

Target Field

profile.login

asset.assetHeader.externalAssetId (Required)

id

asset.assetHeader.vendorAssetId

FUNCTION_PICKER

asset.assetHeader.status

id

asset.assetDetail.userAssetClass.id

FUNCTION_PICKER

asset.assetDetail.userAssetClass.name

FUNCTION_PICKER

asset.assetDetail.name

FUNCTION_PICKER

asset.assetDetail.userAssetClass.status

profile.email

asset.assetDetail.userAssetClass.email

profile.firstName

asset.assetDetail.userAssetClass.firstName

profile.lastName

asset.assetDetail.userAssetClass.lastName

FUNCTION_PICKER

asset.assetDetail.userAssetClass.displayName

activated

asset.assetDetail.userAssetClass.activationDate

lastLogin

asset.assetDetail.userAssetClass.lastSuccessfulLoginAt

passwordChanged

asset.assetDetail.userAssetClass.passwordLastChangedAt

FUNCTION_PICKER

asset.assetDetail.userAssetClass.type

created

asset.assetDetail.sourceCreatedAt

lastUpdated

asset.assetDetail.sourceUpdatedAt

memberOf[].id

asset.assetRelations[].assetHeader.externalAssetId

memberOf[].id

asset.assetRelations[].assetHeader.vendorAssetId

userEnrolledFactors[].factorType

asset.assetDetail.untypedAttributes.oktaUserFactorTypes[]

statusChanged

asset.assetDetail.typedAttributes.oktaUserStatusChanged

userRoleAssignments[].type

asset.assetDetail.untypedAttributes.oktaUserRoleTypes[]

userRoleAssignments[].assignmentType

asset.assetDetail.untypedAttributes.oktaUserRoleAssignmentTypes[]

profile.secondEmail

asset.assetDetail.typedAttributes.oktaUserSecondEmail

userEnrolledFactors[].provider

asset.assetDetail.untypedAttributes.oktaUserEnrolledFactorsProviders[]

type.id

asset.assetDetail.typedAttributes.oktaUserTypeId

Data Model Mapping – Group Asset Transformation

Source Field

Target Field

SCRIPT_BASE_FUNCTION

asset.assetHeader.externalAssetId (Required)

id

asset.assetHeader.vendorAssetId

profile.name

asset.assetDetail.name

created

asset.assetDetail.sourceCreatedAt

lastUpdated

asset.assetDetail.sourceUpdatedAt

id

asset.assetDetail.groupAssetClass.id

profile.name

asset.assetDetail.groupAssetClass.name

profile.name

asset.assetDetail.groupAssetClass.displayName

type

asset.assetDetail.groupAssetClass.type

profile.description

asset.assetDetail.groupAssetClass.description

hasRole[].id

asset.assetRelations[].assetHeader.externalAssetId

hasRole[].id

asset.assetRelations[].assetHeader.vendorAssetId

FUNCTION_PICKER

asset.assetRelations[].assetHeader.status

hasRole[].label

asset.assetRelations[].assetDetail.name

hasRole[].id

asset.assetRelations[].assetDetail.roleAssetClass.id

hasRole[].label

asset.assetRelations[].assetDetail.roleAssetClass.name

hasRole[].label

asset.assetRelations[].assetDetail.roleAssetClass.displayName

hasRole[].label

asset.assetRelations[].assetDetail.roleAssetClass.description

FUNCTION_PICKER

asset.assetRelations[].assetDetail.roleAssetClass.type

FUNCTION_PICKER

asset.assetRelations[].assetDetail.roleAssetClass.scope

hasRole[].created

asset.assetRelations[].assetDetail.sourceCreatedAt

hasRole[].lastUpdated

asset.assetRelations[].assetDetail.sourceUpdatedAt

FUNCTION_PICKER

asset.assetRelations[].relationshipStatus

profile.groupType

asset.assetDetail.typedAttributes.oktaGroupProfileGroupType

profile.samAccountName

asset.assetDetail.typedAttributes.oktaGroupProfileSamAccountName

lastMembershipUpdated

asset.assetDetail.typedAttributes.oktaGroupLastMembershipUpdated

profile.groupScope

asset.assetDetail.typedAttributes.oktaGroupProfileGroupScope

profile.dn

asset.assetDetail.typedAttributes.oktaGroupProfileDN

objectClass

asset.assetDetail.untypedAttributes.oktaGroupObjectClass

profile.windowsDomainQualifiedName

asset.assetDetail.typedAttributes.oktaGroupProfileWindowsDomainQualifiedName

Policies - Transformation map:

Source Field

Target Field

* thirdPartyObject.content.&

Applications - Transformation map:

Source Field

Target Field

* thirdPartyObject.content.&

Profiles

Profiles control when and how the connector executes. Each profile is associated with one or more transform maps and defines the asset scope and schedule.

  1. Click + to add a new profile.
  2. Provide a Name and Description.
  3. Select the required Transform Map.
  4. Set the Asset Target: select Core Repo or Generic Application as appropriate.
  5. Set Status to Active or Inactive.
  6. Configure a Schedule: select Single Occurrence or Recurring, then set start and end dates and times.
  7. Click Next to proceed.

Okta Connector profile configuration screen showing schedule and transform map selection

How Does a Connection Work?

The Okta Connector executes on schedule or on demand based on the configured profile. On first execution, a full pull of all configured Okta asset types is performed. On subsequent executions, only delta changes are fetched, reducing import volume and processing time.

The connector fetches data from Okta via REST API, applies the configured transform map, and imports identity assets into ETM. A successfully configured connector transitions through the following states:

  • Registered — The connector is created and registered to fetch data from Okta.
  • Scheduled — The connector is queued and scheduled for execution.
  • Processing — A connection is active and the connector is retrieving asset data.
  • Processed — The connector has completed data retrieval and import into ETM.

The full import process, including asset correlation, may take up to 2 hours to complete depending on the volume of identity data in the Okta organization.

Viewing Assets in ETM

After a successful run, Okta identity assets appear in ETM's Inventory:

  • Assets: Go to Inventory > Assets. Filter with tags.name:"Okta".
    ETM Inventory screen filtered by Okta tag showing imported identity assets

The Okta Connector does not import vulnerability findings. The Findings view is not applicable for this connector.

API Endpoints

The connector uses the following Okta REST API endpoints to retrieve identity asset data:

API Function Endpoint

List Users API

https://qualys-ssf-admin.oktapreview.com/api/v1/users

List Groups API

https://qualys-ssf-admin.oktapreview.com/api/v1/groups

List Custom Role API

https://qualys-ssf-admin.oktapreview.com/api/v1/iam/roles

List of Applications

https://qualys-ssf-admin.oktapreview.com/api/v1/apps?limit=10

List of  Policies 

https://qualys-ssf-admin.oktapreview.com/api/v1/policies?limit=200&type=OKTA_SIGN_ON