If your organization runs on Entra ID (formerly Azure Active Directory) as the source of truth for users, groups, licenses, and apps, then this article if for you. We'll cover how to do the integration Assets, benefits of this integration and how you can leverage Rovo Agents.
Entra ID exposes its data through the Microsoft Graph API, REST endpoint (https://graph.microsoft.com/v1.0/) that provides access to users, groups, licenses, applications, organizational units, and sign-in activity across your Microsoft 365 tenant.
Key resources available via the Graph API include:
Users — Every attribute you'd expect: displayName, userPrincipalName, department, jobTitle, companyName, employeeType, employeeHireDate, mobilePhone, officeLocation, usageLocation, country, and more. The full property list is documented at Microsoft's Graph API reference.
Groups — Security groups, Microsoft 365 groups, and distribution lists — each with displayName, description, and id. Groups are how organizations define team membership, access policies, and role boundaries.
Licenses — Assigned SKUs (e.g., Microsoft 365 E3, Defender for Endpoint) tied to each user, surfaced via the assignedLicenses property and license detail endpoints.
Applications — App registrations and enterprise apps that users and groups have access to.
Sign-in Activity — Last sign-in timestamps (lastSignInDateTime, lastSuccessfulSignInDateTime, lastNonInteractiveSignInDateTime) through the signInActivity resource, gated behind the AuditLog.Read.All permission.
Manager Hierarchy — The manager relationship on each user, enabling org-chart traversal and people-chain lookups.
The API supports OData $filter, $select, $expand, and pagination via @odata.nextLink, making it flexible enough to fetch exactly the subset of data you need.
When a user submits a ticket, agents need context: What department are they in? Who's their manager? What licenses do they hold? What groups are they a member of?
With Entra ID synced to Assets, agents can attach the reporter's User asset object to the ticket and immediately see all of this — no toggling to Azure Portal, no asking the user for their department, no chasing down the manager name. Custom fields in JSM can reference Asset objects, so the employee record surfaces inline in the ticket view.
This is particularly powerful for:
JSM's automation engine can read and act on Asset attributes. With Entra ID data in Assets, you can build rules like:
ManagerObject asset attribute and auto-email or Slack the manager for approvallastSuccessfulSignInDateTime exceeds 90 days, creating a deprovisioning review ticketRovo Agents can query Assets as a knowledge source, which means a Rovo Agent equipped with your Entra ID-backed Asset schema can answer questions and take actions that previously required a human lookup:
ManagerObject and Azure Groups attributes in AssetsHere is an excellent article on how to use Rovo for searching assets.
The configuration is done through a simple attribute mapping syntax. You define which Entra ID fields map to which Asset attributes, set the sync frequency, and OnLink handles pagination, deduplication, and relationship resolution.
Full technical documentation is here: Entra ID (Azure AD) to JSM Assets — OnLink Docs
Here's a breakdown of what OnLink supports:
Any scalar field from the Graph API user object can be mapped to an Asset attribute using the map: prefix. The key: prefix designates the unique identifier used to match and update records on subsequent syncs.
key:userPrincipalName=WorkerID
map:userPrincipalName=Atlassian Account ID
map:displayName=DisplayName
map:department=Department
map:jobTitle=JobTitle
map:companyName=CompanyName
map:usageLocation=Usage Location
map:businessPhones.0=Business Phone
map:employeeHireDate=Hire Date
map:country=Country
When userPrincipalName is mapped to the Atlassian Account ID attribute (which is of type "User"), OnLink automatically resolves the Atlassian user object — linking the Asset record to the actual Jira user account.
Array fields use dot notation: businessPhones.0 fetches the first element of the phones array.
Setting config:export_azure_groups=true tells OnLink to pull all groups assigned to each user and populate a dedicated Azure Groups Asset schema (with attributes: Group Display Name, Group Description, Group ID). The user schema then carries a reference attribute pointing to that schema — so each user asset links to their full set of group memberships.
This enables group-based routing, access visibility, and audit reporting directly from JSM.
OnLink provides a special EmployeeManager property that resolves the manager relationship through the Graph API. A self-referencing object attribute in the user schema stores the manager link:
map:EmployeeManager=ManagerObject|WorkerID=${EmployeeManager}|create=true
config:expand=manager
Because the Entra ID API doesn't support filters when expanding managers, OnLink recommends a dedicated import job for manager resolution, set with a high data_limit to ensure full coverage. The result: every user asset contains a clickable ManagerObject reference that links to the manager's own asset record.
Setting config:export_azure_licenses=true enables license sync into an Azure Licenses schema (License ID, License SKU Part Number, License SKU ID). Each user's assigned licenses are then linked to their record, giving you a real-time view of software entitlements across your workforce — directly from the service desk.
Using config:api, OnLink can be pointed at any Entra ID Graph API endpoint — not just users. To pull all groups into Assets:
config:api=groups
Or to pull service principals, applications, or any other Graph resource. This makes OnLink's Entra ID connector extensible to any data the Graph API exposes.
For dormant account detection and access governance, OnLink can sync sign-in timestamps:
map:signInActivity.lastSuccessfulSignInDateTime=Last Logon
map:signInActivity.lastSignInDateTime=Last Sign In
map:signInActivity.lastNonInteractiveSignInDateTime=Last Non-Interactive Sign In
This requires the AuditLog.Read.All permission to be granted to the OnLink app registration in Entra ID. Once synced, these attributes can drive automations that flag or deprovision inactive accounts.
config:api — Point to Any Graph EndpointOne of OnLink's most flexible features is the config:api parameter, which lets you override the default users API call with any valid Microsoft Graph endpoint:
config:api=groups # Pull all groups
config:api=applications # Pull all app registrations
config:api=servicePrincipals
Combined with config:filter for OData filtering (e.g., config:filter=country eq 'United States') and config:data_limit for scoped testing, this gives you precise control over exactly what gets imported and when.
If your team uses Entra ID and Assets, the data sync, OnLink can help with the integration.
Try OnLink from the Atlassian Marketplace: 👉 Link.
Prabhu Palanisamy _Onward_
0 comments