What it takes
A few clicks in Integrations → GDAP: sign in, have a Global Administrator approve Neo, and click Connect all eligible. The run continues in the background, and you do not need to stay on the page. A company is eligible once it is mapped to a tenant that Neo can reach through CSP, and your account’s group has Privileged Role Administrator (or an alternative the role table lists) on that relationship. A client you add later gets a Connect via GDAP button on its row once it is eligible. Your relationships need a role for each of the two jobs in Roles your relationships need, assigned to the group of the account you sign in with.Connecting customer tenants via GDAP
The Integrations → GDAP page shows these steps as a checklist.1
Connect GDAP
Click Connect and sign in with your Secure App Model service account. Check Consent on behalf of your organization, which needs a Global Administrator. If the account you use is not one, see Connect GDAP returns to Neo and nothing changes.
2
Grant the Partner Center permission
Connecting GDAP consents Microsoft Graph only, so a Global Administrator approves one more permission. Use Copy consent link, have a Global Administrator approve, then click I’ve granted it — recheck. This lets Neo see which of your clients it can reach through GDAP. If step 1 already used the consent link, this step is done.
3
Check the default permissions
Neo starts with a default set of permission categories for each tenant. Change them here if you want, or per company later.
4
Connect your clients
Click Find tenants from GDAP. Neo matches your PSA companies to the customer tenants in your relationships, and you apply the matches. Then click Connect all eligible. Progress shows in the provisioning-run panel, and each connected company shows “via GDAP” under M365 Access.For a company Neo could not match, click Map GDAP tenant on its row on the Companies page and pick the tenant. Once the tenant is mapped and Neo can reach the client through CSP, its Connect via GDAP button appears.
Roles your relationships need
Neo acts in each customer tenant through its own app, with the Microsoft Graph permissions in your M365 permission profile. It uses relationship roles only to set that app up. Each relationship needs a role for each of these two jobs:
Neo assigns Exchange Administrator to its own app, because app-only Exchange access needs it, unless you turn off Auto-assign Exchange Administrator role on consent for the company. Your account’s group does not need that role. Global Administrator covers both jobs, but a relationship with it cannot auto-extend (see the suggested role set below).
The account you sign in with must be in a security group that has a role for both jobs on each relationship. A role on the relationship is not enough if your group’s access assignment does not include it. This is the most common reason a client will not connect. The checklist flags a company whose group lacks Privileged Role Administrator (or an alternative) or has no access assignment there. It does not check Application Administrator (or an alternative): without one, the client fails only when Neo connects it, with the
403 Forbidden above. Fix the access assignment in Microsoft Lighthouse or Partner Center. For Lighthouse-managed relationships (LHSetup, MLT_), do not edit them in Entra, because Lighthouse reverts manual changes.
Creating a new relationship? Suggested full role set
Creating a new relationship? Suggested full role set
A GDAP relationship cannot be edited after you create it, so include every role you may need. Beyond Application Administrator and Privileged Role Administrator, these cover the work MSPs most often give Neo:
Leave Global Administrator out. A relationship with it cannot auto-extend, so it expires and takes your access with it.Extra roles do not widen Neo’s access by themselves: Neo’s app can do only what your permission profile grants.
Moving a direct-consent company to GDAP
A company connected by direct consent can move to GDAP at any time. Neo keeps its access throughout, and no client admin consents again. On the Companies page, open ⋯ → Move to GDAP on the company’s row, or use Move to GDAP (N) in the banner to move all eligible companies. Progress shows in the provisioning-run panel, and M365 Access then shows “via GDAP”. After the move, the company’s permissions come from your GDAP permissions selection.Disconnecting a company
On End Companies, select the company and click Disconnect. Neo removes the Neo Azure Automations app from the customer tenant. Every other company on the same tenant loses access too. Disconnecting needs an active GDAP relationship. If it has lapsed, reconnect GDAP first, or have an admin remove the Neo Azure Automations app in the tenant.Disconnecting GDAP entirely
In Integrations → GDAP, click Disconnect GDAP. Neo stops using your relationships, for example before you switch the connected account.When a GDAP relationship lapses
A relationship lasts at most 730 days. When it lapses, connected tenants keep working, but you cannot connect new clients or add permissions. Create a new relationship in Partner Center with the same roles, then reconnect GDAP in the Neo Dashboard. To remove Neo from a tenant, disconnect the company while a relationship is still active.GDAP vs Direct Consent
The choice is not permanent: see Moving a direct-consent company to GDAP.
Troubleshooting
Connect GDAP returns to Neo and nothing changes
Connect GDAP returns to Neo and nothing changes
Microsoft returns you to Neo with no consent screen, and the checklist shows A Global Administrator must approve Neo. No Global Administrator has approved Neo yet, or a recent approval has not taken effect. Signing in again gives the same result.
- In the checklist, click Copy consent link.
- Send it to a Global Administrator of your partner tenant. They open it and approve.
- Click I’ve granted it — recheck. If they just approved, wait a minute first.
- When the checklist shows Reconnect to finish, click Reconnect GDAP.
Consent fails for a customer tenant
Consent fails for a customer tenant
- Check that the relationship is Active in Partner Center.
- A Partner Center
403 Forbiddenusually means no consent role: check for Application Administrator, Cloud Application Administrator or Global Administrator. Privileged Role Administrator alone cannot consent. - Check that the relationship also has Privileged Role Administrator, Global Administrator or Partner Tier2 Support.
- Check that your connected account’s group is assigned those roles. See Roles your relationships need.
Unable to initialize the authorization contextcan mean the relationship expired with no active replacement, or that your connected account’s group has no access assignment on it. Check both.
Neo can't perform actions after GDAP consent
Neo can't perform actions after GDAP consent
- Check that Neo’s app holds the directory role the action needs in the tenant, for example Exchange Administrator for mailbox work. See Roles your relationships need.
- Check the company’s permissions in the Neo Dashboard. Missing permissions show as unavailable operations.
Tenant matches won't load
Tenant matches won't load
- “Microsoft is rate-limiting Neo’s requests”: Microsoft throttles reads of your partner relationships when you have many customer tenants. Your connection is fine and no mapping is lost. Wait a few seconds and read the list again.
- “Temporarily unavailable”: a temporary failure. No mapping is lost. Wait a moment and read the list again.
- To read the list again, click Try again in the Find tenants from GDAP window. The per-company Map a GDAP tenant dialog has no such button: close it and open it again.
- “Couldn’t load tenant matches”: reconnect GDAP, then reopen the window.
