Skip to content

DLP Policy Inventory

The question it answers: Which DLP policies exist, which workloads do they cover, and which of them actually block anything?

Which data loss prevention policies exist, which workloads they cover, and - most importantly - which of them actually block anything. Policies left in test (simulation) mode for months look like protection on paper but stop nothing.

Where in the appTenant › Compliance & Audit › DLP Policies
WorkloadCompliance
KindTable · dashboard tile
DataRead from Microsoft 365 when someone first opens it, then kept for the report cache lifetime (Settings > Data & cache, 1 hour unless changed). It reads through PowerShell (Exchange Online or SharePoint Online), so the first load takes longer than a Graph report.
LicenceMicrosoft 365 E3 for Exchange / SharePoint / OneDrive DLP; E5 (or E5 Compliance) for Teams and endpoint DLP.
Report id (API and MCP)tenant.compliance.dlp-policies
ColumnKeyType
PolicyNameText
ModeModeStatus
AssessmentAssessmentText
WorkloadsWorkloadsText
Rules (off)RulesText
Blocking rulesBlockingRulesText
Notifying rulesNotifyingRulesText
Sensitive info typesSensitiveInfoTypesText
PriorityPriorityText
Last changedLastChangedDate

Licence: Microsoft 365 E3 for Exchange / SharePoint / OneDrive DLP; E5 (or E5 Compliance) for Teams and endpoint DLP.

Application permissions on the IntensiveReports app registration (all permissions):

PermissionAPIWhat it allowsNote
Exchange.ManageAsAppOffice 365 Exchange OnlineManage Exchange As Application

Roles and other setup:

  • Purview role for the app: Compliance Administrator (or a view-only compliance role)
Data sources it reads
  • Connect-IPPSSession (prefix Cc)
  • Get-DlpCompliancePolicy
  • Get-DlpComplianceRule
GET /ir-api/v1/reports/tenant.compliance.dlp-policies?size=100

An AI assistant reads it with the MCP tool get_report and the id tenant.compliance.dlp-policies. The client needs the Read grant for Compliance. See Using the API.