Available alternatives for when Sites.FullControl.All and/or Files.ReadWrite.All cannot be used in your company environment
Sites.FullControl.All
and/or Files.ReadWrite.All
Graph API permissions required to integrate with SharePoint.
To constrain the scope of data that the SharePoint crawler has access to and the actions it can perform via the Graph API and SharePoint REST API, there are multiple methods of control that can be leveraged.
Recommended controls:
Sites.Selected
permission for Graph API accessSites.Selected
permission for SharePoint REST API accessStep 1. Access the Microsoft Entra admin center
Step 2. Create a new named location
Glean SharePoint Crawler
.
Step 3. Create a new Conditional Access policy
IP Restrictions - Glean Crawler
.
Step 4. Test the policy
192.0.2.1
and United States
. Alternatively, enter the IP address of your Glean tenant and the country it is hosted in.Step 1. Access the Microsoft Purview Compliance Portal
Step 2. Review audit logs for the SharePoint crawler
Step 3. Monitor specific API-endpoints
ReadWrite
or FullControl
permission. E.g. https://graph.microsoft.com/v1.0/subscriptions/<subscriptionsId>/reauthorize
Step 4. Configure alerts for Write activities
Sites.Selected
permission replaces both the global Sites.FullControl.All
and Files.ReadWrite.All
permissions for the Graph API.
Sites.Selected still requires the FullControl
permission, but unlike before, this is granted at a site-level to each site and sub-site individually, rather than at a global level.
While Sites.Selected alleviates the need for global Sites.FullControl.All
and Files.ReadWrite.All
permissions, it comes with significant drawbacks as a result.
Sites.Selected
replaces the following permissions:
Sites.FullControl.All
Files.Read.All
Files.ReadWrite.All
Sites.Selected
:
User.Read.All
GroupMember.Read.All
Reports.Read.All
Member.Read.Hidden
FullControl
(site level)User.Read.All
and GroupMember.Read.All
are required for Glean to obtain and enforce document and site permissions. Member.Read.All
is also used to obtain and enforce document/site permissions for any group member that may have been marked as ‘hidden’ in Entra ID.
Reports.Read.All
is used to verify crawling state and progress, and to ensure that your search infrastructure is correctly scaled (SharePoint is one of the largest data sources typically connected to Glean).
Sites.FullControl.All | Sites.Selected (with site-specific FullControl) | |
---|---|---|
Adheres to Microsoft Best Practices for Apps requiring access to permissions | Yes | Yes |
Supported by Glean | Yes | Yes |
Processing frequency for content updates | <2 hours (can vary) | 24 hours |
Processing frequency for permission-only updates | <2 hours (can vary) | 24 hours |
Availability of Signals & Metadata to enhance Search Rankings | Excellent | Poor |
Automatic detection of sites and sub-sites to scan | Yes | No |
Management Overhead | Low | Very High |
Permission Scope | Wide | Narrow |
Sites.Selected
will heavily impact the end-user experience for both Search and Glean Assistant, and may have alternative impacts to your security posture.Glean generally recommends against its use.Sites.Selected
prevents Glean from leveraging webhook subscriptions to be notified of changes within SharePoint when they occur.Sites.Selected
prevents Glean from accessing activity and insights data for SharePoint content. This data is used extensively for ranking results in search.Sites.Selected
prevents Glean from discovering sites and site content that need to be fetched.Sites.Selected
differs from the standard setup steps for SharePoint.
Sites.Selected
permission replaces the global Sites.FullControl.All
permission for the SharePoint REST API.
Sites.Selected
still requires the FullControl
permission, but unlike before, this is granted at a site-level to each site and sub-site individually, rather than at a global level.
Sites.Selected
replaces the following permissions:
Sites.FullControl.All
Sites.Selected
:
FullControl
(site level)FullControl
for the SharePoint REST API is mandatory at some level (either site or global) due to limitations in the SharePoint REST API: It is the minimum permission scope needed to read data from certain API endpoints that are critical for Glean functionality (permissions mapping).
If Read
permission is used instead of FullControl
, the API returns a HTTP 403 Unauthorized error; preventing any data from being fetched.
Sites.FullControl.All | Sites.Selected (with site-specific FullControl) | |
---|---|---|
Adheres to Microsoft Best Practices for Apps requiring access to permissions | Yes | Yes |
Supported by Glean | Yes | Yes |
Automatic detection of sites and sub-sites to scan | Yes | No |
Management Overhead | Low | Very High |
Permission Scope | Wide | Narrow |
Sites.Selected
prevents Glean from discovering sites and site content that need to be fetched.Sites.Selected
permission set by your M365 administrator AND must be added to a list of sites to crawl in the Glean UI.
Sites.Selected
differs from the standard setup steps for SharePoint.