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_impersonationreadGet one Azure management group by ID, optionally with its child groups and subscriptions
Microsoft Azureget_management_groupReaderAzure RBAC rolereadGet one Azure management group by ID, optionally with its child groups and subscriptions
Microsoft Azureget_policy_assignmentuser_impersonationreadGet one Azure Policy assignment by name at a subscription, resource group, or management group scope
Microsoft Azureget_policy_assignmentReaderAzure RBAC rolereadGet one Azure Policy assignment by name at a subscription, resource group, or management group scope
Microsoft Azureget_policy_compliance_summaryuser_impersonationreadSummarize Azure Policy compliance counts for a subscription or a single policy assignment
Microsoft Azureget_policy_compliance_summaryReaderAzure RBAC rolereadSummarize Azure Policy compliance counts for a subscription or a single policy assignment
Microsoft Azureget_policy_definitionuser_impersonationreadGet one Azure Policy definition by name within a subscription
Microsoft Azureget_policy_definitionReaderAzure RBAC rolereadGet one Azure Policy definition by name within a subscription
Microsoft Azureget_role_assignmentuser_impersonationreadGet one Azure RBAC role assignment by name at a scope
Microsoft Azureget_role_assignmentReaderAzure RBAC rolereadGet one Azure RBAC role assignment by name at a scope
Microsoft Azureget_role_definitionuser_impersonationreadGet one Azure RBAC role definition by ID at a scope, including its allowed and denied actions
Microsoft Azureget_role_definitionReaderAzure RBAC rolereadGet one Azure RBAC role definition by ID at a scope, including its allowed and denied actions
Microsoft Azureget_subscriptionuser_impersonationreadGet details of one Azure subscription by ID
Microsoft Azureget_subscriptionReaderAzure RBAC rolereadGet details of one Azure subscription by ID
Microsoft Azurelist_management_group_descendantsuser_impersonationreadList the management groups and subscriptions beneath a management group
Microsoft Azurelist_management_group_descendantsReaderAzure RBAC rolereadList the management groups and subscriptions beneath a management group
Microsoft Azurelist_management_groupsuser_impersonationreadList the Azure management groups visible to the signed-in user
Microsoft Azurelist_management_groupsReaderAzure RBAC rolereadList the Azure management groups visible to the signed-in user
Microsoft Azurelist_noncompliant_resourcesuser_impersonationreadList resources that are non-compliant with Azure Policy in a subscription
Microsoft Azurelist_noncompliant_resourcesReaderAzure RBAC rolereadList resources that are non-compliant with Azure Policy in a subscription
Microsoft Azurelist_policy_assignmentsuser_impersonationreadList Azure Policy assignments at a subscription, resource group, or management group scope
Microsoft Azurelist_policy_assignmentsReaderAzure RBAC rolereadList Azure Policy assignments at a subscription, resource group, or management group scope
Microsoft Azurelist_policy_definitionsuser_impersonationreadList built-in and custom Azure Policy definitions available at a scope
Microsoft Azurelist_policy_definitionsReaderAzure RBAC rolereadList built-in and custom Azure Policy definitions available at a scope
Microsoft Azurelist_resource_groupsuser_impersonationreadList resource groups in a subscription with their location and tags
Microsoft Azurelist_resource_groupsReaderAzure RBAC rolereadList resource groups in a subscription with their location and tags
Microsoft Azurelist_resourcesuser_impersonationreadList Azure resources in a subscription or resource group, optionally filtered by type
Microsoft Azurelist_resourcesReaderAzure RBAC rolereadList Azure resources in a subscription or resource group, optionally filtered by type
Microsoft Azurelist_role_assignmentsuser_impersonationreadList Azure RBAC role assignments at a scope, optionally for one principal
Microsoft Azurelist_role_assignmentsReaderAzure RBAC rolereadList Azure RBAC role assignments at a scope, optionally for one principal
Microsoft Azurelist_role_definitionsuser_impersonationreadList Azure RBAC role definitions available at a scope, optionally custom roles only
Microsoft Azurelist_role_definitionsReaderAzure RBAC rolereadList Azure RBAC role definitions available at a scope, optionally custom roles only
Microsoft Azurelist_subscriptionsuser_impersonationreadList the Azure subscriptions the signed-in user can access in the tenant
Microsoft Azurelist_subscriptionsReaderAzure RBAC rolereadList the Azure subscriptions the signed-in user can access in the tenant
Microsoft Azurequery_resourcesuser_impersonationreadRun an Azure Resource Graph KQL query across subscriptions or management groups
Microsoft Azurequery_resourcesReaderAzure RBAC rolereadRun an Azure Resource Graph KQL query across subscriptions or management groups
Microsoft Defendercreate_indicatorTi.ReadWritewriteCreate or update a Defender for Endpoint threat indicator for an IP, URL, domain, or file hash
Microsoft Defenderdelete_indicatorTi.ReadWritewriteDelete a Defender for Endpoint threat indicator by ID
Microsoft Defenderget_alertAlert.ReadreadGet a single Defender for Endpoint alert by ID
Microsoft Defenderget_incidentIncident.ReadreadGet a Defender incident by ID, including its associated alerts
Microsoft Defenderget_indicatorTi.ReadWritereadGet a single Defender for Endpoint threat indicator by ID
Microsoft Defenderget_investigationAlert.ReadreadGet a Defender for Endpoint automated investigation by ID
Microsoft Defenderget_machineMachine.ReadreadGet a single Defender for Endpoint device by ID
Microsoft Defenderisolate_machineMachine.IsolatewriteIsolate a device from the network with full or selective isolation
Microsoft Defenderlist_alertsAlert.ReadreadList Defender for Endpoint alerts filtered by status, severity, or an OData filter
Microsoft Defenderlist_incidentsIncident.ReadreadList Defender incidents filtered by status, assignee, or an OData filter
Microsoft Defenderlist_indicatorsTi.ReadWritereadList Defender for Endpoint threat indicators, optionally filtered by type or action
Microsoft Defenderlist_investigationsAlert.ReadreadList Defender for Endpoint automated investigations, optionally filtered by state or device
Microsoft Defenderlist_machinesMachine.ReadreadList Defender for Endpoint devices filtered by name, OS, risk score, or health status
Microsoft Defenderrun_advanced_queryAdvancedQuery.ReadreadRun a KQL advanced hunting query against Defender for Endpoint data
Microsoft Defenderrun_antivirus_scanMachine.ScanwriteStart a quick or full Microsoft Defender Antivirus scan on a device
Microsoft Defenderunisolate_machineMachine.IsolatewriteRelease a device from network isolation
Microsoft Defenderupdate_alertAlert.ReadWritewriteUpdate a Defender for Endpoint alert's status, assignee, classification, or determination
Microsoft Defenderupdate_incidentIncident.ReadWritewriteUpdate a Defender incident's status, assignee, classification, determination, or tags
Microsoft Defender for Cloudget_alertuser_impersonationreadGet one Defender for Cloud security alert with its entities, tactics, and remediation steps
Microsoft Defender for Cloudget_alertSecurity ReaderAzure RBAC rolereadGet one Defender for Cloud security alert with its entities, tactics, and remediation steps
Microsoft Defender for Cloudget_compliance_overviewuser_impersonationreadGet the passing and failing controls for a regulatory compliance standard in the subscription
Microsoft Defender for Cloudget_compliance_overviewSecurity ReaderAzure RBAC rolereadGet the passing and failing controls for a regulatory compliance standard in the subscription
Microsoft Defender for Cloudget_recommendationuser_impersonationreadGet one Defender for Cloud security recommendation (assessment) with its status and remediation
Microsoft Defender for Cloudget_recommendationSecurity ReaderAzure RBAC rolereadGet one Defender for Cloud security recommendation (assessment) with its status and remediation
Microsoft Defender for Cloudget_secure_scoreuser_impersonationreadGet the subscription's Defender for Cloud secure score with a breakdown by security control
Microsoft Defender for Cloudget_secure_scoreSecurity ReaderAzure RBAC rolereadGet the subscription's Defender for Cloud secure score with a breakdown by security control
Microsoft Defender for Cloudlist_alertsuser_impersonationreadList Defender for Cloud security alerts for the subscription
Microsoft Defender for Cloudlist_alertsSecurity ReaderAzure RBAC rolereadList Defender for Cloud security alerts for the subscription
Microsoft Defender for Cloudlist_recommendation_findingsuser_impersonationreadList the per-resource findings (sub-assessments) for a security recommendation
Microsoft Defender for Cloudlist_recommendation_findingsSecurity ReaderAzure RBAC rolereadList the per-resource findings (sub-assessments) for a security recommendation
Microsoft Defender for Cloudlist_recommendationsuser_impersonationreadList Defender for Cloud security recommendations (assessments) for the subscription
Microsoft Defender for Cloudlist_recommendationsSecurity ReaderAzure RBAC rolereadList Defender for Cloud security recommendations (assessments) for the subscription
Microsoft Defender for Cloudlist_security_coverageuser_impersonationreadList enabled Defender for Cloud plans and available regulatory compliance standards
Microsoft Defender for Cloudlist_security_coverageSecurity ReaderAzure RBAC rolereadList enabled Defender for Cloud plans and available regulatory compliance standards
Microsoft Defender for Cloudupdate_alertuser_impersonationwriteSet a Defender for Cloud alert's status to Active, InProgress, Resolved, or Dismissed
Microsoft Defender for Cloudupdate_alertSecurity AdminAzure RBAC rolewriteSet a Defender for Cloud alert's status to Active, InProgress, Resolved, or Dismissed
Microsoft Entra IDdisable_user_accountUser.EnableDisableAccount.AllwriteDisable a user account so the user can no longer sign in
Microsoft Entra IDdisable_user_accountUser.Read.AllreadDisable a user account so the user can no longer sign in
Microsoft Entra IDenable_user_accountUser.EnableDisableAccount.AllwriteEnable a previously disabled user account so the user can sign in again
Microsoft Entra IDenable_user_accountUser.Read.AllreadEnable a previously disabled user account so the user can sign in again
Microsoft Entra IDevaluate_conditional_accessPolicy.Read.ConditionalAccessreadEvaluate which conditional access policies would apply to a hypothetical user or service principal sign-in
Microsoft Entra IDevaluate_conditional_accessUser.ReadBasic.AllreadEvaluate which conditional access policies would apply to a hypothetical user or service principal sign-in
Microsoft Entra IDevaluate_conditional_accessUser.Read.AllreadEvaluate which conditional access policies would apply to a hypothetical user or service principal sign-in
Microsoft Entra IDget_authentication_sla_attainmentReports.Read.AllreadRead monthly Microsoft Entra authentication SLA attainment for the tenant
Microsoft Entra IDget_conditional_access_impact_summaryAuditLog.Read.AllreadCount how many recent sign-ins each conditional access policy allowed, blocked, or skipped
Microsoft Entra IDget_conditional_access_impact_summaryPolicy.Read.ConditionalAccessreadCount how many recent sign-ins each conditional access policy allowed, blocked, or skipped
Microsoft Entra IDget_conditional_access_policyPolicy.Read.AllreadGet one conditional access policy with its conditions, grant controls, and session controls
Microsoft Entra IDget_directory_audit_detailsAuditLog.Read.AllreadGet one directory audit log entry with its full target resource list
Microsoft Entra IDget_directory_audit_detailsDirectory.Read.AllreadGet one directory audit log entry with its full target resource list
Microsoft Entra IDget_directory_objects_by_idsDirectory.Read.AllreadResolve a batch of directory object ids to their user, group, or device objects
Microsoft Entra IDget_directory_roleRoleManagement.Read.DirectoryreadGet one activated directory role by object id or role template id
Microsoft Entra IDget_groupGroup.Read.AllreadGet one group by object id
Microsoft Entra IDget_sign_in_detailsAuditLog.Read.AllreadGet one sign-in log entry with its status, device, and location details
Microsoft Entra IDget_userUser.Read.AllreadGet one user by object id or user principal name
Microsoft Entra IDget_user_inplace_hold_statusUser.Read.AllreadGet the in-place hold policies applied to a user's mailbox
Microsoft Entra IDget_user_registration_detailsAuditLog.Read.AllreadGet the authentication methods one user has registered and their MFA and passwordless capability
Microsoft Entra IDget_user_registration_detailsUser.ReadBasic.AllreadGet the authentication methods one user has registered and their MFA and passwordless capability
Microsoft Entra IDget_user_registration_detailsUser.Read.AllreadGet the authentication methods one user has registered and their MFA and passwordless capability
Microsoft Entra IDget_users_registered_by_methodAuditLog.Read.AllreadCount users registered for each authentication method, by user type and role
Microsoft Entra IDlist_adfs_application_activityReports.Read.AllreadList AD FS relying parties with sign-in volume and Entra migration readiness
Microsoft Entra IDlist_app_credential_sign_in_activityAuditLog.Read.AllreadList application credentials with their last sign-in time and expiry
Microsoft Entra IDlist_application_sign_in_summaryReports.Read.AllreadList per-application sign-in counts with success or failure status
Microsoft Entra IDlist_authentication_strengthsPolicy.Read.AuthenticationMethodreadList authentication strength policies and the method combinations each accepts
Microsoft Entra IDlist_conditional_access_policiesPolicy.Read.AllreadList conditional access policies with their enabled, disabled, or report-only state
Microsoft Entra IDlist_directory_auditsAuditLog.Read.AllreadList directory audit log entries recording who changed what in the directory
Microsoft Entra IDlist_directory_recommendationsDirectoryRecommendations.Read.AllreadList Microsoft Entra recommendations and Identity Secure Score improvement actions for the tenant
Microsoft Entra IDlist_directory_role_membersRoleManagement.Read.DirectoryreadList the principals assigned to a directory role
Microsoft Entra IDlist_directory_rolesRoleManagement.Read.DirectoryreadList the directory roles activated in the tenant
Microsoft Entra IDlist_group_membersGroupMember.Read.AllreadList a group's direct members, optionally narrowed to one directory object type
Microsoft Entra IDlist_group_ownersGroupMember.Read.AllreadList a group's owners, optionally narrowed to one directory object type
Microsoft Entra IDlist_groupsGroup.Read.AllreadList groups in the directory with optional name, mail, and type filters
Microsoft Entra IDlist_named_locationsPolicy.Read.AllreadList named locations (IP ranges and countries) referenced by conditional access policies
Microsoft Entra IDlist_provisioning_object_summaryAuditLog.Read.AllreadList provisioning log events for identities synchronized to and from the directory
Microsoft Entra IDlist_provisioning_object_summaryDirectory.Read.AllreadList provisioning log events for identities synchronized to and from the directory
Microsoft Entra IDlist_service_principal_sign_in_activityAuditLog.Read.AllreadList each service principal's last sign-in activity as client and resource
Microsoft Entra IDlist_sign_insAuditLog.Read.AllreadList sign-in log entries with status, device, location, and applied conditional access policies
Microsoft Entra IDlist_user_app_role_assignmentsAppRoleAssignment.ReadWrite.AllreadList the application role assignments granted to a user directly or through group membership
Microsoft Entra IDlist_user_app_role_assignmentsDirectory.Read.AllreadList the application role assignments granted to a user directly or through group membership
Microsoft Entra IDlist_user_registration_detailsAuditLog.Read.AllreadList the authentication methods each user has registered for MFA and passwordless coverage
Microsoft Entra IDlist_usersUser.Read.AllreadList users in the directory with optional name, mail, and account-state filters
Microsoft Entra ID Governanceactivate_lifecycle_workflowLifecycleWorkflows-Workflow.ActivatewriteRun a lifecycle workflow on demand for specific users
Microsoft Entra ID Governanceapply_access_review_decisionsAccessReview.ReadWrite.AllwriteApply the reviewer decisions of a completed access review instance
Microsoft Entra ID Governancecreate_access_package_assignment_requestEntitlementManagement.ReadWrite.AllwriteCreate an access package assignment request to add, remove, or update a user's access
Microsoft Entra ID Governancecreate_group_assignment_requestPrivilegedAssignmentSchedule.ReadWrite.AzureADGroupwriteCreate a PIM request to assign, activate, or remove privileged group membership or ownership
Microsoft Entra ID Governancecreate_group_eligibility_requestPrivilegedEligibilitySchedule.ReadWrite.AzureADGroupwriteCreate a PIM request to grant, extend, or remove eligibility for privileged group membership or ownership
Microsoft Entra ID Governancecreate_role_assignment_requestRoleAssignmentSchedule.ReadWrite.DirectorywriteCreate a PIM request to assign, activate, or deactivate a privileged directory role
Microsoft Entra ID Governancecreate_role_eligibility_requestRoleEligibilitySchedule.ReadWrite.DirectorywriteCreate a PIM request to grant, extend, renew, or remove eligibility for a directory role
Microsoft Entra ID Governanceget_access_packageEntitlementManagement.Read.AllreadGet one access package by id
Microsoft Entra ID Governanceget_access_review_definitionAccessReview.Read.AllreadGet one access review schedule definition with its scope, reviewers, and recurrence
Microsoft Entra ID Governanceget_lifecycle_workflowLifecycleWorkflows-Workflow.ReadBasic.AllreadGet one lifecycle workflow with its tasks, execution conditions, and scope
Microsoft Entra ID Governancelist_access_package_assignmentsEntitlementManagement.Read.AllreadList access package assignments and their state
Microsoft Entra ID Governancelist_access_package_catalogsEntitlementManagement.Read.AllreadList access package catalogs
Microsoft Entra ID Governancelist_access_packagesEntitlementManagement.Read.AllreadList access packages, optionally filtered by catalog
Microsoft Entra ID Governancelist_access_review_decisionsAccessReview.Read.AllreadList the reviewer decisions recorded for an access review instance
Microsoft Entra ID Governancelist_access_review_definitionsAccessReview.Read.AllreadList access review schedule definitions
Microsoft Entra ID Governancelist_access_review_instancesAccessReview.Read.AllreadList the review instances of an access review definition
Microsoft Entra ID Governancelist_group_assignment_schedulesPrivilegedAssignmentSchedule.Read.AzureADGroupreadList active PIM membership and ownership assignments for privileged groups
Microsoft Entra ID Governancelist_group_eligibility_schedulesPrivilegedEligibilitySchedule.Read.AzureADGroupreadList PIM eligibility for privileged group membership and ownership
Microsoft Entra ID Governancelist_lifecycle_workflow_runsLifecycleWorkflows-Reports.Read.AllreadList the run history of a lifecycle workflow with processing status and user counts
Microsoft Entra ID Governancelist_lifecycle_workflowsLifecycleWorkflows-Workflow.ReadBasic.AllreadList lifecycle workflows, optionally filtered by joiner, mover, or leaver category
Microsoft Entra ID Governancelist_role_assignment_schedulesRoleAssignmentSchedule.Read.DirectoryreadList active PIM assignments of privileged directory roles
Microsoft Entra ID Governancelist_role_definitionsRoleManagement.Read.DirectoryreadList directory role definitions and their ids
Microsoft Entra ID Governancelist_role_eligibility_schedulesRoleEligibilitySchedule.Read.DirectoryreadList PIM eligibility for privileged directory roles
Microsoft Excel Onlineadd_table_rowsFiles.ReadWritewriteAppend rows of values to an Excel table
Microsoft Excel Onlineadd_worksheetFiles.ReadWritewriteAdd a worksheet to an Excel workbook
Microsoft Excel Onlineclear_rangeFiles.ReadWritewriteClear contents, formats, or both from a cell range in a worksheet
Microsoft Excel Onlineclose_sessionFiles.ReadWritewriteClose an Excel workbook session
Microsoft Excel Onlinecreate_sessionFiles.ReadWritewriteCreate a persistent or non-persistent Excel workbook session
Microsoft Excel Onlinecreate_tableFiles.ReadWritewriteCreate a table from a cell range on a worksheet
Microsoft Excel Onlinecreate_workbookFiles.ReadWritewriteCreate an empty Excel workbook in the signed-in user's OneDrive
Microsoft Excel Onlinedelete_worksheetFiles.ReadWritewriteDelete a worksheet from an Excel workbook
Microsoft Excel Onlineget_rangeFiles.ReadWritereadRead values, formulas, and number formats from a cell range in a worksheet
Microsoft Excel Onlineget_table_dataFiles.ReadWritereadGet the columns and rows of an Excel table
Microsoft Excel Onlineget_used_rangeFiles.ReadWritereadGet the used range of a worksheet with its address, values, and formulas
Microsoft Excel Onlineget_worksheetFiles.ReadWritereadGet a worksheet in an Excel workbook by name or ID
Microsoft Excel Onlinelist_drive_itemsFiles.ReadreadList files and folders in a OneDrive folder
Microsoft Excel Onlinelist_named_itemsFiles.ReadWritereadList the named ranges and constants defined in an Excel workbook
Microsoft Excel Onlinelist_tablesFiles.ReadWritereadList the tables in an Excel workbook or on one worksheet
Microsoft Excel Onlinelist_worksheetsFiles.ReadWritereadList the worksheets in an Excel workbook
Microsoft Excel Onlinesearch_workbooksFiles.ReadreadSearch the signed-in user's OneDrive for Excel workbooks by name
Microsoft Excel Onlineupdate_rangeFiles.ReadWritewriteWrite values, formulas, or number formats to a cell range in a worksheet
Microsoft Graph Security (Microsoft Defender XDR)confirm_risky_users_compromisedIdentityRiskyUser.ReadWrite.AllwriteConfirm one or more risky users as compromised, setting their risk level to high
Microsoft Graph Security (Microsoft Defender XDR)confirm_risky_users_safeIdentityRiskyUser.ReadWrite.AllwriteConfirm one or more risky users as safe, setting their risk level to none
Microsoft Graph Security (Microsoft Defender XDR)create_alert_commentSecurityAlert.ReadWrite.AllwriteAdd a comment to a Defender XDR security alert
Microsoft Graph Security (Microsoft Defender XDR)create_incident_commentSecurityIncident.ReadWrite.AllwriteAdd a comment to a Defender XDR security incident
Microsoft Graph Security (Microsoft Defender XDR)dismiss_risky_usersIdentityRiskyUser.ReadWrite.AllwriteDismiss the risk of one or more risky users, resetting their risk level to none
Microsoft Graph Security (Microsoft Defender XDR)get_alertSecurityAlert.Read.AllreadGet a single Defender XDR security alert by ID, including its evidence
Microsoft Graph Security (Microsoft Defender XDR)get_incidentSecurityIncident.Read.AllreadGet a single Defender XDR security incident by ID, optionally with its related alerts
Microsoft Graph Security (Microsoft Defender XDR)get_risky_userIdentityRiskyUser.Read.AllreadGet a single risky user from Entra ID Protection by ID
Microsoft Graph Security (Microsoft Defender XDR)list_alertsSecurityAlert.Read.AllreadList Defender XDR security alerts filtered by severity, status, source, assignee, or date
Microsoft Graph Security (Microsoft Defender XDR)list_incidentsSecurityIncident.Read.AllreadList Defender XDR security incidents filtered by severity, status, classification, assignee, or date
Microsoft Graph Security (Microsoft Defender XDR)list_risky_usersIdentityRiskyUser.Read.AllreadList 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.AllreadList Microsoft Secure Score control profiles with their scores and improvement actions
Microsoft Graph Security (Microsoft Defender XDR)list_secure_scoresSecurityEvents.Read.AllreadList daily Microsoft Secure Score snapshots for the tenant
Microsoft Graph Security (Microsoft Defender XDR)run_hunting_queryThreatHunting.Read.AllreadRun a KQL advanced hunting query against Defender XDR data
Microsoft Graph Security (Microsoft Defender XDR)update_alertSecurityAlert.ReadWrite.AllwriteUpdate a Defender XDR alert's status, assignee, classification, or determination
Microsoft Graph Security (Microsoft Defender XDR)update_incidentSecurityIncident.ReadWrite.AllwriteUpdate a Defender XDR incident's status, assignee, classification, determination, or custom tags
Microsoft Intuneget_compliance_policyDeviceManagementConfiguration.Read.AllreadGet one Intune device compliance policy by ID
Microsoft Intuneget_device_configurationDeviceManagementConfiguration.Read.AllreadGet one Intune device configuration profile by ID
Microsoft Intuneget_managed_deviceDeviceManagementManagedDevices.Read.AllreadGet one Intune managed device with its hardware, OS, compliance, and enrollment details
Microsoft Intuneget_mobile_appDeviceManagementApps.Read.AllreadGet one Intune managed app by ID
Microsoft Intunelist_compliance_policiesDeviceManagementConfiguration.Read.AllreadList Intune device compliance policies
Microsoft Intunelist_compliance_policy_device_statusesDeviceManagementConfiguration.Read.AllreadList per-device compliance status for an Intune compliance policy
Microsoft Intunelist_device_configuration_device_statusesDeviceManagementConfiguration.Read.AllreadList per-device deployment status for an Intune device configuration profile
Microsoft Intunelist_device_configurationsDeviceManagementConfiguration.Read.AllreadList Intune device configuration profiles
Microsoft Intunelist_managed_devicesDeviceManagementManagedDevices.Read.AllreadList Intune managed devices, optionally filtered by name, OS, compliance state, or user
Microsoft Intunelist_mobile_app_device_statusesDeviceManagementApps.Read.AllreadList per-device install status for an Intune managed app
Microsoft Intunelist_mobile_appsDeviceManagementApps.Read.AllreadList Intune managed apps, optionally filtered by name or app type
Microsoft Intuneretire_managed_deviceDeviceManagementManagedDevices.PrivilegedOperations.AllwriteRetire an Intune managed device, removing company data while keeping personal data
Microsoft Intunesync_managed_deviceDeviceManagementManagedDevices.PrivilegedOperations.AllwriteForce an Intune managed device to check in for the latest policies
Microsoft Intunewipe_managed_deviceDeviceManagementManagedDevices.PrivilegedOperations.AllwriteFactory-reset an Intune managed device, optionally keeping enrollment or user data
Microsoft Outlookcreate_eventCalendars.ReadWritewriteCreate a calendar event, optionally as a Teams online meeting
Microsoft Outlookdelete_eventCalendars.ReadWritewriteDelete a calendar event
Microsoft Outlookfind_meeting_timesCalendars.Read.SharedreadSuggest meeting times when the given attendees are free
Microsoft Outlookget_contactContacts.ReadreadGet a single contact from the user's Outlook contacts
Microsoft Outlookget_eventCalendars.ReadreadGet a calendar event with its attendees, location, and body
Microsoft Outlookget_messageMail.ReadreadRead the full body and attachment metadata of one email message
Microsoft Outlookget_scheduleCalendars.ReadBasicreadGet free/busy availability for one or more users in a time window
Microsoft Outlooklist_calendarsCalendars.ReadBasicreadList the user's calendars
Microsoft Outlooklist_contactsContacts.ReadreadList email addresses from the user's saved Outlook contacts
Microsoft Outlooklist_emailsPeople.ReadreadList the people the user most often communicates with and their email addresses
Microsoft Outlooklist_eventsCalendars.ReadreadList calendar events, optionally within a date range or matching a search
Microsoft Outlooklist_mail_foldersMail.ReadBasicreadList the mail folders in the user's mailbox
Microsoft Outlooklist_messagesMail.ReadreadList or search email messages in the user's mailbox
Microsoft Outlookrespond_to_eventCalendars.ReadWritewriteAccept, decline, or tentatively accept a meeting invitation
Microsoft Outlooksend_emailMail.SendwriteSend an email with optional attachments as the signed-in user
Microsoft Outlookupdate_eventCalendars.ReadWritewriteUpdate the subject, time, location, attendees, or body of a calendar event
Microsoft Outlook Calendarcreate_eventCalendars.ReadWritewriteCreate a calendar event, optionally as a Teams online meeting
Microsoft Outlook Calendardelete_eventCalendars.ReadWritewriteDelete a calendar event
Microsoft Outlook Calendarfind_meeting_timesCalendars.Read.SharedreadSuggest meeting times when the given attendees are free
Microsoft Outlook Calendarget_eventCalendars.ReadreadGet a calendar event with its attendees, location, and body
Microsoft Outlook Calendarget_scheduleCalendars.ReadBasicreadGet free/busy availability for one or more users in a time window
Microsoft Outlook Calendarlist_calendarsCalendars.ReadBasicreadList the user's calendars
Microsoft Outlook Calendarlist_eventsCalendars.ReadreadList calendar events, optionally within a date range or matching a search
Microsoft Outlook Calendarrespond_to_eventCalendars.ReadWritewriteAccept, decline, or tentatively accept a meeting invitation
Microsoft Outlook Calendarupdate_eventCalendars.ReadWritewriteUpdate the subject, time, location, attendees, or body of a calendar event
Microsoft Purview Complianceassign_sensitivity_labelFiles.ReadWrite.AllwriteAssign a sensitivity label to a file in OneDrive or SharePoint
Microsoft Purview Compliancecompute_protection_scopesProtectionScopes.Compute.UserreadDetermine which Purview DLP policies apply to the signed-in user's activities
Microsoft Purview Compliancecompute_protection_scopesProtectionScopes.Compute.AllreadDetermine which Purview DLP policies apply to the signed-in user's activities
Microsoft Purview Compliancecreate_audit_log_queryAuditLogsQuery.Read.AllreadStart an audit log search across Microsoft 365 services for a date range and filters
Microsoft Purview Complianceget_alertSecurityAlert.Read.AllreadGet a security alert by ID with its evidence and MITRE ATT&CK techniques
Microsoft Purview Complianceget_audit_log_queryAuditLogsQuery.Read.AllreadGet the status and details of an audit log search
Microsoft Purview Complianceget_incidentSecurityIncident.Read.AllreadGet a security incident by ID, optionally with its related alerts
Microsoft Purview Compliancelist_alertsSecurityAlert.Read.AllreadList security alerts from Purview DLP and other Microsoft security services
Microsoft Purview Compliancelist_audit_log_recordsAuditLogsQuery.Read.AllreadList the records returned by a completed audit log search
Microsoft Purview Compliancelist_incidentsSecurityIncident.Read.AllreadList security incidents from Purview DLP and other Microsoft security services
Microsoft Purview Compliancelist_sensitivity_labelsInformationProtectionPolicy.ReadreadList the Purview sensitivity labels available to the signed-in user
Microsoft Purview Compliancelist_sensitivity_labelsInformationProtectionPolicy.Read.AllreadList the Purview sensitivity labels available to the signed-in user
Microsoft Purview Complianceprocess_contentContent.Process.UserreadEvaluate text against Purview DLP policies for the signed-in user and return enforcement actions
Microsoft Purview Compliancerun_hunting_queryThreatHunting.Read.AllreadRun a KQL advanced hunting query against Microsoft Defender XDR data
Microsoft Purview Complianceupdate_alertSecurityAlert.ReadWrite.AllwriteUpdate the status, assignee, classification, or details of a security alert
Microsoft Purview Complianceupdate_incidentSecurityIncident.ReadWrite.AllwriteUpdate the status, severity, assignee, classification, or details of a security incident
Microsoft Purview Data Governanceadd_entity_classificationsPurview.DelegatedAccesswriteAdd one or more classifications to a Purview data asset
Microsoft Purview Data Governanceadd_entity_classificationsData CuratorPurview collection rolewriteAdd one or more classifications to a Purview data asset
Microsoft Purview Data Governanceassign_glossary_termPurview.DelegatedAccesswriteAssign a Purview glossary term to one or more data assets
Microsoft Purview Data Governanceassign_glossary_termData CuratorPurview collection rolewriteAssign a Purview glossary term to one or more data assets
Microsoft Purview Data Governancecreate_glossary_termPurview.DelegatedAccesswriteCreate a term in a Purview business glossary
Microsoft Purview Data Governancecreate_glossary_termData CuratorPurview collection rolewriteCreate a term in a Purview business glossary
Microsoft Purview Data Governancecreate_or_update_collectionPurview.DelegatedAccesswriteCreate or update a Purview collection used to organize data assets
Microsoft Purview Data Governancecreate_or_update_collectionCollection AdminPurview collection rolewriteCreate or update a Purview collection used to organize data assets
Microsoft Purview Data Governancecreate_or_update_data_sourcePurview.DelegatedAccesswriteRegister or update a data source in Purview for scanning
Microsoft Purview Data Governancecreate_or_update_data_sourceData Source AdministratorPurview collection rolewriteRegister or update a data source in Purview for scanning
Microsoft Purview Data Governancecreate_or_update_entityPurview.DelegatedAccesswriteCreate or update a data asset in the Purview data map
Microsoft Purview Data Governancecreate_or_update_entityData CuratorPurview collection rolewriteCreate or update a data asset in the Purview data map
Microsoft Purview Data Governancecreate_or_update_scanPurview.DelegatedAccesswriteCreate or update a scan definition for a Purview data source
Microsoft Purview Data Governancecreate_or_update_scanData Source AdministratorPurview collection rolewriteCreate or update a scan definition for a Purview data source
Microsoft Purview Data Governancecreate_relationshipPurview.DelegatedAccesswriteCreate a relationship between two Purview data assets
Microsoft Purview Data Governancecreate_relationshipData CuratorPurview collection rolewriteCreate a relationship between two Purview data assets
Microsoft Purview Data Governancedelete_collectionPurview.DelegatedAccesswriteDelete an empty Purview collection by name
Microsoft Purview Data Governancedelete_collectionCollection AdminPurview collection rolewriteDelete an empty Purview collection by name
Microsoft Purview Data Governancedelete_entityPurview.DelegatedAccesswriteDelete a data asset from the Purview data map by GUID
Microsoft Purview Data Governancedelete_entityData CuratorPurview collection rolewriteDelete a data asset from the Purview data map by GUID
Microsoft Purview Data Governancedelete_relationshipPurview.DelegatedAccesswriteDelete a relationship between Purview data assets by GUID
Microsoft Purview Data Governancedelete_relationshipData CuratorPurview collection rolewriteDelete a relationship between Purview data assets by GUID
Microsoft Purview Data Governanceget_classification_defPurview.DelegatedAccessreadGet a Purview classification type definition by name
Microsoft Purview Data Governanceget_classification_defData ReaderPurview collection rolereadGet a Purview classification type definition by name
Microsoft Purview Data Governanceget_collectionPurview.DelegatedAccessreadGet a Purview collection by name, including its parent path
Microsoft Purview Data Governanceget_collectionData ReaderPurview collection rolereadGet a Purview collection by name, including its parent path
Microsoft Purview Data Governanceget_data_sourcePurview.DelegatedAccessreadGet a registered Purview data source by name
Microsoft Purview Data Governanceget_data_sourceData Source AdministratorPurview collection rolereadGet a registered Purview data source by name
Microsoft Purview Data Governanceget_entityPurview.DelegatedAccessreadGet the full definition of a Purview data asset by GUID
Microsoft Purview Data Governanceget_entityData ReaderPurview collection rolereadGet the full definition of a Purview data asset by GUID
Microsoft Purview Data Governanceget_entity_by_qualified_namePurview.DelegatedAccessreadGet a Purview data asset by its type and fully qualified name
Microsoft Purview Data Governanceget_entity_by_qualified_nameData ReaderPurview collection rolereadGet a Purview data asset by its type and fully qualified name
Microsoft Purview Data Governanceget_entity_classificationsPurview.DelegatedAccessreadList the classifications assigned to a Purview data asset
Microsoft Purview Data Governanceget_entity_classificationsData ReaderPurview collection rolereadList the classifications assigned to a Purview data asset
Microsoft Purview Data Governanceget_glossaryPurview.DelegatedAccessreadGet a Purview business glossary by GUID, including its terms and categories
Microsoft Purview Data Governanceget_glossaryData ReaderPurview collection rolereadGet a Purview business glossary by GUID, including its terms and categories
Microsoft Purview Data Governanceget_glossary_termPurview.DelegatedAccessreadGet a Purview glossary term by GUID, including its definition and assigned assets
Microsoft Purview Data Governanceget_glossary_termData ReaderPurview collection rolereadGet a Purview glossary term by GUID, including its definition and assigned assets
Microsoft Purview Data Governanceget_lineagePurview.DelegatedAccessreadGet the upstream and downstream data lineage graph for a Purview data asset
Microsoft Purview Data Governanceget_lineageData ReaderPurview collection rolereadGet the upstream and downstream data lineage graph for a Purview data asset
Microsoft Purview Data Governanceget_relationshipPurview.DelegatedAccessreadGet a relationship between Purview data assets by GUID
Microsoft Purview Data Governanceget_relationshipData ReaderPurview collection rolereadGet a relationship between Purview data assets by GUID
Microsoft Purview Data Governanceget_scanPurview.DelegatedAccessreadGet a scan definition for a Purview data source by name
Microsoft Purview Data Governanceget_scanData Source AdministratorPurview collection rolereadGet a scan definition for a Purview data source by name
Microsoft Purview Data Governancelist_child_collection_namesPurview.DelegatedAccessreadList the names of child collections under a Purview collection
Microsoft Purview Data Governancelist_child_collection_namesData ReaderPurview collection rolereadList the names of child collections under a Purview collection
Microsoft Purview Data Governancelist_collectionsPurview.DelegatedAccessreadList all collections in the Purview account
Microsoft Purview Data Governancelist_collectionsData ReaderPurview collection rolereadList all collections in the Purview account
Microsoft Purview Data Governancelist_data_sourcesPurview.DelegatedAccessreadList all data sources registered in Purview
Microsoft Purview Data Governancelist_data_sourcesData Source AdministratorPurview collection rolereadList all data sources registered in Purview
Microsoft Purview Data Governancelist_glossariesPurview.DelegatedAccessreadList the business glossaries in Purview
Microsoft Purview Data Governancelist_glossariesData ReaderPurview collection rolereadList the business glossaries in Purview
Microsoft Purview Data Governancelist_glossary_termsPurview.DelegatedAccessreadList the terms in a Purview business glossary
Microsoft Purview Data Governancelist_glossary_termsData ReaderPurview collection rolereadList the terms in a Purview business glossary
Microsoft Purview Data Governancelist_scan_historyPurview.DelegatedAccessreadList the run history of a Purview scan with status and results
Microsoft Purview Data Governancelist_scan_historyData Source AdministratorPurview collection rolereadList the run history of a Purview scan with status and results
Microsoft Purview Data Governancelist_scansPurview.DelegatedAccessreadList the scan definitions for a Purview data source
Microsoft Purview Data Governancelist_scansData Source AdministratorPurview collection rolereadList the scan definitions for a Purview data source
Microsoft Purview Data Governancelist_type_headersPurview.DelegatedAccessreadList Purview type definition headers, optionally filtered by category
Microsoft Purview Data Governancelist_type_headersData ReaderPurview collection rolereadList Purview type definition headers, optionally filtered by category
Microsoft Purview Data Governancerun_scanPurview.DelegatedAccesswriteTrigger a full or incremental scan run for a Purview data source
Microsoft Purview Data Governancerun_scanData Source AdministratorPurview collection rolewriteTrigger a full or incremental scan run for a Purview data source
Microsoft Purview Data Governancesearch_entitiesPurview.DelegatedAccessreadSearch the Purview data catalog for data assets by keyword, filter, and facet
Microsoft Purview Data Governancesearch_entitiesData ReaderPurview collection rolereadSearch the Purview data catalog for data assets by keyword, filter, and facet
Microsoft Purview Data Governanceupdate_glossary_termPurview.DelegatedAccesswriteUpdate a Purview glossary term's name, description, or status
Microsoft Purview Data Governanceupdate_glossary_termData CuratorPurview collection rolewriteUpdate a Purview glossary term's name, description, or status
Microsoft Purview Data Governanceupdate_relationshipPurview.DelegatedAccesswriteUpdate an existing relationship between Purview data assets
Microsoft Purview Data Governanceupdate_relationshipData CuratorPurview collection rolewriteUpdate an existing relationship between Purview data assets
Microsoft Sentinel (Management)add_incident_commentuser_impersonationwriteAdd a comment to a Microsoft Sentinel incident
Microsoft Sentinel (Management)add_incident_commentMicrosoft Sentinel ResponderAzure RBAC rolewriteAdd a comment to a Microsoft Sentinel incident
Microsoft Sentinel (Management)create_bookmarkuser_impersonationwriteCreate a Microsoft Sentinel hunting bookmark from a KQL query
Microsoft Sentinel (Management)create_bookmarkMicrosoft Sentinel ResponderAzure RBAC rolewriteCreate a Microsoft Sentinel hunting bookmark from a KQL query
Microsoft Sentinel (Management)get_incidentuser_impersonationreadGet one Microsoft Sentinel incident with its severity, status, owner, and classification
Microsoft Sentinel (Management)get_incidentMicrosoft Sentinel ReaderAzure RBAC rolereadGet one Microsoft Sentinel incident with its severity, status, owner, and classification
Microsoft Sentinel (Management)get_watchlistuser_impersonationreadGet metadata for one Microsoft Sentinel watchlist by alias
Microsoft Sentinel (Management)get_watchlistMicrosoft Sentinel ReaderAzure RBAC rolereadGet metadata for one Microsoft Sentinel watchlist by alias
Microsoft Sentinel (Management)list_bookmarksuser_impersonationreadList hunting bookmarks in the Microsoft Sentinel workspace
Microsoft Sentinel (Management)list_bookmarksMicrosoft Sentinel ReaderAzure RBAC rolereadList hunting bookmarks in the Microsoft Sentinel workspace
Microsoft Sentinel (Management)list_incident_alertsuser_impersonationreadList the security alerts grouped into a Microsoft Sentinel incident
Microsoft Sentinel (Management)list_incident_alertsMicrosoft Sentinel ReaderAzure RBAC rolereadList the security alerts grouped into a Microsoft Sentinel incident
Microsoft Sentinel (Management)list_incident_entitiesuser_impersonationreadList the entities (accounts, hosts, IPs, files, URLs) related to a Microsoft Sentinel incident
Microsoft Sentinel (Management)list_incident_entitiesMicrosoft Sentinel ReaderAzure RBAC rolereadList the entities (accounts, hosts, IPs, files, URLs) related to a Microsoft Sentinel incident
Microsoft Sentinel (Management)list_incidentsuser_impersonationreadList Microsoft Sentinel incidents in the workspace, optionally filtered by severity and status
Microsoft Sentinel (Management)list_incidentsMicrosoft Sentinel ReaderAzure RBAC rolereadList Microsoft Sentinel incidents in the workspace, optionally filtered by severity and status
Microsoft Sentinel (Management)list_threat_intelligence_indicatorsuser_impersonationreadList threat intelligence indicators in the Microsoft Sentinel workspace
Microsoft Sentinel (Management)list_threat_intelligence_indicatorsMicrosoft Sentinel ReaderAzure RBAC rolereadList threat intelligence indicators in the Microsoft Sentinel workspace
Microsoft Sentinel (Management)list_watchlist_itemsuser_impersonationreadList the rows of a Microsoft Sentinel watchlist
Microsoft Sentinel (Management)list_watchlist_itemsMicrosoft Sentinel ReaderAzure RBAC rolereadList the rows of a Microsoft Sentinel watchlist
Microsoft Sentinel (Management)list_watchlistsuser_impersonationreadList watchlists in the Microsoft Sentinel workspace
Microsoft Sentinel (Management)list_watchlistsMicrosoft Sentinel ReaderAzure RBAC rolereadList watchlists in the Microsoft Sentinel workspace
Microsoft Sentinel (Management)update_incidentuser_impersonationwriteUpdate a Microsoft Sentinel incident's title, severity, or status, or close it with a classification
Microsoft Sentinel (Management)update_incidentMicrosoft Sentinel ResponderAzure RBAC rolewriteUpdate a Microsoft Sentinel incident's title, severity, or status, or close it with a classification
Microsoft Teamscreate_chatChat.CreatewriteCreate a one-on-one or group chat with users in the organization
Microsoft Teamscreate_chatUser.ReadreadCreate a one-on-one or group chat with users in the organization
Microsoft Teamsdownload_file_to_kindo_libraryFiles.ReadWrite.AllreadDownload a Teams, SharePoint, or OneDrive file into the Kindo library
Microsoft Teamsget_channel_messagesChannelMessage.Read.AllreadRead messages from a Teams channel
Microsoft Teamsget_channel_messagesChannel.ReadBasic.AllreadRead messages from a Teams channel
Microsoft Teamsget_chat_messagesChat.ReadreadRead messages from a one-on-one or group chat
Microsoft Teamsget_current_userUser.ReadreadGet the profile of the signed-in user
Microsoft Teamsget_drive_fileFiles.Read.AllreadGet metadata and a download link for a file in a Teams or SharePoint drive
Microsoft Teamsget_meeting_transcriptOnlineMeetingTranscript.Read.AllreadGet the text of a Teams meeting transcript
Microsoft Teamsget_meeting_transcriptOnlineMeetings.ReadreadGet the text of a Teams meeting transcript
Microsoft Teamsget_sharepoint_fileFiles.ReadWrite.AllreadGet metadata and a download link for a file from its SharePoint or OneDrive URL
Microsoft Teamslist_channel_filesFiles.Read.AllreadList files and folders in a Teams channel
Microsoft Teamslist_channelsChannel.ReadBasic.AllreadList the channels in a team
Microsoft Teamslist_chatsChat.ReadBasicreadList the signed-in user's one-on-one and group chats
Microsoft Teamslist_meeting_transcriptsOnlineMeetingTranscript.Read.AllreadList the transcripts available for a Teams meeting
Microsoft Teamslist_meeting_transcriptsOnlineMeetings.ReadreadList the transcripts available for a Teams meeting
Microsoft Teamslist_teamsTeam.ReadBasic.AllreadList the teams the signed-in user has joined
Microsoft Teamssearch_messagesChat.ReadreadSearch the signed-in user's Teams chat and channel messages by keyword
Microsoft Teamssearch_messagesChannelMessage.Read.AllreadSearch the signed-in user's Teams chat and channel messages by keyword
Microsoft Teamssearch_usersUser.ReadBasic.AllreadFind users in the organization by name or email prefix
Microsoft Teamssend_adaptive_cardChannelMessage.SendwritePost an Adaptive Card to a Teams channel or chat
Microsoft Teamssend_adaptive_cardChatMessage.SendwritePost an Adaptive Card to a Teams channel or chat
Microsoft Teamssend_adaptive_cardChannel.ReadBasic.AllreadPost an Adaptive Card to a Teams channel or chat
Microsoft Teamssend_channel_messageChannelMessage.SendwriteSend a plain-text message to a Teams channel
Microsoft Teamssend_channel_messageChannel.ReadBasic.AllreadSend a plain-text message to a Teams channel
Microsoft Teamssend_chat_messageChatMessage.SendwriteSend a plain-text message to a one-on-one or group chat
Microsoft Teamssend_html_messageChannelMessage.SendwriteSend an HTML-formatted message to a Teams channel or chat
Microsoft Teamssend_html_messageChatMessage.SendwriteSend an HTML-formatted message to a Teams channel or chat
Microsoft Teamssend_html_messageChannel.ReadBasic.AllreadSend an HTML-formatted message to a Teams channel or chat
Microsoft eDiscoveryactivate_custodianeDiscovery.ReadWrite.AllwriteRe-activate a released custodian in an eDiscovery case
Microsoft eDiscoveryadd_case_membereDiscovery.ReadWrite.AllwriteAdd a user or role group as a member of an eDiscovery case
Microsoft eDiscoveryadd_to_review_seteDiscovery.ReadWrite.AllwriteAdd the results of an eDiscovery search to a review set
Microsoft eDiscoveryapply_custodian_holdeDiscovery.ReadWrite.AllwritePlace a legal hold on one or more custodians in an eDiscovery case
Microsoft eDiscoveryapply_noncustodial_holdeDiscovery.ReadWrite.AllwritePlace a legal hold on a non-custodial data source in an eDiscovery case
Microsoft eDiscoveryclose_caseeDiscovery.ReadWrite.AllwriteClose an active eDiscovery case
Microsoft eDiscoverycreate_caseeDiscovery.ReadWrite.AllwriteCreate an eDiscovery case
Microsoft eDiscoverycreate_custodianeDiscovery.ReadWrite.AllwriteAdd a custodian to an eDiscovery case by email address
Microsoft eDiscoverycreate_hold_site_sourceeDiscovery.ReadWrite.AllwriteAdd a SharePoint site to a legal hold policy
Microsoft eDiscoverycreate_hold_user_sourceeDiscovery.ReadWrite.AllwriteAdd a user mailbox to a legal hold policy
Microsoft eDiscoverycreate_legal_holdeDiscovery.ReadWrite.AllwriteCreate a legal hold policy in an eDiscovery case
Microsoft eDiscoverycreate_noncustodial_data_sourceeDiscovery.ReadWrite.AllwriteAdd a SharePoint site or mailbox as a non-custodial data source in an eDiscovery case
Microsoft eDiscoverycreate_review_seteDiscovery.ReadWrite.AllwriteCreate a review set in an eDiscovery case
Microsoft eDiscoverycreate_searcheDiscovery.ReadWrite.AllwriteCreate a KQL search in an eDiscovery case
Microsoft eDiscoverydelete_caseeDiscovery.ReadWrite.AllwriteDelete an eDiscovery case
Microsoft eDiscoverydelete_hold_site_sourceeDiscovery.ReadWrite.AllwriteRemove a SharePoint site from a legal hold policy
Microsoft eDiscoverydelete_hold_user_sourceeDiscovery.ReadWrite.AllwriteRemove a user mailbox from a legal hold policy
Microsoft eDiscoverydelete_legal_holdeDiscovery.ReadWrite.AllwriteDelete a legal hold policy from an eDiscovery case
Microsoft eDiscoveryestimate_search_statisticseDiscovery.Read.AllreadEstimate the item count and size matched by an eDiscovery search
Microsoft eDiscoveryexport_review_seteDiscovery.ReadWrite.AllwriteStart an export of the items in an eDiscovery review set
Microsoft eDiscoveryexport_search_resulteDiscovery.ReadWrite.AllwriteStart an export of the results of an estimated eDiscovery search
Microsoft eDiscoveryget_caseeDiscovery.Read.AllreadGet an eDiscovery case by ID
Microsoft eDiscoveryget_custodianeDiscovery.Read.AllreadGet a custodian in an eDiscovery case, including hold status
Microsoft eDiscoveryget_legal_holdeDiscovery.Read.AllreadGet a legal hold policy in an eDiscovery case
Microsoft eDiscoveryget_noncustodial_data_sourceeDiscovery.Read.AllreadGet a non-custodial data source in an eDiscovery case
Microsoft eDiscoveryget_searcheDiscovery.Read.AllreadGet a search in an eDiscovery case
Microsoft eDiscoverylist_case_memberseDiscovery.Read.AllreadList the users and role groups that are members of an eDiscovery case
Microsoft eDiscoverylist_case_operationseDiscovery.Read.AllreadList long-running operations such as exports and holds in an eDiscovery case
Microsoft eDiscoverylist_caseseDiscovery.Read.AllreadList eDiscovery cases in the tenant
Microsoft eDiscoverylist_custodianseDiscovery.Read.AllreadList custodians in an eDiscovery case
Microsoft eDiscoverylist_hold_site_sourceseDiscovery.Read.AllreadList SharePoint sites covered by a legal hold policy
Microsoft eDiscoverylist_hold_user_sourceseDiscovery.Read.AllreadList user mailboxes covered by a legal hold policy
Microsoft eDiscoverylist_legal_holdseDiscovery.Read.AllreadList legal hold policies in an eDiscovery case
Microsoft eDiscoverylist_noncustodial_data_sourceseDiscovery.Read.AllreadList non-custodial data sources in an eDiscovery case
Microsoft eDiscoverylist_review_setseDiscovery.Read.AllreadList review sets in an eDiscovery case
Microsoft eDiscoverylist_searcheseDiscovery.Read.AllreadList searches in an eDiscovery case
Microsoft eDiscoveryrelease_custodianeDiscovery.ReadWrite.AllwriteRelease a custodian from an eDiscovery case
Microsoft eDiscoveryrelease_noncustodial_data_sourceeDiscovery.ReadWrite.AllwriteRelease a non-custodial data source from an eDiscovery case
Microsoft eDiscoveryremove_case_membereDiscovery.ReadWrite.AllwriteRemove a user or role group from an eDiscovery case
Microsoft eDiscoveryremove_custodian_holdeDiscovery.ReadWrite.AllwriteRemove a legal hold from one or more custodians in an eDiscovery case
Microsoft eDiscoveryremove_noncustodial_holdeDiscovery.ReadWrite.AllwriteRemove a legal hold from a non-custodial data source in an eDiscovery case
Microsoft eDiscoveryreopen_caseeDiscovery.ReadWrite.AllwriteReopen a closed eDiscovery case
Microsoft eDiscoveryretry_hold_policyeDiscovery.ReadWrite.AllwriteRetry a legal hold policy to re-apply the hold to its mailboxes and sites
Microsoft eDiscoveryupdate_caseeDiscovery.ReadWrite.AllwriteUpdate the name, description, or external ID of an eDiscovery case
Microsoft eDiscoveryupdate_legal_holdeDiscovery.ReadWrite.AllwriteUpdate the description or content query of a legal hold policy
Microsoft eDiscoveryupdate_noncustodial_indexeDiscovery.ReadWrite.AllwriteTrigger re-indexing of a non-custodial data source in an eDiscovery case
OneDrivecopy_itemFiles.ReadWrite.AllwriteCopy a file or folder to another folder in a drive
OneDrivecreate_folderFiles.ReadWrite.AllwriteCreate a folder in a drive
OneDrivecreate_sharing_linkFiles.ReadWrite.AllwriteCreate a view, edit, or embed sharing link for a file or folder
OneDrivedelete_itemFiles.ReadWrite.AllwriteMove a file or folder to the drive's recycle bin
OneDrivedownload_file_to_kindo_libraryFiles.Read.AllreadDownload a OneDrive file into the Kindo library
OneDriveget_driveFiles.Read.AllreadGet a drive's metadata, quota, and owner by id
OneDriveget_my_driveFiles.ReadreadGet the signed-in user's default OneDrive
OneDrivelist_childrenFiles.Read.AllreadList the files and folders inside a folder in a drive
OneDrivelist_drivesFiles.ReadreadList the drives available to the signed-in user
OneDriveupload_fileFiles.ReadWrite.AllwriteUpload a file into a folder in a drive
SharePoint Onlinecreate_folderFiles.ReadWritewriteCreate a folder in a SharePoint document library
SharePoint Onlinecreate_folderSites.ReadWrite.AllwriteCreate a folder in a SharePoint document library
SharePoint Onlinecreate_list_itemSites.ReadWrite.AllwriteCreate an item with column values in a SharePoint list
SharePoint Onlineget_drive_itemFiles.ReadreadGet metadata for a file or folder in a SharePoint document library by ID or path
SharePoint Onlineget_drive_itemSites.Read.AllreadGet metadata for a file or folder in a SharePoint document library by ID or path
SharePoint Onlineget_listSites.Read.AllreadGet a SharePoint list by ID or internal name
SharePoint Onlineget_siteSites.Read.AllreadGet a SharePoint site by ID or by hostname and site path
SharePoint Onlinelist_drive_itemsFiles.ReadreadList files and folders in a SharePoint document library or one of its folders
SharePoint Onlinelist_drive_itemsSites.Read.AllreadList files and folders in a SharePoint document library or one of its folders
SharePoint Onlinelist_drivesFiles.ReadreadList the document libraries of a SharePoint site
SharePoint Onlinelist_drivesSites.Read.AllreadList the document libraries of a SharePoint site
SharePoint Onlinelist_list_itemsSites.Read.AllreadList items in a SharePoint list, optionally with column values and an OData filter
SharePoint Onlinelist_listsSites.Read.AllreadList the lists in a SharePoint site
SharePoint Onlinelist_sitesSites.Read.AllreadList the SharePoint sites the signed-in user can access
SharePoint Onlinesearch_drive_itemsFiles.ReadreadSearch a SharePoint document library for files and folders by keyword
SharePoint Onlinesearch_drive_itemsSites.Read.AllreadSearch a SharePoint document library for files and folders by keyword
SharePoint Onlinesearch_sitesSites.Read.AllreadSearch SharePoint sites by keyword
SharePoint Onlineupload_fileFiles.ReadWritewriteUpload a file into a SharePoint document library, fetching its bytes from a signed URL
SharePoint Onlineupload_fileSites.ReadWrite.AllwriteUpload 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.