Skip to main content

Microsoft Graph Azure AD Reporting

icon

The Sumo Logic App for Microsoft Graph Azure AD Reporting enables you to access and monitor data, including audit information, user activity, sign-in patterns, and provisioning activities. It helps you to gain insights into how your organization uses Azure AD and identify potential security issues.

Key features of the Microsoft Graph Azure AD Reporting app include:

  • Analyze Audit Activities. Provides real-time user activity for every resource category and shows the distribution of audits by operations and services.
  • Monitor Sign-In activities. Monitor sign-in activities for your organization, including the number of successful and failed sign-ins, sign-ins by user location, sign-ins by application, and sign-ins from risky countries.
  • Identify Suspicious Activities. Identify suspicious activity, such as sign-ins from unfamiliar/risky locations or multiple sign-in attempts.
  • Analyze Provisioning Activities. Provides distribution of provisioning activities by status, actions, and initiators. It also shows the most frequent service principals used while provisioning.

Log types​

The App uses Microsoft Graph Azure AD Reporting Source to collect Audit, Sign-in, and Provisioning activities.

Sample log messages​

View Sample Log Message
Audit Activity Message
{
"id": "Directory_d4d04864-b03e-4a15-9899-cb36abd1e7d2_CYJZP_45515702",
"category": "ApplicationManagement",
"correlationId": "d4d04864-b03e-4a15-9899-cb36abd1e7d2",
"result": "success",
"resultReason": "",
"activityDisplayName": "Hard delete service principal",
"activityDateTime": "2023-05-09T11:41:56.7381342Z",
"loggedByService": "Core Directory",
"operationType": "Delete",
"initiatedBy": {
"user": null,
"app": {
"appId": null,
"displayName": "Managed Service Identity",
"servicePrincipalId": "3a0e6816-ad4e-44fa-9cae-ffc0ad8a2ff2",
"servicePrincipalName": null
}
},
"targetResources": [
{
"id": "5c0e70ea-8ac7-4d99-8313-10041699c5cc",
"displayName": "SUMOBRDLQProcessorjw5wh7hnrrv46",
"type": "ServicePrincipal",
"userPrincipalName": null,
"groupType": null,
"modifiedProperties": [
{
"displayName": "TargetId.ServicePrincipalNames",
"oldValue": null,
"newValue": "\"551d1b05-a73a-493a-b348-dab7d1193c03;https://identity.azure.net/4ZA1q0sKiZEg6SXU8aYi7Lci6VKrg+aVo//Dp2vYGuU=\""
},
{
"displayName": "ActorId.ServicePrincipalNames",
"oldValue": null,
"newValue": "\"ef5d5c69-a5df-46bb-acaf-426f161a21a2;https://serviceidentity.azure.net/\""
},
{
"displayName": "SPN",
"oldValue": null,
"newValue": "\"ef5d5c69-a5df-46bb-acaf-426f161a21a2;https://serviceidentity.azure.net/\""
}
]
}
],
"additionalDetails": [
{
"key": "AppId",
"value": "551d1b05-a73a-493a-b348-dab7d1193c03"
}
]
}
Sign-In Activity
{
"id": "66ea54eb-6301-4ee5-be62-ff5a759100",
"createdDateTime": "2023-05-09T11:41:56.7381342Z",
"userDisplayName": "Contoso",
"userPrincipalName": "account1@contoso.com",
"userId": "26be570a-ae82-4189-b4e2-a37c6808512d",
"appId": "de8bc8b5-d9f9-48b1-a8ad-b748da725064",
"appDisplayName": "Graph explorer",
"ipAddress": "51.79.214.246",
"clientAppUsed": "SMTP",
"correlationId": "d79f5bee-5860-4832-928f-3133e22ae912",
"conditionalAccessStatus": "success",
"isInteractive": false,
"riskDetail": "adminGeneratedTemporaryPassword",
"riskLevelAggregated": "medium",
"riskLevelDuringSignIn": "none",
"riskState": "confirmedSafe",
"riskEventTypes": [
"anonymizedIPAddress",
"maliciousIPAddress"
],
"resourceDisplayName": "Microsoft Security",
"resourceId": "00000003-0000-0000-c000-000000000000",
"status": {
"errorCode": 0,
"failureReason": null,
"additionalDetails": null
},
"deviceDetail": {
"deviceId": "",
"displayName": null,
"operatingSystem": "Windows 10",
"browser": "Edge 80.0.361",
"isCompliant": null,
"isManaged": null,
"trustType": null
},
"location": {
"city": "Redmond",
"state": "Washington",
"countryOrRegion": "US",
"geoCoordinates": {
"altitude": null,
"latitude": 47.68050003051758,
"longitude": -122.12094116210938
}
},
"appliedConditionalAccessPolicies": [
{
"id": "de7e60eb-ed89-4d73-8205-2227def6b7c9",
"displayName": "SharePoint limited access for guest workers",
"enforcedGrantControls": [],
"enforcedSessionControls": [],
"result": "notEnabled"
},
{
"id": "6701123a-b4c6-48af-8565-565c8bf7cabc",
"displayName": "Medium signin risk block",
"enforcedGrantControls": [],
"enforcedSessionControls": [],
"result": "notEnabled"
}
]
}
Provisioning Activity
{
"id": "75b5b0ae-9fc5-8d0e-e0a9-7y6a4728de56",
"activityDateTime": "2019-05-09T03:00:54Z",
"tenantId": "74beb175-3b80-7b63-b9d5-6f0b76082b16",
"jobId": "aws.74beb1753b704b63b8d56f0b76082b16.10a7a801-7101-4c69-ae00-ce9f75f8460a",
"cycleId": "b6502552-018d-79bd-8869-j47194dc65c1",
"changeId": "b6502552-018d-89bd-9969-b49194dc65c1",
"provisioningAction": "update",
"durationInMilliseconds": 3236,
"provisioningStatusInfo": {
"status": "failure",
"errorInformation": null
},
"provisioningSteps": [
{
"name": "EntryImport",
"provisioningStepType": "Import",
"status": "success",
"description": "Retrieved RolesCompound '10a7a801-7101-4c69-ae00-ce9f75f8460a' from Contoso",
"details": {}
},
{
"name": "EntryExportUpdate",
"provisioningStepType": "Export",
"status": "success",
"description": "RolesCompound '60a7a801-7101-4c69-ae00-ce9f75f8460a' was updated in Azure Active Directory",
"details": {
"ReportableIdentifier": "60a7a801-7101-4c69-ae00-ce9f75f8460a"
}
}
],
"modifiedProperties": [
{
"displayName": "appId",
"oldValue": null,
"newValue": "60a7a801-7101-4c69-ae00-ce9f75f8460a"
},
{
"displayName": "Roles",
"oldValue": null,
"newValue": "jaws-prod-role2,jaws-prod-saml2, jayaws-role,jayaws-saml, TestRole,super-saml"
},
{
"displayName": "objectId",
"oldValue": null,
"newValue": "6nn37b93-185a-4485-a519-50c09549f3ad"
},
{
"displayName": "displayName",
"oldValue": null,
"newValue": "Contoso"
},
{
"displayName": "homepage",
"oldValue": null,
"newValue": "https://signin.contoso.com/saml?metadata=contoso|ISV9.1|primary|z"
}
],
"servicePrincipal": {
"id": "6cc35b93-185a-4485-a519-50c09549g3ad",
"displayName": "Sontoco"
},
"sourceSystem": {
"id": "d1e090e1-f2f4-4678-be44-6442ffff0621",
"displayName": "Contoso",
"details": {}
},
"targetSystem": {
"id": "e69d4bd2-2da2-483e-bc49-aad4080b91b3",
"displayName": "Azure Active Directory",
"details": {
"ApplicationId": "bcf4d658-ac9f-408d-bf04-e86dc10328fb",
"ServicePrincipalId": "6nn35b93-185a-4485-a519-50c09549f3ad",
"ServicePrincipalDisplayName": "Contoso"
}
},
"initiatedBy": {
"initiatingType": "user",
"id": "",
"displayName": "Azure AD Provisioning Service"
},
"sourceIdentity": {
"identityType": "RolesCompound",
"id": "60a7a801-7101-4c69-ae00-ce9f75f8460a",
"displayName": "",
"details": {}
},
"targetIdentity": {
"identityType": "ServicePrincipal",
"id": "6nn35b93-185a-4485-a519-50c09549f3ad",
"displayName": "",
"details": {}
}
}

