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​

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

Sample log messages​

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)

Collection configuration and app installation​

Depending on the set up collection method, you can configure and install the app in three ways:

  • Create a new collector and install the app. Create a new Sumo Logic Cloud-to-Cloud (C2C) source under a new Sumo Logic Collector and later install the app; Or
  • Use an existing collector and install the app. Create a new Sumo Logic Cloud-to-Cloud (C2C) source under an existing Sumo Logic Collector and later install the app; Or
  • Use existing source and install the app. Use your existing configured Sumo Logic Cloud-to-Cloud (C2C) source and install the app.
info

Use the Cloud-to-Cloud Integration for Microsoft Graph Azure AD Reporting to create the source and use the same source category while installing the app. By following these steps, you can ensure that your Microsoft Graph Azure AD Reporting app is properly integrated and configured to collect and analyze your Microsoft Graph Azure AD Reporting data.

Create a new collector and install the app​

To set up collection and install the app, do the following:

  1. Select App Catalog.
  2. In the 🔎 Search Apps field, run a search for your desired app, then select it.
  3. Click Install App.
    note

    Sometimes this button says Add Integration.

  4. In the Set Up Collection section of your respective app, select Create a new Collector.
    1. Collector Name. Enter a Name to display for the Source in the Sumo Logic web application. The description is optional.
    2. Timezone. Set the default time zone when it is not extracted from the log timestamp. Time zone settings on Sources override a Collector time zone setting.
    3. (Optional) Metadata. Click the +Add Metadata link to add custom log Metadata Fields. Define the fields you want to associate, each metadata field needs a name (key) and value.
      • green check circle.png A green circle with a check mark is shown when the field exists and is enabled in the Fields table schema.
      • orange exclamation point.png An orange triangle with an exclamation point is shown when the field doesn't exist, or is disabled, in the Fields table schema. In this case, an option to automatically add or enable the nonexistent fields to the Fields table schema is provided. If a field is sent to Sumo that does not exist in the Fields schema or is disabled it is ignored, known as dropped.
    4. Click Next.
  5. Use the new Cloud-to-Cloud Integration to configure the source.
  6. In the Configure section of your 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.
  7. Click Next. You will be redirected to the Preview & Done section.

Post-installation

Once your app is installed, it will appear in your 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, but will update with full graphs and charts over time.

Use an existing collector and install the app​

To setup source in the existing collector and install the app, do the following:

  1. Select App Catalog.
  2. In the 🔎 Search Apps field, run a search for your desired app, then select it.
  3. Click Install App.
    note

    Sometimes this button says Add Integration.

  4. In the Set Up Collection section of your respective app, select Use an existing Collector.
  5. From the Select Collector dropdown, select the collector that you want to setup your source with and click Next.
  6. Use the new Cloud-to-Cloud Integration to configure the source.
  7. In the Configure section of your 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.
  8. Click Next. You will be redirected to the Preview & Done section.

Post-installation

Once your app is installed, it will appear in your 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, but will update with full graphs and charts over time.

Use an existing source and install the app​

To skip collection and only install the app, do the following:

  1. Select App Catalog.
  2. In the 🔎 Search Apps field, run a search for your desired app, then select it.
  3. Click Install App.
    note

    Sometimes this button says Add Integration.

  4. In the Set Up Collection section of your respective app, select Skip this step and use existing source and click Next.
  5. In the Configure section of your 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.

Post-installation

Once your app is installed, it will appear in your 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, but will update 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 Filtering Dashboards 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.

Audits​

The 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

Sign-Ins​

The 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

Provisioning Activities​

The 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

Upgrade/Downgrade the Microsoft Graph Azure AD Reporting app (Optional)​

To update the app, do the following:

  1. Select App Catalog.
  2. In the Search Apps field, search for and then select your app.
    Optionally, you can identify apps that can be upgraded in the Upgrade available section.
  3. To upgrade the app, select Upgrade from the Manage dropdown.
    1. If the upgrade does not have any configuration or property changes, you will be redirected to the Preview & Done section.
    2. If the upgrade has any configuration or property changes, you will be redirected to Setup Data page.
      1. In the Configure section of your respective app, complete the following fields.
        • 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.
      2. Click Next. You will be redirected to the Preview & Done section.

Post-update

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

note

See our Release Notes changelog for new updates in the app.

To revert the app to a previous version, do the following:

  1. Select App Catalog.
  2. In the Search Apps field, search for and then select your app.
  3. To version down the app, select Revert to < previous version of your app > from the Manage dropdown.

Uninstalling the Microsoft Graph Azure AD Reporting app (Optional)​

To uninstall the app, do the following:

  1. Select App Catalog.
  2. In the 🔎 Search Apps field, run a search for your desired app, then select it.
  3. Click Uninstall.
Status
Legal
Privacy Statement
Terms of Use

Copyright © 2024 by Sumo Logic, Inc.