Skip to content

SPFx Solutions & Tenant-wide API Permissions

The question it answers: Which API permissions are granted to SPFx solutions tenant-wide, and which solutions are installed?

When an admin approves an API permission requested by an SPFx solution, it is granted to the shared ‘SharePoint Online Web Client Extensibility’ app - so every SPFx solution in the tenant can use it on behalf of every user. This report lists those permissions, pending requests and the solutions deployed from the tenant app catalog.

Where in the appSharePoint Online › SharePoint Operations & Legacy › SPFx Solutions & API Permissions
WorkloadSharePoint Online
KindFindings list · 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.
LicenceNo extra licence needed.
Report id (API and MCP)sharepoint.operations.spfx-permissions
ColumnKeyType
SeveritySeverityStatus
ItemCategoryText
Permission / solutionSubjectLink
CheckSettingText
ValueValueText
FindingFindingText
DetailDetailText
DateWhenDate
CountNumberNumber

A findings list hides columns that no row fills. Severity is Critical, Serious, Warning, OK or Info; rows rated Critical, Serious or Warning need attention (Working with findings).

Licence: No extra licence needed.

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

PermissionAPIWhat it allowsNote
Sites.FullControl.AllOffice 365 SharePoint OnlineHave full control of all site collectionscertificate PnP
Data sources it reads
  • Get-PnPApp -Scope Tenant
  • Get-PnPTenantServicePrincipalPermissionGrants
  • Get-PnPTenantServicePrincipalPermissionRequests
  • Get-PnPSiteCollectionAppCatalog
GET /ir-api/v1/reports/sharepoint.operations.spfx-permissions?size=100

An AI assistant reads it with the MCP tool get_report and the id sharepoint.operations.spfx-permissions. The client needs the Read grant for SharePoint Online. See Using the API.