Forum Discussion

aryan003's avatar
aryan003
Copper Contributor
Mar 27, 2026
Solved

SharePoint ACS Retirement – Guidance Needed for Migration to Azure AD / Graph or Better if Available

We have an integration between Microsoft Dynamics 365 Business Central (AL) and SharePoint Online for uploading and accessing files in document libraries.

Current Implementation

App Registration & Permissions
  • App created using:
    /_layouts/15/appregnew.aspx
  • Permissions granted via:
    /_layouts/15/appinv.aspx → “Trust It”

Current permission (overly broad):

<AppPermissionRequests AllowAppOnlyPolicy="true"> <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/tenant" Right="FullControl" /> </AppPermissionRequests>

Authentication (ACS Token)

We generate access tokens using:

POST https://accounts.accesscontrol.windows.net/{tenant-id}/tokens/OAuth/2

SharePoint API Usage

We are using SharePoint REST API:

Upload file:

POST https://<org>.sharepoint.com/sites/<site>/_api/web/GetFolderByServerRelativeUrl('/sites/<site>/Shared Documents')/Files/add(url='file.pdf',overwrite=true)

Download / read files:

GET https://<org>.sharepoint.com/sites/<site>/_api/web/GetFileByServerRelativeUrl('/sites/<site>/Shared Documents')/Files...

Questions
  1. After April 2026, will existing ACS-based integrations completely stop working, or only new registrations will be blocked?
  2. What is the recommended modern approach for this scenario:
    • Continue using SharePoint REST API with Azure AD token
    • OR migrate fully to Microsoft Graph API
  3. If we switch to Azure AD authentication:
    • Can we continue using existing _api/web/... endpoints?
    • Or is Graph API mandatory?
  4. What is the best way to restrict access to a single SharePoint site (avoid tenant-wide permissions like FullControl)?
  5. For Business Central (AL), is there any recommended approach or pattern for:
    • Generating Azure AD tokens (client credentials flow)
    • Calling SharePoint / Graph APIs securely

Any guidance, best practices, or migration examples would be highly appreciated.

If possible pls share some Blogs or resource when this overall new process is explain so that i can can a hit and start the development.

  • 1. Will existing ACS‑based integrations stop working after April 2026?

    Yes.

    App‑Only authentication using Azure Access Control Services (ACS) will be fully retired. This includes integrations that were registered via:

    • /layouts/15/appregnew.aspx
    • /layouts/15/appinv.aspx
    • AllowAppOnlyPolicy="true"
    • Token endpoint: https://accounts.accesscontrol.windows.net/{tenant-id}/tokens/OAuth/2

    After retirement:

    • Existing ACS App‑Only integrations will stop working
    • Access tokens can no longer be issued
    • AppInv.aspx trust model becomes unusable
    • Runtime calls to SharePoint REST API will fail with HTTP 401 Unauthorized

    This affects both new and existing implementations.

    2. Recommended Modern Approach

    You do NOT need to migrate to Microsoft Graph API if your current integration already uses SharePoint REST endpoints.

    Microsoft supports the following modern authentication pattern:

    • Azure AD App Registration
    • OAuth 2.0 Client Credentials Flow
    • SharePoint REST API

    This allows you to continue using existing endpoints such as:

    https://<org>.sharepoint.com/sites/<site>/_api/web/...

    A migration to Microsoft Graph is optional and only recommended if:

    • Cross‑workload integration is required
    • No SharePoint‑specific functionality is needed
    • Graph API coverage is sufficient for the scenario

    For document upload / download scenarios in Business Central, continuing with SharePoint REST is typically the most appropriate option.

    3. Can existing SharePoint REST API endpoints still be used?

    Yes.

    After switching to Azure AD authentication, existing REST API calls such as:

    • File Upload
    • File Download
    • Folder Access
    • Metadata Handling

    can continue to use the existing:

    _api/web/...

    endpoints without functional changes.

    Only the authentication mechanism changes.

    4. Restricting Access to a Single SharePoint Site

    In the ACS model, permissions were often granted tenant‑wide, for example:

    Scope = http://sharepoint/content/sitecollection/tenant
    Right = FullControl

    With Azure AD App‑Only authentication, access can be restricted using the Microsoft Graph application permission:

    Sites.Selected

    Benefits:

    • The application has no SharePoint access by default
    • Access can be granted to specific site collections only
    • No tenant‑wide FullControl permission is required

    After assigning the Sites.Selected permission to the Azure AD application and granting admin consent, site‑specific access must be assigned once using Microsoft Graph.

    Reference:

    https://learn.microsoft.com/graph/api/site-post-permissionsGrant application access to specific SharePoint sites

    5. Token Generation Using Azure AD

    Instead of requesting tokens from:

    https://accounts.accesscontrol.windows.net

    Business Central must now request tokens from:

    https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token

    Using:

    • Grant Type: client_credentials
    • Client ID
    • Client Secret
    • Scope: https://<tenant>.sharepoint.com/.default

    Important:

    When calling SharePoint REST API endpoints, the token scope must be:

    https://<tenant>.sharepoint.com/.default

    Using Microsoft Graph scope instead will result in an “Invalid audience” error when calling SharePoint REST APIs.

    6. Migration Summary

    Current ACS ModelFuture Azure AD Model
    AppRegNew.aspxAzure AD App Registration
    AppInv.aspxSites.Selected Permission
    ACS OAuthAzure AD OAuth 2.0
    accounts.accesscontrol.windows.netlogin.microsoftonline.com
    Tenant FullControlSite‑Scoped Access
    SharePoint REST APISharePoint REST API

    7. Official Microsoft Documentation

    • https://learn.microsoft.com/sharepoint/dev/sp-add-ins/retirement-announcement-for-azure-acs Azure ACS Retirement Announcement
    • https://learn.microsoft.com/sharepoint/dev/solution-guidance/security-apponly-azuread SharePoint App‑Only Authentication with Azure AD
    • https://learn.microsoft.com/graph/permissions-reference#sitesselected Microsoft Graph Permission – Sites.Selected
    • https://learn.microsoft.com/graph/api/site-post-permissions Grant Application Access to a SharePoint Site

    Architectural Recommendation for Business Central

    • Azure AD App Registration
    • Sites.Selected Permission
    • OAuth 2.0 Client Credentials Flow
    • Continue using SharePoint REST API

    This approach is fully supported and requires minimal change to existing AL‑based upload / download logic beyond the authentication layer.

