Skip to content

Connect to Microsoft MCP integrations

Most Microsoft MCP integrations use the same connection pattern:

  1. Create an app registration in Microsoft Entra ID.
  2. Create a client secret.
  3. Create the integration in Nango and add the client ID and client secret.
  4. Copy the OAuth callback URL from Nango and add it to the app registration as a Web redirect URI under Authentication.
  5. Add the Microsoft API permissions required by the integration.
  6. Complete the Microsoft authorization flow.

This page covers the common setup. Each Microsoft integration still has its own permission list. Use the permission list provided by Kindo for the integration you are connecting.

Use this guide for Microsoft integrations that authenticate through Microsoft Entra ID, including:

  • Microsoft Azure
  • Microsoft Defender
  • Microsoft Defender for Cloud
  • Microsoft eDiscovery
  • Microsoft Entra ID
  • Microsoft Entra ID Governance
  • Microsoft Excel Online
  • Microsoft Fabric
  • Microsoft Graph Security (Microsoft Defender XDR)
  • Microsoft Intune
  • Microsoft Outlook
  • Microsoft Purview Compliance
  • Microsoft Purview Data Governance
  • Microsoft Teams
  • SharePoint Online

Some integrations need extra tenant, endpoint, subscription, or target-user values. If Kindo gives you additional fields for a specific integration, enter them in the Kindo integration form after you complete the common Entra setup.

  • A Microsoft Entra ID tenant.
  • Permission to create or update app registrations in that tenant.
  • Permission to grant admin consent if the requested Microsoft API permissions require it.
  • Access to the Nango dashboard for your Kindo deployment.
  • The permission list for the Microsoft integration you are connecting.
  1. Open the Microsoft Entra admin center.

  2. Go to Entra ID > App registrations.

  3. Click New registration.

  4. Enter a clear name, such as Kindo Microsoft MCP or Kindo - <Integration Name>.

  5. Choose the supported account type for your tenant. For most enterprise setups, choose Accounts in this organizational directory only.

  6. Leave Redirect URI empty for now. You will add the OAuth callback URL from Nango in a later step.

  7. Click Register.

  1. Open the app registration you just created.

  2. Go to Overview.

  3. Copy Application (client) ID.

  4. If the Kindo integration asks for it, also copy Directory (tenant) ID.

  1. In the app registration, go to Certificates & secrets.

  2. Open the Client secrets tab.

  3. Click New client secret.

  4. Add a description, such as Kindo integration.

  5. Choose an expiration period that matches your organization’s policy.

  6. Click Add.

  7. Copy the secret Value immediately.

  1. Open the Nango dashboard for your Kindo deployment.

  2. Create a new integration for the Microsoft MCP you are connecting.

  3. Enter the values from your Entra app registration:

    FieldWhere to find it
    Client IDApp registration > Overview > Application (client) ID
    Client SecretApp registration > Certificates & secrets > Client secrets > Value
    Tenant IDApp registration > Overview > Directory (tenant) ID, if requested
  4. Add any integration-specific fields that are requested, such as a Purview endpoint URL, Azure subscription ID, or target user ID.

  5. Save the integration.

  6. Copy the OAuth callback URL shown in the Nango integration setup. You need it in the next step.

    The callback URL usually ends with:

    /oauth/callback

Step 5: Add the Nango callback URL to the app registration

Section titled “Step 5: Add the Nango callback URL to the app registration”
  1. In the Microsoft Entra admin center, go back to your app registration.

  2. Go to Authentication.

  3. Under Platform configurations, click Add a platform and select Web.

  4. Paste the OAuth callback URL you copied from Nango as the Redirect URI.

  5. Save the configuration.

  1. In the app registration, go to API permissions.

  2. Click Add a permission.

  3. Select the Microsoft API required by your integration. Most Microsoft 365 integrations use Microsoft Graph.

  4. Choose Delegated permissions. Kindo integrations use delegated permissions only.

  5. Add the permissions from the integration-specific permission list.

  6. If required, click Grant admin consent.

Delegated permissions act as the signed-in user. The integration’s effective access is the intersection of two grants:

  • the permissions granted to the application, and
  • the permissions the signed-in user already has in the tenant.

The integration can never reach data the signed-in user cannot access themselves, and the user’s access through the integration is limited to what the registered application’s permissions allow. For example, if the app holds Sites.ReadWrite.All but the signed-in user only has read access to a SharePoint site, the integration cannot write to that site.

This integration authenticates against Azure Resource Manager, not Microsoft Graph. An app registration set up for a Graph integration on this page will not work here, and vice versa.

The app registration is still created in Microsoft Entra ID: Azure identity lives in Entra, so an Azure Resource Manager token is an Entra token.

Add the following instead of the Microsoft Graph permissions:

APIPermissionTypeAdmin consent required
Azure Resource Manageruser_impersonationDelegatedNo

Find Azure Resource Manager under the APIs my organization uses tab when adding a permission (App ID 797f4846-ba00-4fd7-ba43-dac1f8f63013).

When linking the connection, Kindo also asks for:

FieldDescription
Tenant IDApp registration > Overview > Directory (tenant) ID
Subscription IDOptional. The default subscription for tools that need one. Management-group and tenant-scoped tools work without it.

The user_impersonation permission grants no access to any Azure resource. It only lets Kindo sign you in and request an Azure Resource Manager token on your behalf. What that token can read comes entirely from Azure RBAC, so also assign a role to your account (Azure Portal > Subscriptions > your subscription > Access control (IAM) > Add role assignment):

RoleGrants
ReaderAll read tools: subscriptions, resource groups, resources, policy and compliance, RBAC, and management groups

Assign Reader at a management group instead to cover every subscription beneath it in one assignment.

Microsoft Azure can also connect in application mode, where the integration authenticates as the app itself (client credentials) instead of as a signed-in user. Use the Microsoft Azure (Application) integration in Kindo. Set it up as its own integration, with its own app registration, client ID, and client secret — Steps 1 to 4 on this page apply unchanged.

Two things differ from the delegated setup above.

Skip Step 6. Application mode needs no API permissions at all. Azure Resource Manager exposes no application permissions, so there is nothing to add and nothing to consent. Adding Microsoft Graph application permissions grants a service principal no Azure access.

Assign the RBAC role to the app, not to yourself. With no signed-in user, the service principal is the only identity involved, so it needs the role directly (Azure Portal > Subscriptions > your subscription > Access control (IAM) > Add role assignment > Reader > Members > User, group, or service principal, then search for the app registration by name). Assign at a management group to cover every subscription beneath it.

Select the Microsoft Azure (Government) integration in Kindo rather than Microsoft Azure, and create its app registration in the Azure Government portal at portal.azure.us. A commercial app registration cannot be used.

Add the same permission, connection fields, and RBAC role as above.

Azure has no separate GCC and GCC High tiers — every Azure Government subscription uses this integration.

This integration uses permissions from three APIs: Microsoft Graph, Microsoft Threat Protection, and WindowsDefenderATP. All of them are Delegated permissions. Find Microsoft Threat Protection and WindowsDefenderATP under the APIs my organization uses tab when adding a permission.

Add the following Microsoft Graph permissions:

PermissionDescriptionAdmin consent required
User.ReadSign in and read user profileNo

Add the following Microsoft Threat Protection permissions:

PermissionDescriptionAdmin consent required
Incident.ReadRead incidentsYes
Incident.ReadWriteRead and write incidentsYes

Add the following WindowsDefenderATP permissions:

PermissionDescriptionAdmin consent required
AdvancedQuery.ReadRun advanced queriesYes
Alert.ReadRead alertsYes
Alert.ReadWriteRead and write alertsYes
Machine.IsolateIsolate machineYes
Machine.ReadRead machine informationYes
Machine.ScanScan machineYes
Ti.ReadWriteRead and write IOCsYes

Select the Microsoft Defender for Endpoint (GCC High) integration in Kindo rather than Microsoft Defender, and create its app registration in the Azure Government portal at portal.azure.us. A commercial app registration cannot be used.

Add the same permissions listed above.

This integration supports GCC High and DoD tenants. GCC tenants are not supported.

This is a separate integration and product from Microsoft Defender above — it authenticates against Azure Resource Manager, not Microsoft Graph, so its setup differs from the other integrations on this page. An app registration set up for Microsoft Defender will not work here, and vice versa.

Add the following permission instead of Microsoft Graph:

APIPermissionTypeAdmin consent required
Azure Resource Manageruser_impersonationDelegatedNo

Find Azure Resource Manager under the APIs my organization uses tab when adding a permission (App ID 797f4846-ba00-4fd7-ba43-dac1f8f63013).

When linking the connection, Kindo also asks for:

FieldDescription
Tenant IDApp registration > Overview > Directory (tenant) ID
Subscription IDThe Azure subscription to monitor with Defender for Cloud

In addition to the Entra app permission, assign an Azure RBAC role to your account on that subscription (Azure Portal > Subscriptions > your subscription > Access control (IAM) > Add role assignment):

RoleGrants
Security ReaderAll read tools (alerts, recommendations, secure score, compliance overview, security coverage)
Security AdminEverything Security Reader does, plus dismissing/updating alerts

list_alerts returns empty until at least one paid Defender plan (e.g. Defender for Servers) is enabled on the subscription — the free tier still covers secure score, recommendations, and compliance overview.

Microsoft Defender for Cloud — US Government
Section titled “Microsoft Defender for Cloud — US Government”

Select the Microsoft Defender for Cloud (Government) integration in Kindo rather than Microsoft Defender for Cloud, and create its app registration in the Azure Government portal at portal.azure.us. A commercial app registration cannot be used.

Add the same permission, connection fields, and RBAC role as above.

Some tools return fewer results than in the commercial cloud:

ToolIn Azure Government
list_recommendation_findingsMachine vulnerability findings aren’t included.
list_security_coverageDefender for AI Services, App Service, and Azure Cosmos DB aren’t listed.
get_compliance_overviewThe available compliance standards differ.

Add the following Microsoft Graph permissions. All of them are Delegated permissions.

PermissionDescriptionAdmin consent required
eDiscovery.Read.AllRead all eDiscovery objectsYes
eDiscovery.ReadWrite.AllRead and write all eDiscovery objectsYes
offline_accessMaintain access to data you have given it access toNo
User.ReadSign in and read user profileNo

Microsoft eDiscovery can also connect in application mode, where the integration authenticates as the app itself (client credentials) instead of as a signed-in user. This is a separate connection from the standard delegated eDiscovery integration above — set it up as its own Kindo integration if you need automation that runs without a signed-in user.

Step A: Grant the Graph application permissions
Section titled “Step A: Grant the Graph application permissions”

Add the following Microsoft Graph permissions as Application permissions (not Delegated) on the app registration:

PermissionDescriptionAdmin consent required
eDiscovery.Read.AllRead all eDiscovery objectsYes
eDiscovery.ReadWrite.AllRead and write all eDiscovery objectsYes
Step B: Register the app in Microsoft Purview’s RBAC layer
Section titled “Step B: Register the app in Microsoft Purview’s RBAC layer”

This step happens in Security & Compliance PowerShell, not in Entra ID or the Purview portal UI — service principals cannot be added to eDiscovery role groups directly from the portal.

  1. Get the app’s Object ID — not the Application (client) ID. In the Microsoft Entra admin center, go to Enterprise applications, search for your app, and copy the Object ID shown there (this is a different ID than the one on the app registration’s Overview page).

  2. Install and connect the Exchange Online Management module:

    Terminal window
    Install-Module ExchangeOnlineManagement
    Import-Module ExchangeOnlineManagement
    Connect-IPPSSession
  3. Register the app as a service principal in Purview/Exchange’s RBAC system:

    Terminal window
    New-ServicePrincipal -AppId "<application-client-id>" -ObjectId "<enterprise-app-object-id>" -DisplayName "Kindo - Microsoft eDiscovery (Application)"
    Get-ServicePrincipal
  4. Add the service principal to the eDiscoveryManager role group:

    Terminal window
    Add-RoleGroupMember -Identity "eDiscoveryManager" -Member "<enterprise-app-object-id>"
    Get-RoleGroupMember -Identity "eDiscoveryManager"
  5. For access to all cases in the tenant rather than only cases the app is a member of, also grant eDiscovery Administrator:

    Terminal window
    Add-eDiscoveryCaseAdmin -User "<enterprise-app-object-id>"
    Get-eDiscoveryCaseAdmin

