Microsoft Defender for Endpoint
Visualize Microsoft Defender for Endpoint resources, map Defender users to employees, and monitor changes through queries and alerts.
- Installation
- Authorization
- Data Model
- Types
- Release Notes
Installation
To use this integration, you must have:
- An Azure account with an App Registration that provides credentials for JupiterOne to authenticate with Microsoft Graph and Microsoft Defender for Endpoint APIs.
- An Active Directory tenant to target for data ingestion. The tenant can be the same one that hosts the App Registration or a separate one.
- A Microsoft Defender for Endpoint subscription that includes the devices and vulnerability data you want to ingest.
Configuration in Microsoft Defender for Endpoint
In the Azure Portal — create the App Registration
- Navigate to App Registrations.
- Click New registration.
- Enter a name for the app (for example,
JupiterOne). - Select the supported account type for your organization.
- Click Register.
Add API permissions
In your new app registration, go to API permissions under Manage in the left panel.
- If the app already has the
User.Readpermission, remove it — it is not needed for this integration. - Click Add a permission > Microsoft Graph.
- Select Application permissions and add:
Organization.Read.AllDirectory.Read.All
- Click Add permissions.
- Click Add a permission again.
- Under APIs my organization uses, search for
WindowsDefenderATPand click the result. - Select Application permissions and add:
Machine.Read.AllUser.Read.AllVulnerability.Read.All
- Click Add permissions.
- Click Grant admin consent and confirm.
Create a client secret
- In your app registration, click Certificates & secrets.
- Under Client secrets, click New client secret.
- Add a description and choose an expiration that fits your secret-rotation policy.
- Click Add.
- Copy the Value immediately using the copy icon — the full value is not shown again after you navigate away.
API permissions reference
Microsoft Graph
| Permission | Purpose |
|---|---|
Organization.Read.All | Read organization information; required to create the Account entity |
Directory.Read.All | Read directory data; required to create User entities |
WindowsDefenderATP
| Permission | Purpose |
|---|---|
Machine.Read.All | Read device information; required to create Device and Endpoint entities |
User.Read.All | Read user profiles; required to create logon-user entities |
Vulnerability.Read.All | Read Threat and Vulnerability Management data; required to create Vulnerability and Finding entities |
Configuration in JupiterOne
Navigate to the Integrations tab, select Microsoft Defender for Endpoint, and click New Instance.
Creating an instance requires the following credentials from your Azure App Registration:
-
Application (client) ID — The application client ID created for JupiterOne, used to authenticate with Azure. Find this on your App Registration's Overview tab.
-
Directory (tenant) ID — The tenant ID of the Active Directory to target in Azure API requests. Also found on your App Registration's Overview tab.
-
Application (client) Secret — The client secret value you copied in the previous step. This field is masked after entry; paste the value before closing the Azure Portal tab.
Click Create to finish.
Next steps
Once configured, the integration will run on the polling interval you set, populating data in JupiterOne. See the Instance management guide for more on managing integration instances.
Permissions
IAM permissions that must be granted to the integration principal for data ingestion.
Show Permissions (5)
AdvancedQuery.Read.AllMachine.Read.AllOrganization.Read.AllUser.Read.AllVulnerability.Read.All
Endpoints
API endpoints that the integration makes requests to.
Show Endpoints (6)
https://api.securitycenter.microsoft.com/api/advancedqueries/runhttps://api.securitycenter.microsoft.com/api/machineshttps://api.securitycenter.microsoft.com/api/machines/{machineId}/logonusershttps://api.securitycenter.microsoft.com/api/machines/{machineId}/vulnerabilitieshttps://graph.microsoft.com/v1.0/organizationhttps://graph.microsoft.com/v1.0/users
Documentation Links
Links to provider documentation relevant to setup and configuration.
Show Documentation Links (9)
- https://learn.microsoft.com/en-us/defender-endpoint/api/api-permissions
- https://learn.microsoft.com/en-us/defender-endpoint/api/get-discovered-vulnerabilities
- https://learn.microsoft.com/en-us/defender-endpoint/api/get-machine-log-on-users
- https://learn.microsoft.com/en-us/defender-endpoint/api/get-machines
- https://learn.microsoft.com/en-us/defender-endpoint/api/run-advanced-query-api
- https://learn.microsoft.com/en-us/graph/api/organization-get
- https://learn.microsoft.com/en-us/graph/api/user-list
- https://learn.microsoft.com/en-us/graph/permissions-reference#organizationreadall
- https://learn.microsoft.com/en-us/graph/permissions-reference#userreadall
Per-Step Breakdown
Detailed authorization requirements for each ingestion step.
Show all steps (4)
| Step | Permissions | Endpoints |
|---|---|---|
| Build Endpoint Has Vulnerability Relationships | - | - |
| Fetch Endpoints | AdvancedQuery.Read.All | https://api.securitycenter.microsoft.com/api/advancedqueries/run |
| Fetch Logon Users | Machine.Read.All, AdvancedQuery.Read.All | https://api.securitycenter.microsoft.com/api/machines/{machineId}/logonusers, https://api.securitycenter.microsoft.com/api/advancedqueries/run |
| Fetch Vulnerabilities | Vulnerability.Read.All | https://api.securitycenter.microsoft.com/api/machines/{machineId}/vulnerabilities |
Entities
The following entities are created:
| Resources | Entity _type | Entity _class |
|---|---|---|
| Account | microsoft_defender_account | Account |
| Device/Machine/Host | microsoft_defender_user_endpoint | Device |
| Logon User | microsoft_defender_logon_user | User |
| Machine | microsoft_defender_machine | HostAgent |
| User | microsoft_defender_user | User |
| Vulnerability | microsoft_defender_vulnerability | Vulnerability, Finding |
| Vulnerability | microsoft_defender_vulnerability | Finding |
Relationships
The following relationships are created:
Source Entity _type | Relationship _class | Target Entity _type |
|---|---|---|
microsoft_defender_account | HAS | microsoft_defender_user |
microsoft_defender_account | HAS | microsoft_defender_machine |
microsoft_defender_machine | PROTECTS | microsoft_defender_user_endpoint |
microsoft_defender_machine | IDENTIFIED | microsoft_defender_vulnerability |
microsoft_defender_machine | HAS | microsoft_defender_logon_user |
microsoft_defender_user_endpoint | HAS | microsoft_defender_vulnerability |
Mapped Relationships
The following mapped relationships are created:
Source Entity _type | Relationship _class | Target Entity _type | Direction |
|---|---|---|---|
microsoft_defender_user_endpoint | IS | aws_instance | FORWARD |
microsoft_defender_vulnerability | IS | cve | FORWARD |
Microsoft Defender Account
microsoft_defender_account inherits from Account
| Property | Type | Description | Specifications |
|---|---|---|---|
defaultDomain | string | ||
organizationName | string | null | ||
verifiedDomains | array of strings |
Microsoft Defender Logon User
microsoft_defender_logon_user inherits from User
| Property | Type | Description | Specifications |
|---|---|---|---|
domain | string | null | ||
firstSeenOn | number | ||
lastSeenOn | number | ||
logonTypes * | string |
Microsoft Defender Machine
microsoft_defender_machine inherits from HostAgent
| Property | Type | Description | Specifications |
|---|---|---|---|
aadDeviceId * | string | null | ||
agentVersion * | string | ||
computerDnsName * | string | ||
defenderAvStatus * | string | ||
firstSeenOn | number | ||
ipAddress * | array of strings | ||
macAddress * | array of strings | ||
machineTags * | array of strings | ||
managedBy * | string | ||
managedByStatus * | string | ||
onboardingStatus * | string | ||
rbacGroupId * | number | ||
rbacGroupName * | string | null | ||
riskScore * | string |
Microsoft Defender User
microsoft_defender_user inherits from User
| Property | Type | Description | Specifications |
|---|---|---|---|
businessPhones | array of strings | ||
givenName | string | null | ||
jobTitle | string | null | ||
mail | string | null | ||
mobilePhone | string | null | ||
officeLocation | string | null | ||
preferredLanguage | string | null | ||
surname | string | null | ||
userPrincipalName | string | null |
Microsoft Defender User Endpoint
microsoft_defender_user_endpoint inherits from Device
| Property | Type | Description | Specifications |
|---|---|---|---|
aadDeviceId * | string | null | ||
agentVersion * | string | ||
cloudProvider | string | ||
computerDnsName * | string | ||
defenderAvStatus * | string | ||
deviceValue * | string | ||
exposureLevel * | string | ||
firstSeenOn | number | ||
healthStatus * | string | ||
ipAddress * | array of strings | ||
ipAddresses * | array of strings | ||
isAadJoined * | boolean | null | ||
lastExternalIpAddress * | string | ||
lastIpAddress * | string | ||
macAddress * | array of strings | ||
machineTags * | array of strings | ||
managedBy * | string | ||
managedByStatus * | string | ||
onboardingStatus * | string | ||
osArchitecture * | string | ||
osBuild * | number | null | ||
osPlatform * | string | ||
osProcessor | string | ||
rbacGroupId * | number | ||
rbacGroupName * | string | null | ||
resourceId | string | ||
riskScore * | string | ||
status | string | ||
subscriptionId | string | ||
vmId | string |
Microsoft Defender Vulnerability
microsoft_defender_vulnerability inherits from Vulnerability, Finding
| Property | Type | Description | Specifications |
|---|---|---|---|
blocking * | boolean | ||
cveSupportability | string | ||
cvssVector | string | ||
exposedMachines * | number | ||
id * | string | ||
publishedOn | number |
Microsoft Defender Vulnerability
microsoft_defender_vulnerability inherits from Finding
| Property | Type | Description | Specifications |
|---|---|---|---|
blocking * | boolean | ||
cveSupportability | string | ||
cvssVector | string | ||
exposedMachines * | number | ||
id * | string | ||
publishedOn | number |
Release Notes
- 2026-04-08 — Improved OS data model accuracy for Microsoft Defender endpoint entities.
- 2026-04-01 — Added mapped relationships from Microsoft Defender endpoints to AWS EC2 instances, enabling cross-cloud device correlation.
- 2026-03-05 — Added optional Advanced Hunting API enrichment to link Microsoft Defender endpoints with cloud resource identifiers from AWS and GCP.
- 2025-12-02 — Added CVSS vector string and CVE supportability properties to Microsoft Defender vulnerability and finding entities.
- 2025-09-11 — Added relationships linking Azure virtual machines to their corresponding Microsoft Defender endpoint data.
- 2025-06-04 — Microsoft Defender endpoint vulnerability entities now support both the Vulnerability and Finding entity classes for improved data model compatibility.