3 Replies

  • 1. Will existing ACS‑based integrations stop working after April 2026?

    Yes.

    App‑Only authentication using Azure Access Control Services (ACS) will be fully retired. This includes integrations that were registered via:

    • /layouts/15/appregnew.aspx
    • /layouts/15/appinv.aspx
    • AllowAppOnlyPolicy="true"
    • Token endpoint: https://accounts.accesscontrol.windows.net/{tenant-id}/tokens/OAuth/2

    After retirement:

    • Existing ACS App‑Only integrations will stop working
    • Access tokens can no longer be issued
    • AppInv.aspx trust model becomes unusable
    • Runtime calls to SharePoint REST API will fail with HTTP 401 Unauthorized

    This affects both new and existing implementations.

    2. Recommended Modern Approach

    You do NOT need to migrate to Microsoft Graph API if your current integration already uses SharePoint REST endpoints.

    Microsoft supports the following modern authentication pattern:

    • Azure AD App Registration
    • OAuth 2.0 Client Credentials Flow
    • SharePoint REST API

    This allows you to continue using existing endpoints such as:

    https://<org>.sharepoint.com/sites/<site>/_api/web/...

    A migration to Microsoft Graph is optional and only recommended if:

    • Cross‑workload integration is required
    • No SharePoint‑specific functionality is needed
    • Graph API coverage is sufficient for the scenario

    For document upload / download scenarios in Business Central, continuing with SharePoint REST is typically the most appropriate option.

    3. Can existing SharePoint REST API endpoints still be used?

    Yes.

    After switching to Azure AD authentication, existing REST API calls such as:

    • File Upload
    • File Download
    • Folder Access
    • Metadata Handling

    can continue to use the existing:

    _api/web/...

    endpoints without functional changes.

    Only the authentication mechanism changes.

    4. Restricting Access to a Single SharePoint Site

    In the ACS model, permissions were often granted tenant‑wide, for example:

    Scope = http://sharepoint/content/sitecollection/tenant
    Right = FullControl

    With Azure AD App‑Only authentication, access can be restricted using the Microsoft Graph application permission:

    Sites.Selected

    Benefits:

    • The application has no SharePoint access by default
    • Access can be granted to specific site collections only
    • No tenant‑wide FullControl permission is required

    After assigning the Sites.Selected permission to the Azure AD application and granting admin consent, site‑specific access must be assigned once using Microsoft Graph.

    Reference:

    https://learn.microsoft.com/graph/api/site-post-permissionsGrant application access to specific SharePoint sites

    5. Token Generation Using Azure AD

    Instead of requesting tokens from:

    https://accounts.accesscontrol.windows.net

    Business Central must now request tokens from:

    https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token

    Using:

    • Grant Type: client_credentials
    • Client ID
    • Client Secret
    • Scope: https://<tenant>.sharepoint.com/.default

    Important:

    When calling SharePoint REST API endpoints, the token scope must be:

    https://<tenant>.sharepoint.com/.default

    Using Microsoft Graph scope instead will result in an “Invalid audience” error when calling SharePoint REST APIs.

    6. Migration Summary

    Current ACS ModelFuture Azure AD Model
    AppRegNew.aspxAzure AD App Registration
    AppInv.aspxSites.Selected Permission
    ACS OAuthAzure AD OAuth 2.0
    accounts.accesscontrol.windows.netlogin.microsoftonline.com
    Tenant FullControlSite‑Scoped Access
    SharePoint REST APISharePoint REST API

    7. Official Microsoft Documentation

    • https://learn.microsoft.com/sharepoint/dev/sp-add-ins/retirement-announcement-for-azure-acs Azure ACS Retirement Announcement
    • https://learn.microsoft.com/sharepoint/dev/solution-guidance/security-apponly-azuread SharePoint App‑Only Authentication with Azure AD
    • https://learn.microsoft.com/graph/permissions-reference#sitesselected Microsoft Graph Permission – Sites.Selected
    • https://learn.microsoft.com/graph/api/site-post-permissions Grant Application Access to a SharePoint Site

    Architectural Recommendation for Business Central

    • Azure AD App Registration
    • Sites.Selected Permission
    • OAuth 2.0 Client Credentials Flow
    • Continue using SharePoint REST API

    This approach is fully supported and requires minimal change to existing AL‑based upload / download logic beyond the authentication layer.

    • aryan003's avatar
      aryan003
      Copper Contributor

      Currently we are using the delegated permission in the azure and because of which from postman it is not allowing us to grant access to SharePoint Online, we can not use application permission because of the security concerns user has .
      pls provide the way forward because with granting access we will not be able to upload and download the file.
      Also as if its not possible with the application permission then if possible can u pls provide the references that suggest that application permission is completely safe and what so ever.