Microsoft Entra ID

The Microsoft Entra ID Connector integrates identity assets from Microsoft Active Directory into Qualys CyberSecurity Asset Management (CSAM). The connector synchronizes Users, Groups, and Roles from Entra ID to provide centralized identity visibility.

Connector Details

Vendor Microsoft
Product Name Microsoft Entra ID
Category Assets
Findings Supported Not Supported
Assets Supported Users, Groups, Roles (Identity)
Version 1.0.0
Integration Type Cloud
Direction Unidirectional (Microsoft Entra ID to Qualys)
Delta Support Supported

Connection Settings

Authentication Details

Provide the following credentials when configuring the connector:

Name Key Type
Tenant ID tenantId String
Client ID clientId String
Client Secret clientSecret Encrypted

Required Permissions

Entity Least Required Permissions
Groups GroupMember.Read.All
Users User.Read.All
Roles RoleManagement.Read.Directory,
Directory.Read.All,
RoleManagement.ReadWrite.Directory,
Directory.ReadWrite.All

Connector Configuration

Basic Details

  1. Log in to Qualys CSAM.
  2. Navigate to Connectors and locate Microsoft Entra ID Connector.
  3. Click Manage.
  4. Provide connector name and description.
  5. Enter Tenant ID, Client ID, and Client Secret.
  6. Assets value is set to Identity by default.

Schedule

Schedule control connector execution. Configure when and what type of assets should be ingested as part of the connection process.

Review and Confirm

Review the configuration and click Create.

How Does the Connection Work?

The Microsoft Entra ID Connector synchronizes Users, Groups, and Roles from Entra ID into the CSAM Identity inventory. Synchronization runs either on a defined recurring schedule or on-demand schedule. Profiles control what identity objects are imported and the frequency of synchronization.

When the connector is created and run for the first time, it performs a Full Pull. This retrieves all Users, Groups, and Roles from Microsoft Entra ID and imports them into the inventory, establishing the initial baseline.

Recurring Delta Pulls:

After the initial run, all scheduled synchronizations run as Delta Pulls. A Delta Pull retrieves only the changes since the previous synchronization. However, the behavior differs for Roles:

  • Users and Groups return only changed data.
  • Roles are retrieved entirely every time, but they are still included in both Delta Pull and Baseline executions.

Delta Pulls run at every scheduled interval and continue until the configured Schedule End DateTime.

Baseline Full Pull Schedule:

In addition to the initial Full Pull, the connector can be configured to run periodic Full Pulls based on the Baseline Schedule.
For example, if the Baseline Schedule is set to Weekly, the connector performs a Full Pull once every week until the configured Schedule End Datetime is reached. This ensures that large-scale directory changes are periodically reconciled.

Note:

  • The first execution always performs a Full Pull.
  • Delta Pulls run at each scheduled interval after the initial execution.
  • Roles are always fetched through Full Pull logic (no delta support), but still retrieved during both Delta and Baseline runs.
  • Baseline Full Pulls run at the frequency defined in the Profile (e.g., weekly, fortnightly, Triweekly or Monthly), until the schedule end time.

In the Connector screen, you can find your newly configured connector listed and marked in the Processed state.

Connector States

A successfully configured connector goes through 4 states.

  1. Registered - The connector is successfully created and registered to fetch data from the vendor.
  2. Scheduled - The connector is scheduled to execute a connection with the vendor.
  3. Processing - A connection is executed and the connector is fetching the asset identity data.
  4. Processed - The connector has successfully fetched the assets. Wait for some more time for the connector to fetch the identity data completely.

The Processed state indicates that the Connector is successfully configured but it is under the process of importing all your assets. This process may take some time.

Viewing Identity Assets in CSAM

  1. Navigate to CSAM Inventory.
    • Go to Assets to view imported Entra ID assets.
      Inventory > Identity > Group/User/Role Identity

      Group Identity Assets


      User Identity Assets


      Role Identity Assets

Microsoft Entra ID Transformation Maps

Groups - Transformation Map

Transformation map used while transforming source Groups data.

Source Field

Target Field

id

asset.assetHeader.externalAssetId

id

asset.assetHeader.vendorAssetId

displayName

asset.assetDetail.name

id

asset.assetDetail.groupAssetClass.id

displayName

asset.assetDetail.groupAssetClass.name

displayName

asset.assetDetail.groupAssetClass.displayName

visibility

asset.assetDetail.groupAssetClass.visibility

description

asset.assetDetail.groupAssetClass.description