Prerequisites for Step B:

  • The tenant must have Microsoft Purview eDiscovery (Premium) licensed. A missing license produces the same 401 symptom even when both steps above are done correctly.
  • An account with the Role Management role in Microsoft Purview, to run the RoleGroupMember/eDiscoveryCaseAdmin cmdlets above.

Add the following Microsoft Graph permissions. All of them are Delegated permissions.

PermissionDescriptionAdmin consent required
AppRoleAssignment.ReadWrite.AllManage app permission grants and app role assignmentsYes
AuditLog.Read.AllRead audit log dataYes
Directory.Read.AllRead directory dataYes
DirectoryRecommendations.Read.AllRead Azure AD recommendationsYes
Group.Read.AllRead all groupsYes
GroupMember.Read.AllRead group membershipsYes
offline_accessMaintain access to data you have given it access toNo
Policy.Read.AllRead your organization’s policiesYes
Policy.Read.AuthenticationMethodRead authentication method policiesYes
Policy.Read.ConditionalAccessRead your organization’s conditional access policiesNo
Reports.Read.AllRead all usage reportsYes
RoleManagement.Read.DirectoryRead directory RBAC settingsYes
User.EnableDisableAccount.AllEnable and disable user accountsYes
User.ReadSign in and read user profileNo
User.Read.AllRead all users’ full profilesYes
User.ReadBasic.AllRead all users’ basic profilesNo

Reading conditional access policies and counting their impact from sign-in logs work without a premium licence. A tenant with no conditional access policies is usually running on Security Defaults, which the impact tools report by that name.

Microsoft Entra ID can also connect in application mode, where the integration authenticates as the app itself (client credentials) instead of as a signed-in user. This is a separate connection from the delegated integration above — set it up as its own Kindo integration if you need automation that runs without a signed-in user.

Add the following Microsoft Graph permissions as Application permissions (not Delegated) on the app registration. The set differs slightly from the delegated list: application mode reads app role assignments with Directory.Read.All and resolves users with User.Read.All.

PermissionDescriptionAdmin consent required
AuditLog.Read.AllRead all audit log dataYes
Directory.Read.AllRead directory dataYes
DirectoryRecommendations.Read.AllRead all Azure AD recommendationsYes
Group.Read.AllRead all groupsYes
GroupMember.Read.AllRead all group membershipsYes
Policy.Read.AllRead your organization’s policiesYes
Policy.Read.AuthenticationMethodRead authentication method policiesYes
Policy.Read.ConditionalAccessRead your organization’s conditional access policiesYes
Reports.Read.AllRead all usage reportsYes
RoleManagement.Read.DirectoryRead all directory RBAC settingsYes
User.EnableDisableAccount.AllEnable and disable user accountsYes
User.Read.AllRead all users’ full profilesYes

Two reports are delegated-only: Microsoft does not support application permissions for the authentication-method registration summary or the application sign-in summary, so those two tools fail on an application connection. Everything else works in either mode.

Add the following Microsoft Graph permissions. All of them are Delegated permissions.

PermissionDescriptionAdmin consent required
AccessReview.Read.AllRead all access reviews that user can accessYes
AccessReview.ReadWrite.AllManage all access reviews that user can accessYes
EntitlementManagement.Read.AllRead all entitlement management resourcesYes
EntitlementManagement.ReadWrite.AllRead and write entitlement management resourcesYes
LifecycleWorkflows-Reports.Read.AllRead all Lifecycle workflows reportsYes
LifecycleWorkflows-Workflow.ActivateRun workflows on demand in Lifecycle workflowsYes
LifecycleWorkflows-Workflow.ReadBasic.AllList all workflows in Lifecycle workflowsYes
offline_accessMaintain access to data you have given it access toNo
PrivilegedAssignmentSchedule.Read.AzureADGroupRead assignment schedules for access to Azure AD groupsYes
PrivilegedAssignmentSchedule.ReadWrite.AzureADGroupRead, create, and delete assignment schedules for access to Azure AD groupsYes
PrivilegedEligibilitySchedule.Read.AzureADGroupRead eligibility schedules for access to Azure AD groupsYes
PrivilegedEligibilitySchedule.ReadWrite.AzureADGroupRead, create, and delete eligibility schedules for access to Azure AD groupsYes
RoleAssignmentSchedule.Read.DirectoryRead all active role assignments for your company’s directoryYes
RoleAssignmentSchedule.ReadWrite.DirectoryRead, update, and delete all active role assignments for your company’s directoryYes
RoleEligibilitySchedule.Read.DirectoryRead all eligible role assignments for your company’s directoryYes
RoleEligibilitySchedule.ReadWrite.DirectoryRead, update, and delete all eligible role assignments for your company’s directoryYes
RoleManagement.Read.DirectoryRead directory RBAC settingsYes
User.ReadSign in and read user profileNo

Add the following Microsoft Graph permissions. All of them are Delegated permissions.

PermissionDescriptionAdmin consent required
Files.ReadRead user filesNo
Files.ReadWriteHave full access to user filesNo
offline_accessMaintain access to data you have given it access toNo
User.ReadSign in and read user profileNo

This integration authenticates as the app itself (a service principal using client credentials) instead of as a signed-in user, so its setup differs from the other integrations on this page:

  • No additional API permissions are required. The default User.Read permission that Entra adds to every new app registration is enough, and it does not need admin consent.
  • No redirect URI or user sign-in flow is needed. Skip Step 5, the Callback URL substep of Step 4, and the sign-in portion of Step 7. Use the Fabric connection form below instead of the Step 4 credentials table.
  • Access is controlled inside Microsoft Fabric, not in Entra. Queries run with the service principal’s permissions, so grant it only the read access you intend to expose.

Configure the service principal in Microsoft Fabric:

  1. In the Fabric admin portal, enable the Service principals can use Fabric APIs tenant setting.

  2. Open the target Fabric workspace and select Manage access.

  3. Add the app registration by name.

  4. Assign the least-privileged role that can reach the target Lakehouse or Warehouse — typically a Viewer role or explicit SELECT rights.

When linking the Microsoft Fabric account, the connection form asks for the following values:

FieldDescription
Tenant IDApp registration > Overview > Directory (tenant) ID
SQL Endpoint HostFull host,port of the Fabric Lakehouse SQL endpoint, for example foo.datawarehouse.fabric.microsoft.com,1433
Lakehouse DatabaseDatabase/lakehouse name
Client IDApp registration > Overview > Application (client) ID
Client SecretApp registration > Certificates & secrets > Client secrets > Value

Microsoft Graph Security (Microsoft Defender XDR)

Section titled “Microsoft Graph Security (Microsoft Defender XDR)”

“Microsoft Graph Security” is Kindo’s internal name for this integration (matching the Graph /security/... namespace it calls); Microsoft’s product name for the same surface is Defender XDR (formerly Microsoft 365 Defender) — the unified security portal correlating signals across Defender for Endpoint, Defender for Office 365, Defender for Identity, Defender for Cloud Apps, and Entra ID Protection. It’s a different product from both Microsoft Defender (Defender for Endpoint specifically, a separate integration on this page) and Microsoft Defender for Cloud (Azure’s cloud security posture management, unrelated to the Defender XDR family).

Add the following Microsoft Graph permissions. All of them are Delegated permissions.

PermissionDescriptionAdmin consent required
IdentityRiskyUser.Read.AllRead identity risky user informationYes
IdentityRiskyUser.ReadWrite.AllRead and write risky user informationYes
offline_accessMaintain access to data you have given it access toNo
SecurityAlert.Read.AllRead all security alertsYes
SecurityAlert.ReadWrite.AllRead and write to all security alertsYes
SecurityEvents.Read.AllRead your organization’s security eventsYes
SecurityIncident.Read.AllRead incidentsYes
SecurityIncident.ReadWrite.AllRead and write to incidentsYes
ThreatHunting.Read.AllRun hunting queriesYes
User.ReadSign in and read user profileNo
Microsoft Graph Security — Application mode
Section titled “Microsoft Graph Security — Application mode”

Microsoft Graph Security can also connect in application mode, where the integration authenticates as the app itself (client credentials) instead of as a signed-in user. This is a separate connection from the delegated integration above — set it up as its own Kindo integration if you need automation that runs without a signed-in user.

Add the same permissions listed above, but as Application permissions (not Delegated) on the app registration. Unlike eDiscovery’s application mode, this one doesn’t need any extra RBAC registration step — the Graph application permissions alone are sufficient.

Add the following Microsoft Graph permissions. All of them are Delegated permissions.

PermissionDescriptionAdmin consent required
DeviceManagementApps.Read.AllRead Microsoft Intune appsYes
DeviceManagementConfiguration.Read.AllRead Microsoft Intune Device Configuration and PoliciesYes
DeviceManagementManagedDevices.PrivilegedOperations.AllPerform user-impacting remote actions on Microsoft Intune devicesYes
DeviceManagementManagedDevices.Read.AllRead Microsoft Intune devicesYes
offline_accessMaintain access to data you have given it access toNo
User.ReadSign in and read user profileNo

Microsoft Intune can also connect in application mode, where the integration authenticates as the app itself (client credentials) instead of as a signed-in user. This is a separate connection from the delegated integration above — set it up as its own Kindo integration if you need automation that runs without a signed-in user.

Add the same permissions listed above, but as Application permissions (not Delegated) on the app registration. The tenant licensing requirement above applies to this mode too.

Covers mail, calendar, and contacts in one integration. Add the following Microsoft Graph permissions. All of them are Delegated permissions. Mail is read and sent as the signed-in user.

PermissionDescriptionAdmin consent required
Calendars.ReadRead user calendarsNo
Calendars.Read.SharedRead user and shared calendarsNo
Calendars.ReadBasicRead basic details of user calendarsNo
Calendars.ReadWriteHave full access to user calendarsNo
Contacts.ReadRead user contactsNo
Mail.ReadRead user mailNo
Mail.ReadBasicRead user basic mailNo
Mail.SendSend mail as a userNo
offline_accessMaintain access to data you have given it access toNo
People.ReadRead users’ relevant people listsNo
User.ReadSign in and read user profileNo

Add the following Microsoft Graph permissions. All of them are Delegated permissions.

PermissionDescriptionAdmin consent required
Calendars.ReadRead user calendarsNo
Calendars.Read.SharedRead user and shared calendarsNo
Calendars.ReadBasicRead basic details of user calendarsNo
Calendars.ReadWriteHave full access to user calendarsNo
offline_accessMaintain access to data you have given it access toNo
User.ReadSign in and read user profileNo

find_meeting_times needs Calendars.Read.Shared — it reads attendee availability, which the unshared calendar permissions don’t cover.

Add the following Microsoft Graph permissions. All of them are Delegated permissions.

