SharePoint Online Access Requirements
This page applies to existing configurations that use the Microsoft Graph and SharePoint Online Classic connectors.
Create new SharePoint configurations with the SharePoint & OneDrive (Max Capacity) connector. Follow the SharePoint Online and OneDrive setup guide. If Max Capacity cannot meet a requirement for a new configuration, contact Moveworks Support.
Architecture Overview
Your Microsoft Entra administrator must configure the app registration, credentials, and API permissions that Moveworks uses to access SharePoint Online.
The required permissions depend on whether the existing Classic configuration ingests files, knowledge pages, or both.
File ingestion from SharePoint sites
To ingest files and their permissions, grant the following permissions. For more information about access controls in File Search, see File Search: Respecting File Permissions.

Microsoft Graph API group
- Sites.Read.All: An application permission that allows Moveworks to read content across all SharePoint sites.
- Use Sites.Selected instead to limit access to specific sites. This option requires an explicit grant for each site. Follow the Microsoft Sites.Selected setup instructions.
- Files.Read.All: An application permission that allows Moveworks to read files in SharePoint sites. It is also required to create the Microsoft Graph change-notification subscriptions used for webhooks, including when you use Sites.Selected.
- Group.Read.All: An application permission that allows Moveworks to read Microsoft Entra group details used in file permissions.
- User.Read: A delegated permission that allows signed-in users to read their profiles.
- User.Read.All: An application permission that allows Moveworks to ingest user details used to enforce permissions.
SharePoint API group
- Sites.Read.All: An application permission that allows Moveworks to read content across all SharePoint sites.
- Use Sites.Selected instead to limit access to specific sites. This option requires an explicit grant for each site. Follow the Microsoft Sites.Selected setup instructions.
Grant either Sites.Read.All or Sites.Selected in both the Microsoft Graph and SharePoint API groups.
The credential workflow below uses one Microsoft Entra app registration for both the SharePoint and Microsoft Graph API permissions. If your existing configuration uses separate app registrations, complete the credential steps for each app and update the corresponding Moveworks connector.
Knowledge ingestion from SharePoint sites
To ingest knowledge pages and their permissions, grant the following permissions.

