Since Microsoft announced EOL of ACS in 2026, we as SharePoint administrators must be prepared, as it is a really big deal – entire era of SharePoint app-only service principals will gone. SharePoint developers used this kind of authentication since 2013 to build their solutions. And when it comes to software development – it always takes time. Imaging all the code that was designed since 2013 needs to be reviewed and re-written to adopt changes. So it is critical that we should take measures now to avoid huge problems in April 2026.
Recommended transition tactics: For developers
- Request a new App registration in Azure (Entra Id) with permissions required, but ensure no ACS permissions provided to the app
- Prioritizing using Microsoft Graph API.
- In cases Graph API does not provide required functionality – it’s ok to use SharePoint API, but keep in mind in this case certificate should be used (not secret) for authentication
Recommended transition tactics: For SharePoint admins
High-level recommended steps are:
- Encourage users and devs to register applications in Azure (not in SharePoint)
- Provide Sites.Selected permissions
- Track this activity (so you know for whom this ACS-based permissions were provided).
Inform every developer that ACS will be gone.
- Disable ability for site owners register service principals in SharePoint via appregnew.aspx
- Keep audit logs
- Pull report on existing Apps that use ACS permissions
- Notify developers and users of the ACS apps
- In advance ( let say, starting September 2025) you can try to temporary switch off ACS (“scream test”).
Detailed steps:
Encourage users registering applications in Azure (not in SharePoint)
Creating App Registrations is usually not what SharePoint admins do. Sometimes users allowed to register apps, sometimes it is done by identity management (or so) but the main idea – users and developers should be able to get service principals (App Registrations) in Azure.
Pro’s for App Registered in Entra Id (vs SharePoint App-only service principals) :
- It supports authentication with client secret and/or certificate, custom expiration time
- It supports both APIs – Microsoft Graph API and classic SharePoint REST API
Provide Sites.Selected permissions
99% of requests for application permissions to SharePoint would require access to a specific site (or sites), not to entire tenant. So consider providing Sites.Selected permissions by default. Create a process so users can request permissions to SharePoint sites for their Azure-Registered Apps. Consider automation if you are a large company.
Inform every developer that ACS is deprecated and you do not provide new ACS permissions.
Disable registering service principals in SharePoint
Users should not be able to get a new SharePoint App-only service principals (apps that they used to get from SharePoint sites just going to AppRegNew.aspx).
Disable ability for site owners register service principals in SharePoint via appregnew.aspx is done via Set-SPOTenant PowerShell cmdlet:
Set-SPOTenant -SiteOwnerManageLegacyServicePrincipalEnabled
$false
When the value is set to false, the service principal can only be created or updated by the SharePoint tenant admin. Your users will start seeing “Your SharePoint tenant admin doesn’t allow site collection admins…” message (see details), but that’s ok.
There might be rare cases when 3-rd party apps require legacy ACS-based permissions, it is tempting to allow ACS permissions as an exception (as technically it is possible for SharePoint service admin to provide ACS-based access to sites), but I would strictly discourage you to do so. If you decide to provide ACS – track this activity (so you know for whom this ACS-based permissions were provided).
Keep audit logs
This should be done in advance, but if you did not – starting today and until it’s over you’d get audit logs from Microsoft 365 purview center – consider selecting all events anyone visited appinv.aspx or appregnew.aspx page. Pull logs now starting with earliest available event (usually 90 days).
Pull report on existing ACS Apps that use ACS permissions
You need to know who are your vulnerable clients – you should pull reports to get a list of existing Apps that use ACS permissions, apps owners, maybe sites these apps have access to and sites owners
You can get list of developers combining
– audit log data
– report from Entra Id on apps and owners
– report from SharePoint sites on permissions provided for apps
Notify developers and users of the ACS apps
As earlier as possible – e.g. in March-April 2025 (1 year before ACS EOL), start notifying developers who use ACS.
Consider the following:
– ACS apps have a huge legacy – tons of articles and code examples and so…
– Switching to a modern authentication method would require changes in code (though minor, but still), so developers must be engaged
– Any change in code would require another round of compilation, testing, deploying etc.
That means it is not easy (sometimes it is not even possible) to adopt a new modern authentication method. It requires efforts and time, so you need to notify dev as earlier as possible.
Let hem know that their existing apps will stop working.
References