PermissionDescriptionAdmin consent required
AuditLogsQuery.Read.AllRead audit logs data from all servicesYes
Content.Process.UserProcess content for data security, governance and complianceYes
Files.ReadWrite.AllHave full access to all files user can accessNo
InformationProtectionPolicy.ReadRead user sensitivity labels and label policies.No
offline_accessMaintain access to data you have given it access toNo
ProtectionScopes.Compute.UserCompute Purview policies for an individual userYes
SecurityAlert.Read.AllRead all security alertsYes
SecurityAlert.ReadWrite.AllRead and write to all security alertsYes
SecurityIncident.Read.AllRead incidentsYes
SecurityIncident.ReadWrite.AllRead and write to incidentsYes
ThreatHunting.Read.AllRun hunting queriesYes
User.ReadSign in and read user profileNo
Microsoft Purview Compliance — Application mode
Section titled “Microsoft Purview Compliance — Application mode”

Microsoft Purview Compliance can also connect in application mode, where the integration authenticates as the app itself (client credentials) instead of as a signed-in user. This is a separate connection from the delegated integration above — set it up as its own Kindo integration if you need automation that runs without a signed-in user. Tested and confirmed working.

Add the following Microsoft Graph permissions as Application permissions (not Delegated) on the app registration. Two differ from the delegated list: sensitivity labels come from the tenant catalog with InformationProtectionPolicy.Read.All, and protection scopes are computed tenant-wide with ProtectionScopes.Compute.All.

PermissionDescriptionAdmin consent required
AuditLogsQuery.Read.AllRead audit logs data from all servicesYes
Content.Process.UserProcess content for data security, governance and complianceYes
Files.ReadWrite.AllRead and write files in all site collectionsYes
InformationProtectionPolicy.Read.AllRead all published labels and label policies for an organization.Yes
ProtectionScopes.Compute.AllCompute Purview policies at tenant scopeYes
SecurityAlert.Read.AllRead all security alertsYes
SecurityAlert.ReadWrite.AllRead and write to all security alertsYes
SecurityIncident.Read.AllRead all security incidentsYes
SecurityIncident.ReadWrite.AllRead and write to all security incidentsYes
ThreatHunting.Read.AllRun hunting queriesYes

For the Content.Process.User / ProtectionScopes.Compute.User tools specifically: DLP policies must be created with the New-DlpComplianceRule PowerShell cmdlet to apply to Entra-registered (app-only) callers — policies created in the Purview portal UI don’t apply to them.

This integration uses permissions from two APIs: Microsoft Graph and Microsoft Purview. All of them are Delegated permissions. Find Microsoft Purview under the APIs my organization uses tab when adding a permission.

Add the following Microsoft Graph permission:

PermissionDescriptionAdmin consent required
User.ReadSign in and read user profileNo

Add the following Microsoft Purview permission:

PermissionDescriptionAdmin consent required
Purview.DelegatedAccessPurview Delegated API AccessNo

Like Microsoft Defender for Cloud, this integration authenticates against Azure Resource Manager, not Microsoft Graph. Add the following permission instead of Microsoft Graph:

APIPermissionTypeAdmin consent required
Azure Resource Manageruser_impersonationDelegatedNo

Find Azure Resource Manager under the APIs my organization uses tab when adding a permission (App ID 797f4846-ba00-4fd7-ba43-dac1f8f63013).

When linking the connection, Kindo also asks for:

FieldDescription
Tenant IDApp registration > Overview > Directory (tenant) ID
Subscription IDThe subscription holding the Sentinel workspace
Resource Group NameThe resource group holding the workspace
Workspace NameThe Log Analytics workspace Sentinel runs on

All four are required — Microsoft.SecurityInsights has no tenant-level surface to fall back on.

In addition to the Entra app permission, assign an Azure RBAC role to your account on that workspace (Azure Portal > your workspace > Access control (IAM) > Add role assignment):

RoleGrants
Microsoft Sentinel ReaderAll read tools (incidents, alerts, bookmarks, watchlists, analytics rules)
Microsoft Sentinel ResponderEverything Reader does, plus updating incidents and bookmarks
Microsoft Sentinel ContributorEverything Responder does, plus creating and updating analytics rules and watchlists
Microsoft Sentinel (Management) — US Government
Section titled “Microsoft Sentinel (Management) — US Government”

Select the Microsoft Sentinel Management (Government) integration in Kindo rather than Microsoft Sentinel (Management), and create its app registration in the Azure Government portal at portal.azure.us. A commercial app registration cannot be used.

Add the same permission, connection fields, and RBAC role as above.

Add the following Microsoft Graph permissions. All of them are Delegated permissions.

PermissionDescriptionAdmin consent required
Channel.ReadBasic.AllRead the names and descriptions of channelsNo
ChannelMessage.Read.AllRead user channel messagesYes
ChannelMessage.SendSend channel messagesNo
Chat.CreateCreate chatsNo
Chat.ReadRead user chat messagesNo
Chat.ReadBasicRead names and members of user chat threadsNo
ChatMessage.SendSend user chat messagesNo
Files.Read.AllRead all files that user can accessNo
Files.ReadWrite.AllHave full access to all files user can accessNo
offline_accessMaintain access to data you have given it access toNo
OnlineMeetings.ReadRead user’s online meetingsNo
OnlineMeetingTranscript.Read.AllRead all transcripts of online meetings.Yes
Team.ReadBasic.AllRead the names and descriptions of teamsNo
User.ReadSign in and read user profileNo
User.ReadBasic.AllRead all users’ basic profilesNo

In the Teams admin center, go to Meetings > Meeting settings. Under Transcript API access, turn Microsoft Graph access On. Then select Configure and turn on Include speaker attribution, so transcripts identify who said what.

The PowerShell equivalent:

Terminal window
Connect-MicrosoftTeams
Set-CsTeamsMeetingConfiguration -EnableGraphTranscriptAccess $true -EnableAttributedTranscripts $true -Identity Global

The setting is tenant-wide, not per user.

Add the following Microsoft Graph permissions. All of them are Delegated permissions.

PermissionDescriptionAdmin consent required
Files.ReadRead user filesNo
Files.Read.AllRead all files that user can accessNo
Files.ReadWrite.AllHave full access to all files user can accessNo
offline_accessMaintain access to data you have given it access toNo
User.ReadSign in and read user profileNo

Files.Read only covers the signed-in user’s own drive. Reading a drive by ID, including a SharePoint document library, needs Files.Read.All.

Add the following Microsoft Graph permissions. All of them are Delegated permissions.

PermissionDescriptionAdmin consent required
Files.ReadRead user filesNo
Files.ReadWriteHave full access to user filesNo
offline_accessMaintain access to data you have given it access toNo
Sites.Read.AllRead items in all site collectionsNo
Sites.ReadWrite.AllEdit or delete items in all site collectionsNo
User.ReadSign in and read user profileNo

Use the SharePoint Online (Application) integration in Kindo, with its own app registration. Steps 1 to 4 apply unchanged.

Add Sites.ReadWrite.All as an Application permission and grant admin consent. Skip Step 5 and the sign-in portion of Step 7: application mode needs no redirect URI. Enter the Tenant ID alongside the client ID and secret in the connection form.

  1. Start the connection flow from Kindo.

  2. Sign in with the Microsoft account that should authorize the integration.

  3. Review the requested permissions.

  4. Approve the connection.

  5. In Kindo, run a low-risk read action first, such as listing calendars, searching a site, or listing available records.

  6. After read access works, test any write actions in a safe test location before using the integration on production data.

Every tool across the Microsoft integrations, with the Microsoft permission it needs, whether it reads or writes, and whether an administrator has to consent. Use it to scope an app registration to exactly the tools you plan to use.

How to read the table:

  • Delegated — the integration acts on behalf of a signed-in user. Every integration supports this mode.
  • Application — the integration authenticates as the app itself, with no signed-in user. Only Microsoft Azure, Microsoft eDiscovery, Microsoft Entra ID, Microsoft Graph Security, Microsoft Intune, Microsoft Purview Compliance, and SharePoint Online offer it.
  • Admin consent — Microsoft always requires tenant-wide admin consent for application permissions. The column shows the delegated requirement.
  • Roles — rows labeled as a role are not Entra API permissions. Microsoft Azure, Microsoft Defender for Cloud, and Microsoft Sentinel (Management) authorize through Azure RBAC, and Microsoft Purview Data Governance through Purview collection roles. The signed-in user, or the app itself in application mode, must hold that role as well. Roles are assigned, not consented, so the admin consent column does not apply to them.
  • A tool that needs more than one permission has one row per permission.