Microsoft Graph API group
- Group.Read.All: An application permission that allows Moveworks to read Microsoft Entra group details used in page permissions.
- Sites.Read.All: An application permission that allows Moveworks to read knowledge pages across all SharePoint sites.
- Use Sites.Selected instead to limit access to specific sites. This option requires an explicit grant for each site. Follow the Microsoft Sites.Selected setup instructions.
- User.Read: A delegated permission that allows signed-in users to read their profiles.
- User.Read.All: An application permission that allows Moveworks to ingest user details used to enforce permissions.
SharePoint API group
- Sites.Read.All: An application permission that allows Moveworks to read knowledge pages across all SharePoint sites.
- Use Sites.Selected instead to limit access to specific sites. This option requires an explicit grant for each site. Follow the Microsoft Sites.Selected setup instructions.
Grant either Sites.Read.All or Sites.Selected in both the Microsoft Graph and SharePoint API groups.
1. Configure the Microsoft Entra app registration
Use the app registration associated with the existing Classic connectors. The same app can provide access to both the SharePoint and Microsoft Graph APIs listed above.
Rotate credentials on the app registration used by your existing Classic connectors. If you must replace that app registration, create a dedicated replacement for Moveworks and update both Classic connectors with the new Application (client) ID. For more information, see Set up an Azure AD app for app-only access in the Microsoft documentation.
Before you begin, confirm that you have:
- Access to the app registration and permission to manage its credentials and grant the required API permissions.
- Access to the existing Microsoft Graph and SharePoint Online connectors in Moveworks Setup.
- Windows PowerShell and OpenSSL, or a macOS or Linux terminal with OpenSSL.
- An approved secure location for temporary credential files.
Open or replace the app registration
- Sign in to the Microsoft Entra admin center.
- Go to Identity > Applications > App registrations.
- Open the app registration used by the existing Classic connectors. If you are replacing it, select New registration, enter a name such as
Moveworks SharePoint Online, and select Register. - On the app’s Overview page, record the Application (client) ID and Directory (tenant) ID.
Create or rotate the Microsoft Graph client secret
The separate Classic Microsoft Graph connector uses a client secret. If its current secret remains valid and you are rotating only the SharePoint certificate, continue to Generate a self-signed certificate and private key.
- Go to Certificates & secrets > Client secrets and select New client secret.
- Select an expiration period that follows your organization’s credential policy, and then select Add.
- Copy the client secret Value immediately. Microsoft Entra displays it only once. You will use this value for the Classic Microsoft Graph connector.
Store the client secret in your organization’s approved secrets manager. Do not copy the Secret ID in place of the secret Value.
Generate a self-signed certificate and private key
Generate these files in a location approved for temporary credential material:
certificate.cer: The public certificate that you upload to the Microsoft Entra app registration.privateKey.pem: The unencrypted PKCS #8 private key that you upload to the Classic SharePoint Online connector.Moveworks.pfx: A password-protected export used to produce the PEM private key on Windows.
Windows
Use Windows PowerShell with the PKI module and OpenSSL installed.
-
Create an exportable 2048-bit RSA certificate that uses SHA-256. This example uses a two-year validity period. Change
AddYears(2)to follow your organization’s certificate lifetime policy.CertStoreLocationmust be a Windows certificate-provider path. -
Export the password-protected PFX file and the public certificate. Use the certificate object returned by
New-SelfSignedCertificate. -
Convert the private key from the PFX file to an unencrypted PKCS #8 PEM file.
macOS or Linux
Use OpenSSL to generate a 2048-bit RSA private key and a SHA-256 self-signed certificate. This example uses a two-year validity period. Change -days 730 to follow your organization’s certificate lifetime policy.
Verify the certificate and private key
-
Confirm the certificate validity dates.
Windows
macOS or Linux
-
Confirm that the certificate and private key belong to the same key pair. The following two commands must return the same SHA-256 digest.
Windows
macOS or Linux
-
Confirm that
privateKey.pemstarts with-----BEGIN PRIVATE KEY-----and ends with-----END PRIVATE KEY-----. The header must not containRSAorENCRYPTED. -
On macOS or Linux, confirm that
certificate.cerstarts with-----BEGIN CERTIFICATE-----and ends with-----END CERTIFICATE-----. The WindowsExport-Certificatecommand creates a DER-encoded.cerfile, so the Windows certificate does not contain PEM headers.
The private key is unencrypted because the Classic connector requires this format. Store privateKey.pem and Moveworks.pfx in approved secure storage, restrict access, and follow your organization’s credential-retention policy. Upload only certificate.cer to Microsoft Entra.
Upload the public certificate
- Open the app registration in Microsoft Entra.
- Go to Certificates & secrets > Certificates and select Upload certificate.
- Upload the same
certificate.cerfile that you use to calculate the x5t value.
Generate the SHA-256 x5t value
The x5t value is the unpadded Base64URL-encoded SHA-256 digest of the certificate’s DER bytes. It is not the hexadecimal certificate thumbprint displayed in Microsoft Entra. For more information, see the Microsoft identity platform certificate credential format.
Windows
macOS or Linux
A SHA-256 x5t value contains 43 letters, numbers, hyphens, or underscores. It has no spaces, colons, or = padding. Recalculate it whenever you rotate the certificate.
Generate an x5t value for a legacy SHA-1 connector
Use this section only when Use SHA-256 Algorithm is currently cleared on the existing Classic connector. Keep the setting cleared when you save this SHA-1 value.
Windows
macOS or Linux
A SHA-1 x5t value contains 27 letters, numbers, hyphens, or underscores and has no = padding.
Save the credential outputs
Grant API permissions
Grant the permissions for your use case to the app registration that you opened or created above. If the existing configuration uses separate app registrations, grant each permission to the app used by the corresponding connector.
- In the Microsoft Entra admin center, go to Identity > Applications > App registrations and open the selected app registration.
- Go to API permissions and select Add a permission.
- Add the Microsoft Graph permissions:
- Select Microsoft Graph > Application permissions.
- Add the application permissions listed in the File ingestion or Knowledge ingestion section above. If the configuration supports both use cases, add the union of both sets.
- Select Add permissions.
- Select Add a permission > Microsoft Graph > Delegated permissions, add User.Read, and select Add permissions.
- Add the SharePoint permissions:
- Select Add a permission > SharePoint > Application permissions.
- Add Sites.Read.All or Sites.Selected, matching the choice made for Microsoft Graph. Sites.FullControl.All is not required.
- Select Add permissions.
- If you use Sites.Selected, follow the Microsoft Sites.Selected setup instructions to grant the app access to each selected site.
- Select Grant admin consent for {organization}, confirm the prompt, and verify that each permission shows a granted status.
In a GCCH tenant, select Office 365 SharePoint Online when SharePoint is not available in the API list.
For each SharePoint group used in file or page permissions, set Who can view the membership of the group? to Everyone so Moveworks can read the group members. If you cannot change this setting, use a Microsoft Entra group or another SharePoint group whose membership is visible to the app.
This completes the app registration setup. The app now has the required API permissions and credential artifacts.
2. Update the existing Moveworks Classic connectors
In Moveworks Setup, go to Connectors > Built-in Connectors.
Microsoft Graph connector
Open the existing Microsoft Graph connector and update these fields when their corresponding credential changed.
SharePoint Online connector
Open the existing SharePoint Online connector and enter the following values.
Save both connectors. A successful credential update is confirmed when the next run of the existing ingestion completes without an authentication error.
- For File Search, open the existing configuration under Search > Configure Search > Classic Ingestion > Files.
- For knowledge ingestion, continue with How to Configure SharePoint Knowledge Ingestion.
If you do not have access to Moveworks Setup or the ingestion reports an authentication error, contact your Customer Success team.