appRoleAssignments.value[].id

asset.assetDetail.groupAssetClass.permissions[].id

appRoleAssignments.value[].principalDisplayName

asset.assetDetail.groupAssetClass.permissions[].name

appRoleAssignments.value[].resourceDisplayName

asset.assetDetail.groupAssetClass.permissions[].resource

memberOf.value[].id

asset.assetRelations[].assetHeader.externalAssetId

memberOf.value[].id

asset.assetRelations[].assetHeader.vendorAssetId

memberOf.value[].displayName

asset.assetRelations[].assetDetail.name

memberOf.value[].id

asset.assetRelations[].assetDetail.roleAssetClass.id

memberOf.value[].description

asset.assetRelations[].assetDetail.roleAssetClass.description

memberOf.value[].displayName

asset.assetRelations[].assetDetail.roleAssetClass.displayName

memberOf.value[].displayName

asset.assetRelations[].assetDetail.roleAssetClass.name

Users - Transformation Map

Transformation map used while transforming source Users data.

Source Field

Target Field

userPrincipalName

asset.assetHeader.externalAssetId

id

asset.assetHeader.vendorAssetId

FUNCTION_PICKER (accountEnabled)

asset.assetHeader.status

(ACTIVE if true)

(INACTIVE if false)

(UNKNOWN if field is not present)

id

asset.assetDetail.userAssetClass.id

displayName

asset.assetDetail.userAssetClass.name

displayName

asset.assetDetail.name

 FUNCTION_PICKER (LOOKUP on accountEnabled)

asset.assetDetail.userAssetClass.status

(ACTIVE if true)

(INACTIVE if false)

(UNKNOWN if field is not present)

 mail

 asset.assetDetail.userAssetClass.email

 givenName

 asset.assetDetail.userAssetClass.firstName

surname

asset.assetDetail.userAssetClass.lastName

displayName

asset.assetDetail.userAssetClass.displayName

mobilePhone

asset.assetDetail.userAssetClass.phone

jobTitle

asset.assetDetail.userAssetClass.jobTitle

lastPasswordChangeDateTime

asset.assetDetail.userAssetClass.passwordLastChangedAt

streetAddress

asset.assetDetail.userAssetClass.currentAddress.streetAddress

state

asset.assetDetail.userAssetClass.currentAddress.state

city

asset.assetDetail.userAssetClass.currentAddress.city

country

asset.assetDetail.userAssetClass.currentAddress.country

postalCode

asset.assetDetail.userAssetClass.currentAddress.isoCode

appRoleAssignments.value[].id

asset.assetDetail.userAssetClass.permissions[].id

appRoleAssignments.value[].principalDisplayName

asset.assetDetail.userAssetClass.permissions[].name

appRoleAssignments.value[].resourceDisplayName

asset.assetDetail.userAssetClass.permissions[].resource

memberOf.value[].id

asset.assetRelations[].assetHeader.externalAssetId

memberOf.value[].id

asset.assetRelations[].assetHeader.vendorAssetId

memberOf.value[].uniqueName

asset.assetRelations[].assetHeader.name

memberOf.value[].id

asset.assetRelations[].assetDetail.groupAssetClass.id

memberOf.value[].uniqueName

asset.assetRelations[].assetDetail.groupAssetClass.name

memberOf.value[].displayName

asset.assetRelations[].assetDetail.groupAssetClass.displayName

memberOf.value[].visibility

asset.assetRelations[].assetDetail.groupAssetClass.visibility

memberOf.value[].description

asset.assetRelations[].assetDetail.groupAssetClass.description

Roles - Transformation Map

Transformation map used while transforming source Roles data.

Source Field

Target Field

id

asset.assetHeader.externalAssetId

id

asset.assetHeader.vendorAssetId

FUNCTION_PICKER (LOOKUP on accountEnabled)

asset.assetHeader.status

(ACTIVE if true)

(UNKNOWN if false or field is not present)

displayName

asset.assetDetail.name

id

asset.assetDetail.roleAssetClass.id

displayName

asset.assetDetail.roleAssetClass.name

displayName

asset.assetDetail.roleAssetClass.displayName

description

asset.assetDetail.roleAssetClass.description

API Endpoints

API Endpoint
Authorization https://login.microsoftonline.com/{tenant_id}/oauth2/token
Users https://graph.microsoft.com/v1.0/users
Groups https://graph.microsoft.com/v1.0/groups
Roles https://graph.microsoft.com/v1.0/roleManagement/directory/roleDefinitions