323 of 323 tools
IntegrationToolPermissionDelegatedApplicationAccessAdmin consentWhat it does
Microsoft Azureget_management_groupuser_impersonation✓readGet one Azure management group by ID, optionally with its child groups and subscriptions
Microsoft Azureget_management_groupReaderAzure RBAC role✓✓readGet one Azure management group by ID, optionally with its child groups and subscriptions
Microsoft Azureget_policy_assignmentuser_impersonation✓readGet one Azure Policy assignment by name at a subscription, resource group, or management group scope
Microsoft Azureget_policy_assignmentReaderAzure RBAC role✓✓readGet one Azure Policy assignment by name at a subscription, resource group, or management group scope
Microsoft Azureget_policy_compliance_summaryuser_impersonation✓readSummarize Azure Policy compliance counts for a subscription or a single policy assignment
Microsoft Azureget_policy_compliance_summaryReaderAzure RBAC role✓✓readSummarize Azure Policy compliance counts for a subscription or a single policy assignment
Microsoft Azureget_policy_definitionuser_impersonation✓readGet one Azure Policy definition by name within a subscription
Microsoft Azureget_policy_definitionReaderAzure RBAC role✓✓readGet one Azure Policy definition by name within a subscription
Microsoft Azureget_role_assignmentuser_impersonation✓readGet one Azure RBAC role assignment by name at a scope
Microsoft Azureget_role_assignmentReaderAzure RBAC role✓✓readGet one Azure RBAC role assignment by name at a scope
Microsoft Azureget_role_definitionuser_impersonation✓readGet one Azure RBAC role definition by ID at a scope, including its allowed and denied actions
Microsoft Azureget_role_definitionReaderAzure RBAC role✓✓readGet one Azure RBAC role definition by ID at a scope, including its allowed and denied actions
Microsoft Azureget_subscriptionuser_impersonation✓readGet details of one Azure subscription by ID
Microsoft Azureget_subscriptionReaderAzure RBAC role✓✓readGet details of one Azure subscription by ID
Microsoft Azurelist_management_group_descendantsuser_impersonation✓readList the management groups and subscriptions beneath a management group
Microsoft Azurelist_management_group_descendantsReaderAzure RBAC role✓✓readList the management groups and subscriptions beneath a management group
Microsoft Azurelist_management_groupsuser_impersonation✓readList the Azure management groups visible to the signed-in user
Microsoft Azurelist_management_groupsReaderAzure RBAC role✓✓readList the Azure management groups visible to the signed-in user
Microsoft Azurelist_noncompliant_resourcesuser_impersonation✓readList resources that are non-compliant with Azure Policy in a subscription
Microsoft Azurelist_noncompliant_resourcesReaderAzure RBAC role✓✓readList resources that are non-compliant with Azure Policy in a subscription
Microsoft Azurelist_policy_assignmentsuser_impersonation✓readList Azure Policy assignments at a subscription, resource group, or management group scope
Microsoft Azurelist_policy_assignmentsReaderAzure RBAC role✓✓readList Azure Policy assignments at a subscription, resource group, or management group scope
Microsoft Azurelist_policy_definitionsuser_impersonation✓readList built-in and custom Azure Policy definitions available at a scope
Microsoft Azurelist_policy_definitionsReaderAzure RBAC role✓✓readList built-in and custom Azure Policy definitions available at a scope
Microsoft Azurelist_resource_groupsuser_impersonation✓readList resource groups in a subscription with their location and tags
Microsoft Azurelist_resource_groupsReaderAzure RBAC role✓✓readList resource groups in a subscription with their location and tags
Microsoft Azurelist_resourcesuser_impersonation✓readList Azure resources in a subscription or resource group, optionally filtered by type
Microsoft Azurelist_resourcesReaderAzure RBAC role✓✓readList Azure resources in a subscription or resource group, optionally filtered by type
Microsoft Azurelist_role_assignmentsuser_impersonation✓readList Azure RBAC role assignments at a scope, optionally for one principal
Microsoft Azurelist_role_assignmentsReaderAzure RBAC role✓✓readList Azure RBAC role assignments at a scope, optionally for one principal
Microsoft Azurelist_role_definitionsuser_impersonation✓readList Azure RBAC role definitions available at a scope, optionally custom roles only
Microsoft Azurelist_role_definitionsReaderAzure RBAC role✓✓readList Azure RBAC role definitions available at a scope, optionally custom roles only
Microsoft Azurelist_subscriptionsuser_impersonation✓readList the Azure subscriptions the signed-in user can access in the tenant
Microsoft Azurelist_subscriptionsReaderAzure RBAC role✓✓readList the Azure subscriptions the signed-in user can access in the tenant
Microsoft Azurequery_resourcesuser_impersonation✓readRun an Azure Resource Graph KQL query across subscriptions or management groups
Microsoft Azurequery_resourcesReaderAzure RBAC role✓✓readRun an Azure Resource Graph KQL query across subscriptions or management groups
Microsoft Defendercreate_indicatorTi.ReadWrite✓writeCreate or update a Defender for Endpoint threat indicator for an IP, URL, domain, or file hash
Microsoft Defenderdelete_indicatorTi.ReadWrite✓writeDelete a Defender for Endpoint threat indicator by ID
Microsoft Defenderget_alertAlert.Read✓readGet a single Defender for Endpoint alert by ID
Microsoft Defenderget_incidentIncident.Read✓readGet a Defender incident by ID, including its associated alerts
Microsoft Defenderget_indicatorTi.ReadWrite✓readGet a single Defender for Endpoint threat indicator by ID
Microsoft Defenderget_investigationAlert.Read✓readGet a Defender for Endpoint automated investigation by ID
Microsoft Defenderget_machineMachine.Read✓readGet a single Defender for Endpoint device by ID
Microsoft Defenderisolate_machineMachine.Isolate✓writeIsolate a device from the network with full or selective isolation
Microsoft Defenderlist_alertsAlert.Read✓readList Defender for Endpoint alerts filtered by status, severity, or an OData filter
Microsoft Defenderlist_incidentsIncident.Read✓readList Defender incidents filtered by status, assignee, or an OData filter
Microsoft Defenderlist_indicatorsTi.ReadWrite✓readList Defender for Endpoint threat indicators, optionally filtered by type or action
Microsoft Defenderlist_investigationsAlert.Read✓readList Defender for Endpoint automated investigations, optionally filtered by state or device
Microsoft Defenderlist_machinesMachine.Read✓readList Defender for Endpoint devices filtered by name, OS, risk score, or health status
Microsoft Defenderrun_advanced_queryAdvancedQuery.Read✓readRun a KQL advanced hunting query against Defender for Endpoint data
Microsoft Defenderrun_antivirus_scanMachine.Scan✓writeStart a quick or full Microsoft Defender Antivirus scan on a device
Microsoft Defenderunisolate_machineMachine.Isolate✓writeRelease a device from network isolation
Microsoft Defenderupdate_alertAlert.ReadWrite✓writeUpdate a Defender for Endpoint alert's status, assignee, classification, or determination
Microsoft Defenderupdate_incidentIncident.ReadWrite✓writeUpdate a Defender incident's status, assignee, classification, determination, or tags
Microsoft Defender for Cloudget_alertuser_impersonation✓readGet one Defender for Cloud security alert with its entities, tactics, and remediation steps
Microsoft Defender for Cloudget_alertSecurity ReaderAzure RBAC role✓readGet one Defender for Cloud security alert with its entities, tactics, and remediation steps
Microsoft Defender for Cloudget_compliance_overviewuser_impersonation✓readGet the passing and failing controls for a regulatory compliance standard in the subscription
Microsoft Defender for Cloudget_compliance_overviewSecurity ReaderAzure RBAC role✓readGet the passing and failing controls for a regulatory compliance standard in the subscription
Microsoft Defender for Cloudget_recommendationuser_impersonation✓readGet one Defender for Cloud security recommendation (assessment) with its status and remediation
Microsoft Defender for Cloudget_recommendationSecurity ReaderAzure RBAC role✓readGet one Defender for Cloud security recommendation (assessment) with its status and remediation
Microsoft Defender for Cloudget_secure_scoreuser_impersonation✓readGet the subscription's Defender for Cloud secure score with a breakdown by security control
Microsoft Defender for Cloudget_secure_scoreSecurity ReaderAzure RBAC role✓readGet the subscription's Defender for Cloud secure score with a breakdown by security control
Microsoft Defender for Cloudlist_alertsuser_impersonation✓readList Defender for Cloud security alerts for the subscription
Microsoft Defender for Cloudlist_alertsSecurity ReaderAzure RBAC role✓readList Defender for Cloud security alerts for the subscription
Microsoft Defender for Cloudlist_recommendation_findingsuser_impersonation✓readList the per-resource findings (sub-assessments) for a security recommendation
Microsoft Defender for Cloudlist_recommendation_findingsSecurity ReaderAzure RBAC role✓readList the per-resource findings (sub-assessments) for a security recommendation
Microsoft Defender for Cloudlist_recommendationsuser_impersonation✓readList Defender for Cloud security recommendations (assessments) for the subscription
Microsoft Defender for Cloudlist_recommendationsSecurity ReaderAzure RBAC role✓readList Defender for Cloud security recommendations (assessments) for the subscription
Microsoft Defender for Cloudlist_security_coverageuser_impersonation✓readList enabled Defender for Cloud plans and available regulatory compliance standards
Microsoft Defender for Cloudlist_security_coverageSecurity ReaderAzure RBAC role✓readList enabled Defender for Cloud plans and available regulatory compliance standards
Microsoft Defender for Cloudupdate_alertuser_impersonation✓writeSet a Defender for Cloud alert's status to Active, InProgress, Resolved, or Dismissed
Microsoft Defender for Cloudupdate_alertSecurity AdminAzure RBAC role✓writeSet a Defender for Cloud alert's status to Active, InProgress, Resolved, or Dismissed
Microsoft Entra IDdisable_user_accountUser.EnableDisableAccount.All✓✓writeDisable a user account so the user can no longer sign in
Microsoft Entra IDdisable_user_accountUser.Read.All✓✓readDisable a user account so the user can no longer sign in
Microsoft Entra IDenable_user_accountUser.EnableDisableAccount.All✓✓writeEnable a previously disabled user account so the user can sign in again
Microsoft Entra IDenable_user_accountUser.Read.All✓✓readEnable a previously disabled user account so the user can sign in again
Microsoft Entra IDevaluate_conditional_accessPolicy.Read.ConditionalAccess✓✓readEvaluate which conditional access policies would apply to a hypothetical user or service principal sign-in
Microsoft Entra IDevaluate_conditional_accessUser.ReadBasic.All✓readEvaluate which conditional access policies would apply to a hypothetical user or service principal sign-in
Microsoft Entra IDevaluate_conditional_accessUser.Read.All✓readEvaluate which conditional access policies would apply to a hypothetical user or service principal sign-in
Microsoft Entra IDget_authentication_sla_attainmentReports.Read.All✓✓readRead monthly Microsoft Entra authentication SLA attainment for the tenant
Microsoft Entra IDget_conditional_access_impact_summaryAuditLog.Read.All✓✓readCount how many recent sign-ins each conditional access policy allowed, blocked, or skipped
Microsoft Entra IDget_conditional_access_impact_summaryPolicy.Read.ConditionalAccess✓✓readCount how many recent sign-ins each conditional access policy allowed, blocked, or skipped
Microsoft Entra IDget_conditional_access_policyPolicy.Read.All✓✓readGet one conditional access policy with its conditions, grant controls, and session controls
Microsoft Entra IDget_directory_audit_detailsAuditLog.Read.All✓✓readGet one directory audit log entry with its full target resource list
Microsoft Entra IDget_directory_audit_detailsDirectory.Read.All✓✓readGet one directory audit log entry with its full target resource list
Microsoft Entra IDget_directory_objects_by_idsDirectory.Read.All✓✓readResolve a batch of directory object ids to their user, group, or device objects
Microsoft Entra IDget_directory_roleRoleManagement.Read.Directory✓✓readGet one activated directory role by object id or role template id
Microsoft Entra IDget_groupGroup.Read.All✓✓readGet one group by object id
Microsoft Entra IDget_sign_in_detailsAuditLog.Read.All✓✓readGet one sign-in log entry with its status, device, and location details
Microsoft Entra IDget_userUser.Read.All✓✓readGet one user by object id or user principal name
Microsoft Entra IDget_user_inplace_hold_statusUser.Read.All✓✓readGet the in-place hold policies applied to a user's mailbox
Microsoft Entra IDget_user_registration_detailsAuditLog.Read.All✓✓readGet the authentication methods one user has registered and their MFA and passwordless capability
Microsoft Entra IDget_user_registration_detailsUser.ReadBasic.All✓readGet the authentication methods one user has registered and their MFA and passwordless capability
Microsoft Entra IDget_user_registration_detailsUser.Read.All✓readGet the authentication methods one user has registered and their MFA and passwordless capability
Microsoft Entra IDget_users_registered_by_methodAuditLog.Read.All✓readCount users registered for each authentication method, by user type and role
Microsoft Entra IDlist_adfs_application_activityReports.Read.All✓✓readList AD FS relying parties with sign-in volume and Entra migration readiness
Microsoft Entra IDlist_app_credential_sign_in_activityAuditLog.Read.All✓✓readList application credentials with their last sign-in time and expiry
Microsoft Entra IDlist_application_sign_in_summaryReports.Read.All✓readList per-application sign-in counts with success or failure status
Microsoft Entra IDlist_authentication_strengthsPolicy.Read.AuthenticationMethod✓✓readList authentication strength policies and the method combinations each accepts
Microsoft Entra IDlist_conditional_access_policiesPolicy.Read.All✓✓readList conditional access policies with their enabled, disabled, or report-only state
Microsoft Entra IDlist_directory_auditsAuditLog.Read.All✓✓readList directory audit log entries recording who changed what in the directory
Microsoft Entra IDlist_directory_recommendationsDirectoryRecommendations.Read.All✓✓readList Microsoft Entra recommendations and Identity Secure Score improvement actions for the tenant
Microsoft Entra IDlist_directory_role_membersRoleManagement.Read.Directory✓✓readList the principals assigned to a directory role
Microsoft Entra IDlist_directory_rolesRoleManagement.Read.Directory✓✓readList the directory roles activated in the tenant
Microsoft Entra IDlist_group_membersGroupMember.Read.All✓✓readList a group's direct members, optionally narrowed to one directory object type
Microsoft Entra IDlist_group_ownersGroupMember.Read.All✓✓readList a group's owners, optionally narrowed to one directory object type
Microsoft Entra IDlist_groupsGroup.Read.All✓✓readList groups in the directory with optional name, mail, and type filters
Microsoft Entra IDlist_named_locationsPolicy.Read.All✓✓readList named locations (IP ranges and countries) referenced by conditional access policies
Microsoft Entra IDlist_provisioning_object_summaryAuditLog.Read.All✓✓readList provisioning log events for identities synchronized to and from the directory
Microsoft Entra IDlist_provisioning_object_summaryDirectory.Read.All✓✓readList provisioning log events for identities synchronized to and from the directory
Microsoft Entra IDlist_service_principal_sign_in_activityAuditLog.Read.All✓✓readList each service principal's last sign-in activity as client and resource
Microsoft Entra IDlist_sign_insAuditLog.Read.All✓✓readList sign-in log entries with status, device, location, and applied conditional access policies
Microsoft Entra IDlist_user_app_role_assignmentsAppRoleAssignment.ReadWrite.All✓readList the application role assignments granted to a user directly or through group membership
Microsoft Entra IDlist_user_app_role_assignmentsDirectory.Read.All✓readList the application role assignments granted to a user directly or through group membership
Microsoft Entra IDlist_user_registration_detailsAuditLog.Read.All✓✓readList the authentication methods each user has registered for MFA and passwordless coverage
Microsoft Entra IDlist_usersUser.Read.All✓✓readList users in the directory with optional name, mail, and account-state filters
Microsoft Entra ID Governanceactivate_lifecycle_workflowLifecycleWorkflows-Workflow.Activate✓writeRun a lifecycle workflow on demand for specific users
Microsoft Entra ID Governanceapply_access_review_decisionsAccessReview.ReadWrite.All✓writeApply the reviewer decisions of a completed access review instance
Microsoft Entra ID Governancecreate_access_package_assignment_requestEntitlementManagement.ReadWrite.All✓writeCreate an access package assignment request to add, remove, or update a user's access
Microsoft Entra ID Governancecreate_group_assignment_requestPrivilegedAssignmentSchedule.ReadWrite.AzureADGroup✓writeCreate a PIM request to assign, activate, or remove privileged group membership or ownership
Microsoft Entra ID Governancecreate_group_eligibility_requestPrivilegedEligibilitySchedule.ReadWrite.AzureADGroup✓writeCreate a PIM request to grant, extend, or remove eligibility for privileged group membership or ownership
Microsoft Entra ID Governancecreate_role_assignment_requestRoleAssignmentSchedule.ReadWrite.Directory✓writeCreate a PIM request to assign, activate, or deactivate a privileged directory role
Microsoft Entra ID Governancecreate_role_eligibility_requestRoleEligibilitySchedule.ReadWrite.Directory✓writeCreate a PIM request to grant, extend, renew, or remove eligibility for a directory role
Microsoft Entra ID Governanceget_access_packageEntitlementManagement.Read.All✓readGet one access package by id
Microsoft Entra ID Governanceget_access_review_definitionAccessReview.Read.All✓readGet one access review schedule definition with its scope, reviewers, and recurrence
Microsoft Entra ID Governanceget_lifecycle_workflowLifecycleWorkflows-Workflow.ReadBasic.All✓readGet one lifecycle workflow with its tasks, execution conditions, and scope
Microsoft Entra ID Governancelist_access_package_assignmentsEntitlementManagement.Read.All✓readList access package assignments and their state
Microsoft Entra ID Governancelist_access_package_catalogsEntitlementManagement.Read.All✓readList access package catalogs
Microsoft Entra ID Governancelist_access_packagesEntitlementManagement.Read.All✓readList access packages, optionally filtered by catalog
Microsoft Entra ID Governancelist_access_review_decisionsAccessReview.Read.All✓readList the reviewer decisions recorded for an access review instance
Microsoft Entra ID Governancelist_access_review_definitionsAccessReview.Read.All✓readList access review schedule definitions
Microsoft Entra ID Governancelist_access_review_instancesAccessReview.Read.All✓readList the review instances of an access review definition
Microsoft Entra ID Governancelist_group_assignment_schedulesPrivilegedAssignmentSchedule.Read.AzureADGroup✓readList active PIM membership and ownership assignments for privileged groups
Microsoft Entra ID Governancelist_group_eligibility_schedulesPrivilegedEligibilitySchedule.Read.AzureADGroup✓readList PIM eligibility for privileged group membership and ownership
Microsoft Entra ID Governancelist_lifecycle_workflow_runsLifecycleWorkflows-Reports.Read.All✓readList the run history of a lifecycle workflow with processing status and user counts
Microsoft Entra ID Governancelist_lifecycle_workflowsLifecycleWorkflows-Workflow.ReadBasic.All✓readList lifecycle workflows, optionally filtered by joiner, mover, or leaver category
Microsoft Entra ID Governancelist_role_assignment_schedulesRoleAssignmentSchedule.Read.Directory✓readList active PIM assignments of privileged directory roles
Microsoft Entra ID Governancelist_role_definitionsRoleManagement.Read.Directory✓readList directory role definitions and their ids
Microsoft Entra ID Governancelist_role_eligibility_schedulesRoleEligibilitySchedule.Read.Directory✓readList PIM eligibility for privileged directory roles
Microsoft Excel Onlineadd_table_rowsFiles.ReadWrite✓writeAppend rows of values to an Excel table
Microsoft Excel Onlineadd_worksheetFiles.ReadWrite✓writeAdd a worksheet to an Excel workbook
Microsoft Excel Onlineclear_rangeFiles.ReadWrite✓writeClear contents, formats, or both from a cell range in a worksheet
Microsoft Excel Onlineclose_sessionFiles.ReadWrite✓writeClose an Excel workbook session
Microsoft Excel Onlinecreate_sessionFiles.ReadWrite✓writeCreate a persistent or non-persistent Excel workbook session
Microsoft Excel Onlinecreate_tableFiles.ReadWrite✓writeCreate a table from a cell range on a worksheet
Microsoft Excel Onlinecreate_workbookFiles.ReadWrite✓writeCreate an empty Excel workbook in the signed-in user's OneDrive
Microsoft Excel Onlinedelete_worksheetFiles.ReadWrite✓writeDelete a worksheet from an Excel workbook
Microsoft Excel Onlineget_rangeFiles.ReadWrite✓readRead values, formulas, and number formats from a cell range in a worksheet
Microsoft Excel Onlineget_table_dataFiles.ReadWrite✓readGet the columns and rows of an Excel table
Microsoft Excel Onlineget_used_rangeFiles.ReadWrite✓readGet the used range of a worksheet with its address, values, and formulas
Microsoft Excel Onlineget_worksheetFiles.ReadWrite✓readGet a worksheet in an Excel workbook by name or ID
Microsoft Excel Onlinelist_drive_itemsFiles.Read✓readList files and folders in a OneDrive folder
Microsoft Excel Onlinelist_named_itemsFiles.ReadWrite✓readList the named ranges and constants defined in an Excel workbook
Microsoft Excel Onlinelist_tablesFiles.ReadWrite✓readList the tables in an Excel workbook or on one worksheet
Microsoft Excel Onlinelist_worksheetsFiles.ReadWrite✓readList the worksheets in an Excel workbook
Microsoft Excel Onlinesearch_workbooksFiles.Read✓readSearch the signed-in user's OneDrive for Excel workbooks by name
Microsoft Excel Onlineupdate_rangeFiles.ReadWrite✓writeWrite values, formulas, or number formats to a cell range in a worksheet
Microsoft Graph Security (Microsoft Defender XDR)confirm_risky_users_compromisedIdentityRiskyUser.ReadWrite.All✓✓writeConfirm one or more risky users as compromised, setting their risk level to high
Microsoft Graph Security (Microsoft Defender XDR)confirm_risky_users_safeIdentityRiskyUser.ReadWrite.All✓✓writeConfirm one or more risky users as safe, setting their risk level to none
Microsoft Graph Security (Microsoft Defender XDR)create_alert_commentSecurityAlert.ReadWrite.All✓✓writeAdd a comment to a Defender XDR security alert
Microsoft Graph Security (Microsoft Defender XDR)create_incident_commentSecurityIncident.ReadWrite.All✓✓writeAdd a comment to a Defender XDR security incident
Microsoft Graph Security (Microsoft Defender XDR)dismiss_risky_usersIdentityRiskyUser.ReadWrite.All✓✓writeDismiss the risk of one or more risky users, resetting their risk level to none
Microsoft Graph Security (Microsoft Defender XDR)get_alertSecurityAlert.Read.All✓✓readGet a single Defender XDR security alert by ID, including its evidence
Microsoft Graph Security (Microsoft Defender XDR)get_incidentSecurityIncident.Read.All✓✓readGet a single Defender XDR security incident by ID, optionally with its related alerts
Microsoft Graph Security (Microsoft Defender XDR)get_risky_userIdentityRiskyUser.Read.All✓✓readGet a single risky user from Entra ID Protection by ID
Microsoft Graph Security (Microsoft Defender XDR)list_alertsSecurityAlert.Read.All✓✓readList Defender XDR security alerts filtered by severity, status, source, assignee, or date
Microsoft Graph Security (Microsoft Defender XDR)list_incidentsSecurityIncident.Read.All✓✓readList Defender XDR security incidents filtered by severity, status, classification, assignee, or date
Microsoft Graph Security (Microsoft Defender XDR)list_risky_usersIdentityRiskyUser.Read.All✓✓readList risky users from Entra ID Protection filtered by risk level, risk state, or user
Microsoft Graph Security (Microsoft Defender XDR)list_secure_score_control_profilesSecurityEvents.Read.All✓✓readList Microsoft Secure Score control profiles with their scores and improvement actions
Microsoft Graph Security (Microsoft Defender XDR)list_secure_scoresSecurityEvents.Read.All✓✓readList daily Microsoft Secure Score snapshots for the tenant
Microsoft Graph Security (Microsoft Defender XDR)run_hunting_queryThreatHunting.Read.All✓✓readRun a KQL advanced hunting query against Defender XDR data
Microsoft Graph Security (Microsoft Defender XDR)update_alertSecurityAlert.ReadWrite.All✓✓writeUpdate a Defender XDR alert's status, assignee, classification, or determination
Microsoft Graph Security (Microsoft Defender XDR)update_incidentSecurityIncident.ReadWrite.All✓✓writeUpdate a Defender XDR incident's status, assignee, classification, determination, or custom tags
Microsoft Intuneget_compliance_policyDeviceManagementConfiguration.Read.All✓✓readGet one Intune device compliance policy by ID
Microsoft Intuneget_device_configurationDeviceManagementConfiguration.Read.All✓✓readGet one Intune device configuration profile by ID
Microsoft Intuneget_managed_deviceDeviceManagementManagedDevices.Read.All✓✓readGet one Intune managed device with its hardware, OS, compliance, and enrollment details
Microsoft Intuneget_mobile_appDeviceManagementApps.Read.All✓✓readGet one Intune managed app by ID
Microsoft Intunelist_compliance_policiesDeviceManagementConfiguration.Read.All✓✓readList Intune device compliance policies
Microsoft Intunelist_compliance_policy_device_statusesDeviceManagementConfiguration.Read.All✓✓readList per-device compliance status for an Intune compliance policy
Microsoft Intunelist_device_configuration_device_statusesDeviceManagementConfiguration.Read.All✓✓readList per-device deployment status for an Intune device configuration profile
Microsoft Intunelist_device_configurationsDeviceManagementConfiguration.Read.All✓✓readList Intune device configuration profiles
Microsoft Intunelist_managed_devicesDeviceManagementManagedDevices.Read.All✓✓readList Intune managed devices, optionally filtered by name, OS, compliance state, or user
Microsoft Intunelist_mobile_app_device_statusesDeviceManagementApps.Read.All✓✓readList per-device install status for an Intune managed app
Microsoft Intunelist_mobile_appsDeviceManagementApps.Read.All✓✓readList Intune managed apps, optionally filtered by name or app type
Microsoft Intuneretire_managed_deviceDeviceManagementManagedDevices.PrivilegedOperations.All✓✓writeRetire an Intune managed device, removing company data while keeping personal data
Microsoft Intunesync_managed_deviceDeviceManagementManagedDevices.PrivilegedOperations.All✓✓writeForce an Intune managed device to check in for the latest policies
Microsoft Intunewipe_managed_deviceDeviceManagementManagedDevices.PrivilegedOperations.All✓✓writeFactory-reset an Intune managed device, optionally keeping enrollment or user data
Microsoft Outlookcreate_eventCalendars.ReadWrite✓writeCreate a calendar event, optionally as a Teams online meeting
Microsoft Outlookdelete_eventCalendars.ReadWrite✓writeDelete a calendar event
Microsoft Outlookfind_meeting_timesCalendars.Read.Shared✓readSuggest meeting times when the given attendees are free
Microsoft Outlookget_contactContacts.Read✓readGet a single contact from the user's Outlook contacts
Microsoft Outlookget_eventCalendars.Read✓readGet a calendar event with its attendees, location, and body
Microsoft Outlookget_messageMail.Read✓readRead the full body and attachment metadata of one email message
Microsoft Outlookget_scheduleCalendars.ReadBasic✓readGet free/busy availability for one or more users in a time window
Microsoft Outlooklist_calendarsCalendars.ReadBasic✓readList the user's calendars
Microsoft Outlooklist_contactsContacts.Read✓readList email addresses from the user's saved Outlook contacts
Microsoft Outlooklist_emailsPeople.Read✓readList the people the user most often communicates with and their email addresses
Microsoft Outlooklist_eventsCalendars.Read✓readList calendar events, optionally within a date range or matching a search
Microsoft Outlooklist_mail_foldersMail.ReadBasic✓readList the mail folders in the user's mailbox
Microsoft Outlooklist_messagesMail.Read✓readList or search email messages in the user's mailbox
Microsoft Outlookrespond_to_eventCalendars.ReadWrite✓writeAccept, decline, or tentatively accept a meeting invitation
Microsoft Outlooksend_emailMail.Send✓writeSend an email with optional attachments as the signed-in user
Microsoft Outlookupdate_eventCalendars.ReadWrite✓writeUpdate the subject, time, location, attendees, or body of a calendar event
Microsoft Outlook Calendarcreate_eventCalendars.ReadWrite✓writeCreate a calendar event, optionally as a Teams online meeting
Microsoft Outlook Calendardelete_eventCalendars.ReadWrite✓writeDelete a calendar event
Microsoft Outlook Calendarfind_meeting_timesCalendars.Read.Shared✓readSuggest meeting times when the given attendees are free
Microsoft Outlook Calendarget_eventCalendars.Read✓readGet a calendar event with its attendees, location, and body
Microsoft Outlook Calendarget_scheduleCalendars.ReadBasic✓readGet free/busy availability for one or more users in a time window
Microsoft Outlook Calendarlist_calendarsCalendars.ReadBasic✓readList the user's calendars
Microsoft Outlook Calendarlist_eventsCalendars.Read✓readList calendar events, optionally within a date range or matching a search
Microsoft Outlook Calendarrespond_to_eventCalendars.ReadWrite✓writeAccept, decline, or tentatively accept a meeting invitation
Microsoft Outlook Calendarupdate_eventCalendars.ReadWrite✓writeUpdate the subject, time, location, attendees, or body of a calendar event
Microsoft Purview Complianceassign_sensitivity_labelFiles.ReadWrite.All✓✓writeAssign a sensitivity label to a file in OneDrive or SharePoint
Microsoft Purview Compliancecompute_protection_scopesProtectionScopes.Compute.User✓readDetermine which Purview DLP policies apply to the signed-in user's activities
Microsoft Purview Compliancecompute_protection_scopesProtectionScopes.Compute.All✓readDetermine which Purview DLP policies apply to the signed-in user's activities
Microsoft Purview Compliancecreate_audit_log_queryAuditLogsQuery.Read.All✓✓readStart an audit log search across Microsoft 365 services for a date range and filters
Microsoft Purview Complianceget_alertSecurityAlert.Read.All✓✓readGet a security alert by ID with its evidence and MITRE ATT&CK techniques
Microsoft Purview Complianceget_audit_log_queryAuditLogsQuery.Read.All✓✓readGet the status and details of an audit log search
Microsoft Purview Complianceget_incidentSecurityIncident.Read.All✓✓readGet a security incident by ID, optionally with its related alerts
Microsoft Purview Compliancelist_alertsSecurityAlert.Read.All✓✓readList security alerts from Purview DLP and other Microsoft security services
Microsoft Purview Compliancelist_audit_log_recordsAuditLogsQuery.Read.All✓✓readList the records returned by a completed audit log search
Microsoft Purview Compliancelist_incidentsSecurityIncident.Read.All✓✓readList security incidents from Purview DLP and other Microsoft security services
Microsoft Purview Compliancelist_sensitivity_labelsInformationProtectionPolicy.Read✓readList the Purview sensitivity labels available to the signed-in user
Microsoft Purview Compliancelist_sensitivity_labelsInformationProtectionPolicy.Read.All✓readList the Purview sensitivity labels available to the signed-in user
Microsoft Purview Complianceprocess_contentContent.Process.User✓✓readEvaluate text against Purview DLP policies for the signed-in user and return enforcement actions
Microsoft Purview Compliancerun_hunting_queryThreatHunting.Read.All✓✓readRun a KQL advanced hunting query against Microsoft Defender XDR data
Microsoft Purview Complianceupdate_alertSecurityAlert.ReadWrite.All✓✓writeUpdate the status, assignee, classification, or details of a security alert
Microsoft Purview Complianceupdate_incidentSecurityIncident.ReadWrite.All✓✓writeUpdate the status, severity, assignee, classification, or details of a security incident
Microsoft Purview Data Governanceadd_entity_classificationsPurview.DelegatedAccess✓writeAdd one or more classifications to a Purview data asset
Microsoft Purview Data Governanceadd_entity_classificationsData CuratorPurview collection role✓writeAdd one or more classifications to a Purview data asset
Microsoft Purview Data Governanceassign_glossary_termPurview.DelegatedAccess✓writeAssign a Purview glossary term to one or more data assets
Microsoft Purview Data Governanceassign_glossary_termData CuratorPurview collection role✓writeAssign a Purview glossary term to one or more data assets
Microsoft Purview Data Governancecreate_glossary_termPurview.DelegatedAccess✓writeCreate a term in a Purview business glossary
Microsoft Purview Data Governancecreate_glossary_termData CuratorPurview collection role✓writeCreate a term in a Purview business glossary
Microsoft Purview Data Governancecreate_or_update_collectionPurview.DelegatedAccess✓writeCreate or update a Purview collection used to organize data assets
Microsoft Purview Data Governancecreate_or_update_collectionCollection AdminPurview collection role✓writeCreate or update a Purview collection used to organize data assets
Microsoft Purview Data Governancecreate_or_update_data_sourcePurview.DelegatedAccess✓writeRegister or update a data source in Purview for scanning
Microsoft Purview Data Governancecreate_or_update_data_sourceData Source AdministratorPurview collection role✓writeRegister or update a data source in Purview for scanning
Microsoft Purview Data Governancecreate_or_update_entityPurview.DelegatedAccess✓writeCreate or update a data asset in the Purview data map
Microsoft Purview Data Governancecreate_or_update_entityData CuratorPurview collection role✓writeCreate or update a data asset in the Purview data map
Microsoft Purview Data Governancecreate_or_update_scanPurview.DelegatedAccess✓writeCreate or update a scan definition for a Purview data source
Microsoft Purview Data Governancecreate_or_update_scanData Source AdministratorPurview collection role✓writeCreate or update a scan definition for a Purview data source
Microsoft Purview Data Governancecreate_relationshipPurview.DelegatedAccess✓writeCreate a relationship between two Purview data assets
Microsoft Purview Data Governancecreate_relationshipData CuratorPurview collection role✓writeCreate a relationship between two Purview data assets
Microsoft Purview Data Governancedelete_collectionPurview.DelegatedAccess✓writeDelete an empty Purview collection by name
Microsoft Purview Data Governancedelete_collectionCollection AdminPurview collection role✓writeDelete an empty Purview collection by name
Microsoft Purview Data Governancedelete_entityPurview.DelegatedAccess✓writeDelete a data asset from the Purview data map by GUID
Microsoft Purview Data Governancedelete_entityData CuratorPurview collection role✓writeDelete a data asset from the Purview data map by GUID
Microsoft Purview Data Governancedelete_relationshipPurview.DelegatedAccess✓writeDelete a relationship between Purview data assets by GUID
Microsoft Purview Data Governancedelete_relationshipData CuratorPurview collection role✓writeDelete a relationship between Purview data assets by GUID
Microsoft Purview Data Governanceget_classification_defPurview.DelegatedAccess✓readGet a Purview classification type definition by name
Microsoft Purview Data Governanceget_classification_defData ReaderPurview collection role✓readGet a Purview classification type definition by name
Microsoft Purview Data Governanceget_collectionPurview.DelegatedAccess✓readGet a Purview collection by name, including its parent path
Microsoft Purview Data Governanceget_collectionData ReaderPurview collection role✓readGet a Purview collection by name, including its parent path
Microsoft Purview Data Governanceget_data_sourcePurview.DelegatedAccess✓readGet a registered Purview data source by name
Microsoft Purview Data Governanceget_data_sourceData Source AdministratorPurview collection role✓readGet a registered Purview data source by name
Microsoft Purview Data Governanceget_entityPurview.DelegatedAccess✓readGet the full definition of a Purview data asset by GUID
Microsoft Purview Data Governanceget_entityData ReaderPurview collection role✓readGet the full definition of a Purview data asset by GUID
Microsoft Purview Data Governanceget_entity_by_qualified_namePurview.DelegatedAccess✓readGet a Purview data asset by its type and fully qualified name
Microsoft Purview Data Governanceget_entity_by_qualified_nameData ReaderPurview collection role✓readGet a Purview data asset by its type and fully qualified name
Microsoft Purview Data Governanceget_entity_classificationsPurview.DelegatedAccess✓readList the classifications assigned to a Purview data asset
Microsoft Purview Data Governanceget_entity_classificationsData ReaderPurview collection role✓readList the classifications assigned to a Purview data asset
Microsoft Purview Data Governanceget_glossaryPurview.DelegatedAccess✓readGet a Purview business glossary by GUID, including its terms and categories
Microsoft Purview Data Governanceget_glossaryData ReaderPurview collection role✓readGet a Purview business glossary by GUID, including its terms and categories
Microsoft Purview Data Governanceget_glossary_termPurview.DelegatedAccess✓readGet a Purview glossary term by GUID, including its definition and assigned assets
Microsoft Purview Data Governanceget_glossary_termData ReaderPurview collection role✓readGet a Purview glossary term by GUID, including its definition and assigned assets
Microsoft Purview Data Governanceget_lineagePurview.DelegatedAccess✓readGet the upstream and downstream data lineage graph for a Purview data asset
Microsoft Purview Data Governanceget_lineageData ReaderPurview collection role✓readGet the upstream and downstream data lineage graph for a Purview data asset
Microsoft Purview Data Governanceget_relationshipPurview.DelegatedAccess✓readGet a relationship between Purview data assets by GUID
Microsoft Purview Data Governanceget_relationshipData ReaderPurview collection role✓readGet a relationship between Purview data assets by GUID
Microsoft Purview Data Governanceget_scanPurview.DelegatedAccess✓readGet a scan definition for a Purview data source by name
Microsoft Purview Data Governanceget_scanData Source AdministratorPurview collection role✓readGet a scan definition for a Purview data source by name
Microsoft Purview Data Governancelist_child_collection_namesPurview.DelegatedAccess✓readList the names of child collections under a Purview collection
Microsoft Purview Data Governancelist_child_collection_namesData ReaderPurview collection role✓readList the names of child collections under a Purview collection
Microsoft Purview Data Governancelist_collectionsPurview.DelegatedAccess✓readList all collections in the Purview account
Microsoft Purview Data Governancelist_collectionsData ReaderPurview collection role✓readList all collections in the Purview account
Microsoft Purview Data Governancelist_data_sourcesPurview.DelegatedAccess✓readList all data sources registered in Purview
Microsoft Purview Data Governancelist_data_sourcesData Source AdministratorPurview collection role✓readList all data sources registered in Purview
Microsoft Purview Data Governancelist_glossariesPurview.DelegatedAccess✓readList the business glossaries in Purview
Microsoft Purview Data Governancelist_glossariesData ReaderPurview collection role✓readList the business glossaries in Purview
Microsoft Purview Data Governancelist_glossary_termsPurview.DelegatedAccess✓readList the terms in a Purview business glossary
Microsoft Purview Data Governancelist_glossary_termsData ReaderPurview collection role✓readList the terms in a Purview business glossary
Microsoft Purview Data Governancelist_scan_historyPurview.DelegatedAccess✓readList the run history of a Purview scan with status and results
Microsoft Purview Data Governancelist_scan_historyData Source AdministratorPurview collection role✓readList the run history of a Purview scan with status and results
Microsoft Purview Data Governancelist_scansPurview.DelegatedAccess✓readList the scan definitions for a Purview data source
Microsoft Purview Data Governancelist_scansData Source AdministratorPurview collection role✓readList the scan definitions for a Purview data source
Microsoft Purview Data Governancelist_type_headersPurview.DelegatedAccess✓readList Purview type definition headers, optionally filtered by category
Microsoft Purview Data Governancelist_type_headersData ReaderPurview collection role✓readList Purview type definition headers, optionally filtered by category
Microsoft Purview Data Governancerun_scanPurview.DelegatedAccess✓writeTrigger a full or incremental scan run for a Purview data source
Microsoft Purview Data Governancerun_scanData Source AdministratorPurview collection role✓writeTrigger a full or incremental scan run for a Purview data source
Microsoft Purview Data Governancesearch_entitiesPurview.DelegatedAccess✓readSearch the Purview data catalog for data assets by keyword, filter, and facet
Microsoft Purview Data Governancesearch_entitiesData ReaderPurview collection role✓readSearch the Purview data catalog for data assets by keyword, filter, and facet
Microsoft Purview Data Governanceupdate_glossary_termPurview.DelegatedAccess✓writeUpdate a Purview glossary term's name, description, or status
Microsoft Purview Data Governanceupdate_glossary_termData CuratorPurview collection role✓writeUpdate a Purview glossary term's name, description, or status
Microsoft Purview Data Governanceupdate_relationshipPurview.DelegatedAccess✓writeUpdate an existing relationship between Purview data assets
Microsoft Purview Data Governanceupdate_relationshipData CuratorPurview collection role✓writeUpdate an existing relationship between Purview data assets
Microsoft Sentinel (Management)add_incident_commentuser_impersonation✓writeAdd a comment to a Microsoft Sentinel incident
Microsoft Sentinel (Management)add_incident_commentMicrosoft Sentinel ResponderAzure RBAC role✓writeAdd a comment to a Microsoft Sentinel incident
Microsoft Sentinel (Management)create_bookmarkuser_impersonation✓writeCreate a Microsoft Sentinel hunting bookmark from a KQL query
Microsoft Sentinel (Management)create_bookmarkMicrosoft Sentinel ResponderAzure RBAC role✓writeCreate a Microsoft Sentinel hunting bookmark from a KQL query
Microsoft Sentinel (Management)get_incidentuser_impersonation✓readGet one Microsoft Sentinel incident with its severity, status, owner, and classification
Microsoft Sentinel (Management)get_incidentMicrosoft Sentinel ReaderAzure RBAC role✓readGet one Microsoft Sentinel incident with its severity, status, owner, and classification
Microsoft Sentinel (Management)get_watchlistuser_impersonation✓readGet metadata for one Microsoft Sentinel watchlist by alias
Microsoft Sentinel (Management)get_watchlistMicrosoft Sentinel ReaderAzure RBAC role✓readGet metadata for one Microsoft Sentinel watchlist by alias
Microsoft Sentinel (Management)list_bookmarksuser_impersonation✓readList hunting bookmarks in the Microsoft Sentinel workspace
Microsoft Sentinel (Management)list_bookmarksMicrosoft Sentinel ReaderAzure RBAC role✓readList hunting bookmarks in the Microsoft Sentinel workspace
Microsoft Sentinel (Management)list_incident_alertsuser_impersonation✓readList the security alerts grouped into a Microsoft Sentinel incident
Microsoft Sentinel (Management)list_incident_alertsMicrosoft Sentinel ReaderAzure RBAC role✓readList the security alerts grouped into a Microsoft Sentinel incident
Microsoft Sentinel (Management)list_incident_entitiesuser_impersonation✓readList the entities (accounts, hosts, IPs, files, URLs) related to a Microsoft Sentinel incident
Microsoft Sentinel (Management)list_incident_entitiesMicrosoft Sentinel ReaderAzure RBAC role✓readList the entities (accounts, hosts, IPs, files, URLs) related to a Microsoft Sentinel incident
Microsoft Sentinel (Management)list_incidentsuser_impersonation✓readList Microsoft Sentinel incidents in the workspace, optionally filtered by severity and status
Microsoft Sentinel (Management)list_incidentsMicrosoft Sentinel ReaderAzure RBAC role✓readList Microsoft Sentinel incidents in the workspace, optionally filtered by severity and status
Microsoft Sentinel (Management)list_threat_intelligence_indicatorsuser_impersonation✓readList threat intelligence indicators in the Microsoft Sentinel workspace
Microsoft Sentinel (Management)list_threat_intelligence_indicatorsMicrosoft Sentinel ReaderAzure RBAC role✓readList threat intelligence indicators in the Microsoft Sentinel workspace
Microsoft Sentinel (Management)list_watchlist_itemsuser_impersonation✓readList the rows of a Microsoft Sentinel watchlist
Microsoft Sentinel (Management)list_watchlist_itemsMicrosoft Sentinel ReaderAzure RBAC role✓readList the rows of a Microsoft Sentinel watchlist
Microsoft Sentinel (Management)list_watchlistsuser_impersonation✓readList watchlists in the Microsoft Sentinel workspace
Microsoft Sentinel (Management)list_watchlistsMicrosoft Sentinel ReaderAzure RBAC role✓readList watchlists in the Microsoft Sentinel workspace
Microsoft Sentinel (Management)update_incidentuser_impersonation✓writeUpdate a Microsoft Sentinel incident's title, severity, or status, or close it with a classification
Microsoft Sentinel (Management)update_incidentMicrosoft Sentinel ResponderAzure RBAC role✓writeUpdate a Microsoft Sentinel incident's title, severity, or status, or close it with a classification
Microsoft Teamscreate_chatChat.Create✓writeCreate a one-on-one or group chat with users in the organization
Microsoft Teamscreate_chatUser.Read✓readCreate a one-on-one or group chat with users in the organization
Microsoft Teamsdownload_file_to_kindo_libraryFiles.ReadWrite.All✓readDownload a Teams, SharePoint, or OneDrive file into the Kindo library
Microsoft Teamsget_channel_messagesChannelMessage.Read.All✓readRead messages from a Teams channel
Microsoft Teamsget_channel_messagesChannel.ReadBasic.All✓readRead messages from a Teams channel
Microsoft Teamsget_chat_messagesChat.Read✓readRead messages from a one-on-one or group chat
Microsoft Teamsget_current_userUser.Read✓readGet the profile of the signed-in user
Microsoft Teamsget_drive_fileFiles.Read.All✓readGet metadata and a download link for a file in a Teams or SharePoint drive
Microsoft Teamsget_meeting_transcriptOnlineMeetingTranscript.Read.All✓readGet the text of a Teams meeting transcript
Microsoft Teamsget_meeting_transcriptOnlineMeetings.Read✓readGet the text of a Teams meeting transcript
Microsoft Teamsget_sharepoint_fileFiles.ReadWrite.All✓readGet metadata and a download link for a file from its SharePoint or OneDrive URL
Microsoft Teamslist_channel_filesFiles.Read.All✓readList files and folders in a Teams channel
Microsoft Teamslist_channelsChannel.ReadBasic.All✓readList the channels in a team
Microsoft Teamslist_chatsChat.ReadBasic✓readList the signed-in user's one-on-one and group chats
Microsoft Teamslist_meeting_transcriptsOnlineMeetingTranscript.Read.All✓readList the transcripts available for a Teams meeting
Microsoft Teamslist_meeting_transcriptsOnlineMeetings.Read✓readList the transcripts available for a Teams meeting
Microsoft Teamslist_teamsTeam.ReadBasic.All✓readList the teams the signed-in user has joined
Microsoft Teamssearch_messagesChat.Read✓readSearch the signed-in user's Teams chat and channel messages by keyword
Microsoft Teamssearch_messagesChannelMessage.Read.All✓readSearch the signed-in user's Teams chat and channel messages by keyword
Microsoft Teamssearch_usersUser.ReadBasic.All✓readFind users in the organization by name or email prefix
Microsoft Teamssend_adaptive_cardChannelMessage.Send✓writePost an Adaptive Card to a Teams channel or chat
Microsoft Teamssend_adaptive_cardChatMessage.Send✓writePost an Adaptive Card to a Teams channel or chat
Microsoft Teamssend_adaptive_cardChannel.ReadBasic.All✓readPost an Adaptive Card to a Teams channel or chat
Microsoft Teamssend_channel_messageChannelMessage.Send✓writeSend a plain-text message to a Teams channel
Microsoft Teamssend_channel_messageChannel.ReadBasic.All✓readSend a plain-text message to a Teams channel
Microsoft Teamssend_chat_messageChatMessage.Send✓writeSend a plain-text message to a one-on-one or group chat
Microsoft Teamssend_html_messageChannelMessage.Send✓writeSend an HTML-formatted message to a Teams channel or chat
Microsoft Teamssend_html_messageChatMessage.Send✓writeSend an HTML-formatted message to a Teams channel or chat
Microsoft Teamssend_html_messageChannel.ReadBasic.All✓readSend an HTML-formatted message to a Teams channel or chat
Microsoft eDiscoveryactivate_custodianeDiscovery.ReadWrite.All✓✓writeRe-activate a released custodian in an eDiscovery case
Microsoft eDiscoveryadd_case_membereDiscovery.ReadWrite.All✓✓writeAdd a user or role group as a member of an eDiscovery case
Microsoft eDiscoveryadd_to_review_seteDiscovery.ReadWrite.All✓✓writeAdd the results of an eDiscovery search to a review set
Microsoft eDiscoveryapply_custodian_holdeDiscovery.ReadWrite.All✓✓writePlace a legal hold on one or more custodians in an eDiscovery case
Microsoft eDiscoveryapply_noncustodial_holdeDiscovery.ReadWrite.All✓✓writePlace a legal hold on a non-custodial data source in an eDiscovery case
Microsoft eDiscoveryclose_caseeDiscovery.ReadWrite.All✓✓writeClose an active eDiscovery case
Microsoft eDiscoverycreate_caseeDiscovery.ReadWrite.All✓✓writeCreate an eDiscovery case
Microsoft eDiscoverycreate_custodianeDiscovery.ReadWrite.All✓✓writeAdd a custodian to an eDiscovery case by email address
Microsoft eDiscoverycreate_hold_site_sourceeDiscovery.ReadWrite.All✓✓writeAdd a SharePoint site to a legal hold policy
Microsoft eDiscoverycreate_hold_user_sourceeDiscovery.ReadWrite.All✓✓writeAdd a user mailbox to a legal hold policy
Microsoft eDiscoverycreate_legal_holdeDiscovery.ReadWrite.All✓✓writeCreate a legal hold policy in an eDiscovery case
Microsoft eDiscoverycreate_noncustodial_data_sourceeDiscovery.ReadWrite.All✓✓writeAdd a SharePoint site or mailbox as a non-custodial data source in an eDiscovery case
Microsoft eDiscoverycreate_review_seteDiscovery.ReadWrite.All✓✓writeCreate a review set in an eDiscovery case
Microsoft eDiscoverycreate_searcheDiscovery.ReadWrite.All✓✓writeCreate a KQL search in an eDiscovery case
Microsoft eDiscoverydelete_caseeDiscovery.ReadWrite.All✓✓writeDelete an eDiscovery case
Microsoft eDiscoverydelete_hold_site_sourceeDiscovery.ReadWrite.All✓✓writeRemove a SharePoint site from a legal hold policy
Microsoft eDiscoverydelete_hold_user_sourceeDiscovery.ReadWrite.All✓✓writeRemove a user mailbox from a legal hold policy
Microsoft eDiscoverydelete_legal_holdeDiscovery.ReadWrite.All✓✓writeDelete a legal hold policy from an eDiscovery case
Microsoft eDiscoveryestimate_search_statisticseDiscovery.Read.All✓✓readEstimate the item count and size matched by an eDiscovery search
Microsoft eDiscoveryexport_review_seteDiscovery.ReadWrite.All✓✓writeStart an export of the items in an eDiscovery review set
Microsoft eDiscoveryexport_search_resulteDiscovery.ReadWrite.All✓✓writeStart an export of the results of an estimated eDiscovery search
Microsoft eDiscoveryget_caseeDiscovery.Read.All✓✓readGet an eDiscovery case by ID
Microsoft eDiscoveryget_custodianeDiscovery.Read.All✓✓readGet a custodian in an eDiscovery case, including hold status
Microsoft eDiscoveryget_legal_holdeDiscovery.Read.All✓✓readGet a legal hold policy in an eDiscovery case
Microsoft eDiscoveryget_noncustodial_data_sourceeDiscovery.Read.All✓✓readGet a non-custodial data source in an eDiscovery case
Microsoft eDiscoveryget_searcheDiscovery.Read.All✓✓readGet a search in an eDiscovery case
Microsoft eDiscoverylist_case_memberseDiscovery.Read.All✓✓readList the users and role groups that are members of an eDiscovery case
Microsoft eDiscoverylist_case_operationseDiscovery.Read.All✓✓readList long-running operations such as exports and holds in an eDiscovery case
Microsoft eDiscoverylist_caseseDiscovery.Read.All✓✓readList eDiscovery cases in the tenant
Microsoft eDiscoverylist_custodianseDiscovery.Read.All✓✓readList custodians in an eDiscovery case
Microsoft eDiscoverylist_hold_site_sourceseDiscovery.Read.All✓✓readList SharePoint sites covered by a legal hold policy
Microsoft eDiscoverylist_hold_user_sourceseDiscovery.Read.All✓✓readList user mailboxes covered by a legal hold policy
Microsoft eDiscoverylist_legal_holdseDiscovery.Read.All✓✓readList legal hold policies in an eDiscovery case
Microsoft eDiscoverylist_noncustodial_data_sourceseDiscovery.Read.All✓✓readList non-custodial data sources in an eDiscovery case
Microsoft eDiscoverylist_review_setseDiscovery.Read.All✓✓readList review sets in an eDiscovery case
Microsoft eDiscoverylist_searcheseDiscovery.Read.All✓✓readList searches in an eDiscovery case
Microsoft eDiscoveryrelease_custodianeDiscovery.ReadWrite.All✓✓writeRelease a custodian from an eDiscovery case
Microsoft eDiscoveryrelease_noncustodial_data_sourceeDiscovery.ReadWrite.All✓✓writeRelease a non-custodial data source from an eDiscovery case
Microsoft eDiscoveryremove_case_membereDiscovery.ReadWrite.All✓✓writeRemove a user or role group from an eDiscovery case
Microsoft eDiscoveryremove_custodian_holdeDiscovery.ReadWrite.All✓✓writeRemove a legal hold from one or more custodians in an eDiscovery case
Microsoft eDiscoveryremove_noncustodial_holdeDiscovery.ReadWrite.All✓✓writeRemove a legal hold from a non-custodial data source in an eDiscovery case
Microsoft eDiscoveryreopen_caseeDiscovery.ReadWrite.All✓✓writeReopen a closed eDiscovery case
Microsoft eDiscoveryretry_hold_policyeDiscovery.ReadWrite.All✓✓writeRetry a legal hold policy to re-apply the hold to its mailboxes and sites
Microsoft eDiscoveryupdate_caseeDiscovery.ReadWrite.All✓✓writeUpdate the name, description, or external ID of an eDiscovery case
Microsoft eDiscoveryupdate_legal_holdeDiscovery.ReadWrite.All✓✓writeUpdate the description or content query of a legal hold policy
Microsoft eDiscoveryupdate_noncustodial_indexeDiscovery.ReadWrite.All✓✓writeTrigger re-indexing of a non-custodial data source in an eDiscovery case
OneDrivecopy_itemFiles.ReadWrite.All✓writeCopy a file or folder to another folder in a drive
OneDrivecreate_folderFiles.ReadWrite.All✓writeCreate a folder in a drive
OneDrivecreate_sharing_linkFiles.ReadWrite.All✓writeCreate a view, edit, or embed sharing link for a file or folder
OneDrivedelete_itemFiles.ReadWrite.All✓writeMove a file or folder to the drive's recycle bin
OneDrivedownload_file_to_kindo_libraryFiles.Read.All✓readDownload a OneDrive file into the Kindo library
OneDriveget_driveFiles.Read.All✓readGet a drive's metadata, quota, and owner by id
OneDriveget_my_driveFiles.Read✓readGet the signed-in user's default OneDrive
OneDrivelist_childrenFiles.Read.All✓readList the files and folders inside a folder in a drive
OneDrivelist_drivesFiles.Read✓readList the drives available to the signed-in user
OneDriveupload_fileFiles.ReadWrite.All✓writeUpload a file into a folder in a drive
SharePoint Onlinecreate_folderFiles.ReadWrite✓writeCreate a folder in a SharePoint document library
SharePoint Onlinecreate_folderSites.ReadWrite.All✓writeCreate a folder in a SharePoint document library
SharePoint Onlinecreate_list_itemSites.ReadWrite.All✓✓writeCreate an item with column values in a SharePoint list
SharePoint Onlineget_drive_itemFiles.Read✓readGet metadata for a file or folder in a SharePoint document library by ID or path
SharePoint Onlineget_drive_itemSites.Read.All✓readGet metadata for a file or folder in a SharePoint document library by ID or path
SharePoint Onlineget_listSites.Read.All✓✓readGet a SharePoint list by ID or internal name
SharePoint Onlineget_siteSites.Read.All✓✓readGet a SharePoint site by ID or by hostname and site path
SharePoint Onlinelist_drive_itemsFiles.Read✓readList files and folders in a SharePoint document library or one of its folders
SharePoint Onlinelist_drive_itemsSites.Read.All✓readList files and folders in a SharePoint document library or one of its folders
SharePoint Onlinelist_drivesFiles.Read✓readList the document libraries of a SharePoint site
SharePoint Onlinelist_drivesSites.Read.All✓readList the document libraries of a SharePoint site
SharePoint Onlinelist_list_itemsSites.Read.All✓✓readList items in a SharePoint list, optionally with column values and an OData filter
SharePoint Onlinelist_listsSites.Read.All✓✓readList the lists in a SharePoint site
SharePoint Onlinelist_sitesSites.Read.All✓✓readList the SharePoint sites the signed-in user can access
SharePoint Onlinesearch_drive_itemsFiles.Read✓readSearch a SharePoint document library for files and folders by keyword
SharePoint Onlinesearch_drive_itemsSites.Read.All✓readSearch a SharePoint document library for files and folders by keyword
SharePoint Onlinesearch_sitesSites.Read.All✓✓readSearch SharePoint sites by keyword
SharePoint Onlineupload_fileFiles.ReadWrite✓writeUpload a file into a SharePoint document library, fetching its bytes from a signed URL
SharePoint Onlineupload_fileSites.ReadWrite.All✓writeUpload a file into a SharePoint document library, fetching its bytes from a signed URL