Sample queries​

View Sample Queries
Audis by Resource Categories (Audit Activity)
_sourceCategory="azure_ad_reporting" "activityDisplayName" "operationType"
| json "id","activityDisplayName","category","loggedByService","operationType","result","resultReason","targetResources[*].type","initiatedBy.user","initiatedBy.app" as id,activity,category,logged_by_service,operation_type,operation_result,result_reason,target_resource_type,is_user_initiator,is_app_initiator nodrop
| where category matches "{{resource_category}}"
| where logged_by_service matches"{{service}}"
| where operation_result matches "{{operation_result}}"
| where operation_type matches "{{operation_type}}"
| if (isNull(is_user_initiator),"app","user") as initiator
| where initiator matches "{{initiator}}"
| count_distinct(id) as frequency by category
| sort by frequency
Sign-In Over Time (Sign-In Activity)
_sourceCategory="azure_ad_reporting" "appDisplayName" "clientAppUsed" "ipAddress" "resourceId"
| json "id","ipAddress","clientAppUsed","isInteractive","resourceDisplayName","riskDetail","riskEventTypes","riskLevelAggregated","riskState","status.failureReason","conditionalAccessStatus" as id, ip,client_app_used,is_interactive,resource,risk_reason,risk_event_types,risk_level,risk_state,failure_reason,conditional_activity_status nodrop
| where risk_reason matches "{{risk_reason}}"
| where risk_level matches "{{risk_level}}"
| where risk_state matches "{{risk_state}}"
| where client_app_used matches "{{client_app_used}}"
| where conditional_activity_status matches "{{conditional_access_policy_status}}"
| if(isNull(failure_reason) or isBlank(failure_reason),"false","true") as sign_in_failed
| where sign_in_failed matches "{{sign_in_failed}}"
| timeslice 1d
| count_distinct(id) by _timeslice
| fillmissing timeslice
Average Provisioning Activity Time (Provisioning Activity)
_sourceCategory="azure_ad_reporting" "provisioningAction" "provisioningSteps" "provisioningStatusInfo"
| json "id","provisioningStatusInfo.status","provisioningAction","durationInMilliseconds","initiatedBy.initiatingType","servicePrincipal.displayName","sourceIdentity.identityType","sourceSystem.displayName","targetIdentity.identityType","targetSystem.displayName" as id,provisioning_status,provisioning_action,duration_in_ms,initiated_by,service_principal,source_identity_type,source_system,target_identity_type,target_system_name nodrop
| where initiated_by matches "{{initiated_by}}"
| where provisioning_action matches "{{provisioning_action}}"
| where provisioning_status matches "{{provisioning_status}}"
| where service_principal matches "{{service_principal}}"
| count_distinct(id) by duration_in_ms
| avg(duration_in_ms)

