Before you begin
You need:- A Microsoft 365 tenant
- A Microsoft Entra user account holding the Global Administrator or Privileged Role Administrator role. The connectors need Microsoft Graph application permissions, and only these two roles can consent to those on behalf of your organization. Application Administrator and Cloud Application Administrator can register the app but cannot grant it consent.
- An Onyx administrator account
- A decision on how the connector authenticates, a client secret or a certificate. Changing it later means building a new credential and possibly re-indexing.
Choose an authentication method
Every connector accepts either a client secret or a certificate.Permissions
Every permission on this page is an Application permission and read only, with one exception: Sites.FullControl.All on the SharePoint API. SharePoint shows an item’s access list only to an app with full control of the site. Onyx reads with it and never writes to SharePoint.Register the application
Create the registration
https://entra.microsoft.us for GCC High or DoD)
and go to App registrations. Select New registration, name it something recognizable,
such as Onyx Microsoft 365 Connector, leave the supported account types and redirect URI at their defaults,
and select Register.Record the two IDs
Grant permissions
The permissions come from two places in the portal, Microsoft Graph and SharePoint. Add them all first, then grant consent once at the end.Add the Microsoft Graph application permissions
Add the SharePoint application permissions
Grant admin consent
Create the credential
Client secret
Open Certificates & secrets
Add a secret
Copy the value immediately
Certificate
A certificate identifies the Entra application with a key file instead of a password. You need two files, and both come from the same certificate:- A public certificate (
.cer,.pem, or.crt) that you upload to Entra ID - A
.pfxfile, protected by a password, that you upload to Onyx
Generate the private key and certificate
Package the private key as a .pfx
Check what you have
.pfx and its password securely.Upload the public certificate to Entra
onyx-m365.crt, add a description, and select Add..pfx only,
extract the public half for Entra with openssl pkcs12 -in yourcert.pfx -clcerts -nokeys -out yourcert.crt.Enter the credential in Onyx
Each connector asks for a credential when you add it. Select an existing credential from the list, or select Create New, pick the tab for your authentication method, and enter the details from your app registration:- Client Secret tab: the Application (client) ID, the Directory (tenant) ID and the secret Value you copied
- Certificate Authentication tab: the two IDs, the
.pfxin the Private Key (PFX) field and the export password you set in the Certificate Password field. Each field is labelled with the connector’s name.
Limiting the app to specific sites
By default the app holds Sites.Read.All, which lets it read every SharePoint site in the tenant, even when a connector names only one. If that is too broad, grant Sites.Selected instead and authorize the app one site at a time. The app can read nothing until you do. This applies to both authentication methods, to a user’s OneDrive, which is a site of its own, and to the SharePoint sites behind Teams channel files. The role you grant depends on what the connector does:fullcontrol because SharePoint shows an item’s access list only to an app
that has full control of the site. Onyx never writes to SharePoint.
Granting a site to the app
Granting a site to the app
Grant-PnPAzureADAppSitePermission).Sign in and consent
Find the site ID
contoso-my.sharepoint.com:/personal/jane_contoso_com.
Copy the id from the response. It is a three-part value such as contoso.sharepoint.com,5a58bb09-…,9f2ec1da-….Grant the role
roles to ["read"] for indexing only, or ["fullcontrol"] for permission sync.
Set id to your Onyx application’s Application (client) ID.201 Created.Verify
National clouds
Each connector has Authority Host and Graph API Host under its advanced settings, and the SharePoint connector has SharePoint Domain Suffix as well. All must describe the same cloud. Onyx rejects an authority host that does not match the Graph host when you save, and corrects a domain suffix that does not match the Graph host with a warning in its log.Rotating the secret or certificate
Indexing stops when the secret or certificate expires. To rotate without downtime:Add the new one alongside the old
Update the credential in Onyx
.pfx and its password.Delete the old one
Troubleshooting
Credential, consent and certificate problems, with the message each connector shows for them. Each connector’s page lists the problems that are its own.invalid_client, Invalid or expired Microsoft Teams credentials, Microsoft rejected the client secret or certificate, or an error that names AADSTS7000215 or AADSTS7000222
invalid_client, Invalid or expired Microsoft Teams credentials, Microsoft rejected the client secret or certificate, or an error that names AADSTS7000215 or AADSTS7000222
.pfx and the uploaded public certificate came from different certificates.
Create a new one and update the credential.Microsoft does not know this directory
Microsoft does not know this directory
Upload a certificate (public key) with one of the following file types
Upload a certificate (public key) with one of the following file types
.pfx to Entra. Upload the .crt, .cer, or .pem instead, and keep the .pfx for Onyx.Failed to load certificate, or The PFX bundle could not be opened
Failed to load certificate, or The PFX bundle could not be opened
.pfx, usually because the password is wrong or the file is not a .pfx at all.
Repeat Certificate.Unsupported app only token
Unsupported app only token
Permissions show as not granted
Permissions show as not granted
A permission shows Granted but Microsoft still answers 403
A permission shows Granted but Microsoft still answers 403
A setup check passes, then fails minutes later
A setup check passes, then fails minutes later
Indexing worked, then stopped on a fixed date
Indexing worked, then stopped on a fixed date