If you look for an integration’s app under App registrations and only find it under Enterprise applications, you are looking at its service principal.

  • An app registration is the blueprint — the global definition of an application. It lives only in the tenant where the app was created.
  • An enterprise application (service principal) is an instance of that blueprint inside each tenant that uses the app. It is the app’s actual account in your directory.

What you see in your tenant depends on how you use Kindo:

  • Kindo SaaS: the app registration lives in Kindo’s tenant. The first time you authorize an integration, Entra ID creates a service principal in your tenant under Enterprise applications, and that is what you authenticate against on every subsequent connection. You will not see an app registration in your tenant.
  • Self-managed Kindo: you create the app registration in your own tenant by following the steps on this page. When the app is first authorized, Entra ID still creates a matching service principal under Enterprise applications.

In both cases, the service principal is what Microsoft Entra ID uses to let the app operate in your tenant:

  • It holds the permission grants. When a user or admin consents, the grant is recorded against the service principal. It is the ledger of what the app is allowed to access in your tenant.
  • It is the identity that tokens are issued to. When Entra ID issues the app an access token for your tenant, the service principal is the actor that token represents.
  • It is your admin’s control point. Your admin manages the app under Enterprise applications: assign or restrict users, apply Conditional Access policies, disable the app, or revoke its access — all without touching the underlying registration.
  • It is where sign-in and audit activity lands. Sign-in logs and consent events for the app in your tenant attach to the service principal.
