Entra ID (Azure AD) to JSM Assets

Entra ID (Azure AD) to JSM Assets

Import Entra ID users, groups, licenses, and attributes into JSM Assets

Use OnLink to import Microsoft Entra ID user data into Jira Service Management Assets, including users, groups, software licenses, organizational attributes such as cost center and division, and other supported Microsoft Graph user properties.

Overview

This guide explains how to configure an OnLink Assets import from Entra ID, map Microsoft Graph fields to Assets attributes, and enable optional exports for groups, licenses, manager relationships, filters, and sign-in activity. The configuration uses simple mapping statements such as key:, map:, and config: entries.

Prerequisites

  • A Assets schema and object type for imported users.

  • OnLink installed and available from Manage your apps.

  • An Entra ID application connection configured for OnLink.

  • Required Microsoft Graph permissions for the data you plan to import. Sign-in activity requires AuditLog.Read.All.

  • For setup steps, review the OnLink Assets import setup instructions here.

Setup overview

Configuration screen

image-20240322-090943.png
  1. Open the OnLink app from Manage your apps.

  2. Create or edit an Assets import configuration.

  3. Enter a descriptive map name.

  4. Set Source system to Azure AD.

  5. Confirm the pre-filled Assets schema. This is the JSM Assets schema where the import was started.

  6. Select the target object type within the schema.

  7. Select the schedule frequency.

  8. Add attribute mappings using the syntax described below.

Example configuration

Sample Assets object schema

image-20240322-091828.png

Associated mapping

key:id=UserID map:id=Name map:userPrincipalName=UserPrincipalName map:displayName=DisplayName map:companyName=CompanyName map:department=Department map:jobTitle=JobTitle config:export_azure_groups=false config:export_azure_licenses=false config:data_limit=100

Mapping reference

Use the following reference to define source fields, destination Assets attributes, and optional import settings.

Mapping or setting

Purpose and usage

Mapping or setting

Purpose and usage

key:userPrincipalName=WorkerID

Defines the unique key used to match and update existing Assets objects. In this example, Entra ID userPrincipalName maps to the Assets text attribute WorkerID.

map:userPrincipalName=Atlassian Account ID

Maps userPrincipalName to an Assets attribute of type User. OnLink uses the value to look up the matching Atlassian user.

map:usageLocation=Usage Location

Maps a Microsoft Graph user property to an Assets attribute. Any supported string, boolean, or date property can be used as a source field. See the Microsoft Graph user properties reference: https://learn.microsoft.com/en-us/graph/api/resources/user?view=graph-rest-1.0#properties

Common source fields include companyName, country, department, displayName, employeeHireDate, employeeType, givenName, jobTitle, mailNickname, mobilePhone, officeLocation, preferredName, surname, and userPrincipalName.

map:businessPhones.0=Business Phone

Maps the first value in the Entra ID businessPhones collection. Although this property is a string collection, Entra ID supports only one phone number for this field, so use businessPhones.0.

map:CostCenterEmployeeOrg=Department|Name=${CostCenterEmployeeOrg}

Maps the employee cost center from Entra ID to the Assets Department reference attribute. The referenced object is looked up by Name.

map:DivisionEmployeeOrg=Division|Name=${DivisionEmployeeOrg}

Maps the employee division from Entra ID to the Assets Division reference attribute. The referenced object is looked up by Name.

map:EmployeeManager=ManagerObject|WorkerID=${EmployeeManager}

EmployeeManager is an OnLink-provided property that returns the user manager ID. In this example, ManagerObject is a self-referencing Assets object attribute that points back to the same user object type.

image-20240719-164809.png

To enable manager expansion, add config:expand=manager. Because the Entra ID API does not support filters when exporting managers, create a separate import job for manager relationships when possible.

key:id=WorkerID map:EmployeeManager=ManagerObject|WorkerID=${EmployeeManager}|create=true config:data_limit=10000

Set config:data_limit higher than the employee count so manager data is fully returned.

config:export_azure_groups=true

Exports all Entra ID groups assigned to each user. Before enabling this setting, create an Assets schema named Azure Groups with these text attributes: Group Display Name, Group Description, and Group ID.

image-20240322-092841.png

Also add an Azure Groups reference attribute to the user object type. This attribute must point to the Azure Groups object type.

image-20250619-210834.png

config:export_azure_licenses=true

Exports all licenses assigned to each user. Before enabling this setting, create an Assets schema named Azure Licenses with these text attributes: License ID, License SKU Part Number, and License SKU ID.

image-20240322-093051.png

config:filter=country eq 'United States'

Optionally limits the imported users by using a Microsoft Graph filter expression. Any valid Microsoft Graph filter expression can be used.

To pull User of type Member
config:filter=userType eq 'Member'

To remove users with email that starts with test
config:filter=not(startswith(mail,'test'))

To remove users with display name that starts with test config:filter=not(startswith(displayName,'test'))


To pull users if company name is present
config:filter=companyName ne null

To pull only employees

config:filter=employeeType eq 'Employee'

map:signInActivity.lastSuccessfulSignInDateTime=Last Logon

Maps sign-in activity fields, such as:

  • signInActivity.lastSignInDateTime

  • signInActivity.lastSignInRequestId

  • signInActivity.lastNonInteractiveSignInDateTime

  • signInActivity.lastNonInteractiveSignInRequestId

  • signInActivity.lastSuccessfulSignInDateTime

  • signInActivity.lastSuccessfulSignInRequestId

To fetch these fields, grant the OnLink app AuditLog.Read.All permission in Entra ID.

config:data_limit=100

Optionally limits the number of users imported from Entra ID. Use this setting for initial testing or validation.

config:api=groups

Overrides the default users API. For example, use config:api=groups to import all Entra ID groups into Assets.

Notes and caveats

  • Manager mappings: Use config:expand=manager and consider a dedicated manager import job because Entra ID manager expansion does not support filters.

  • Groups and licenses: The required Assets schemas and attribute names must exist before enabling group or license export.

  • Filters: Validate Microsoft Graph filter syntax before adding it to the import configuration.

  • Sign-in activity: The OnLink Entra ID app must have AuditLog.Read.All permission to read sign-in activity fields.

  • Testing: Start with a small config:data_limit, confirm the mapping results, and then increase the limit for production imports.