Set up collection​

Follow the instructions for setting up Microsoft Graph Azure AD Reporting source and use the same source category while installing the app.

Installing the Microsoft Graph Azure AD Reporting app​​

This section has instructions for installing the Microsoft Graph Azure AD Reporting app for Sumo Logic.

To install the app, do the following:

  1. From the Sumo Logic navigation, select App Catalog.
  2. In the Search Apps field, search for and then select your app.
    Optionally, you can scroll down to preview the dashboards included with the app.
  3. To install the app, click Install App.
  4. Click Next in the Setup Data section.
  5. In the Configure section of the respective app, complete the following fields.
    1. Key. Select either of these options for the data source.
      • Choose Source Category, and select a source category from the list for Default Value.
      • Choose Custom, and enter a custom metadata field. Insert its value in Default Value.
  6. Click Next. You will be redirected to the Preview & Done section.

Your app will be installed in the Installed Apps folder and dashboard panels will start to fill automatically.

Each panel slowly fills with data matching the time range query and received since the panel was created. Results will not immediately be available, updating with full graphs and charts over time.

Viewing Microsoft Graph Azure AD Reporting dashboards​

All dashboards have a set of filters that you can apply to the entire dashboard. Use these filters to drill down and examine the data to a granular level.

  • You can change the time range for a dashboard or panel by selecting a predefined interval from a drop-down list, choosing a recently used time range, or specifying custom dates and times. Learn more.
  • You can use template variables to drill down and examine the data on a granular level. For more information, see Filter with template variables.
  • Most Next-Gen apps allow you to provide the scope at the installation time and are comprised of a key (_sourceCategory by default) and a default value for this key. Based on your input, the app dashboards will be parameterized with a dashboard variable, allowing you to change the dataset queried by all panels. This eliminates the need to create multiple copies of the same dashboard with different queries.

Microsoft Graph Azure AD Reporting - Audits​

Microsoft Graph Azure AD Reporting - Audits dashboard enables you to analyze the distribution of audit activities across resource categories, audit operations, and audit services. You can also view the distribution of user agents that perform audits and target resource types. This dashboard also highlights the most common reasons for activity failures. Additionally, it presents a summary of recent audit activities. Altogether this dashboard provides valuable insights into your organization's audit activity data.
Microsoft-Graph-Azure-AD-Reporting-Audits

Microsoft Graph Azure AD Reporting - Sign-Ins​

Microsoft Graph Azure AD Reporting - Sign-Ins dashboard provides valuable insights into your organization's sign-in activity data over time. It displays the geographical locations of sign-in activities, including those from high-risk countries. You can also see the distribution of interactive users and the client apps used for sign-in activities. The dashboard also highlights the most frequently accessed resources. Risk analysis is provided by showing the distribution of risk states, risk levels, and risk event types. Additionally, the reasons for risk detection are displayed. The dashboard also provides visibility into recent sign-in activities, making it a useful tool for monitoring and managing your organization's security posture.
Microsoft-Graph-Azure-AD-Reporting-Sign-Ins

Microsoft Graph Azure AD Reporting - Provisioning Activities​

Microsoft Graph Azure AD Reporting - Provisioning Activities dashboard provides valuable insights into all provisioning activities occurring in your account. It displays the average time for each provisioning activity and provides a distribution of provisioning activities by status, actions, and initiators. Additionally, you can view the most frequently used service principal during provisioning. The dashboard also gives you visibility into recent provisioning activities, making it a useful tool for monitoring and managing your organization's provisioning processes.
Microsoft-Graph-Azure-AD-Reporting-Provisioning-Activities

Status
Legal
Privacy Statement
Terms of Use

Copyright Β© 2024 by Sumo Logic, Inc.