ProblemWhat to check
Microsoft says the redirect URI is invalidMake sure the redirect URI in Entra exactly matches the callback URL shown in Nango, including https:// and /oauth/callback.
The consent screen does not show the expected permissionsConfirm the permissions were added to the same app registration whose client ID you entered in Nango. Reconnect after changing permissions.
Kindo reports Unauthorized or cannot refresh the connectionRecreate the connection and confirm the integration includes offline_access when delegated refresh is required.
Kindo reports ForbiddenThe signed-in user may not have access to the Microsoft resource, admin consent may be missing, or the app may not have the required permission.
A write action fails but read actions workThe app may have read-only permissions. Add only the specific write permission required by the integration.
Microsoft eDiscovery (Application mode) reports UnauthorizedThe app also needs to be registered in Microsoft Purview’s RBAC layer — see Application mode.
Microsoft Graph Security risky-user tools report access deniedRequires a Microsoft Entra ID P2 (or Microsoft 365 E5) license.
Microsoft Intune tools report authentication failedRequires an active Microsoft Intune license.
Microsoft Defender tools report access deniedRequires an active Microsoft Defender for Endpoint subscription.
Microsoft Entra ID Governance’s PIM or Lifecycle Workflows tools report a licensing errorPIM requires Microsoft Entra ID P2; Lifecycle Workflows requires the separate Microsoft Entra ID Governance license.
Microsoft Purview Data Governance tools report access errors even though the permissions are granted and admin-consentedThe signed-in user is also missing a Purview collection role (Data Curator, Data Source Administrator, or Collection Admin) — see the Microsoft Purview Data Governance section above.
SharePoint Online (Application mode) site or file search reports access deniedThe app holds Sites.Selected, which Microsoft does not support on these APIs. Grant Sites.Read.All or Sites.ReadWrite.All as an Application permission — see Application mode.
  • Use least-privilege permissions for every Microsoft integration.
  • Rotate client secrets according to your organization’s policy.
  • Remove unused app registrations and old client secrets.
  • Keep a record of which Kindo integration uses each Entra app registration.