How will the October 2024 MFA enforcement impact our MSAL-based application and how to work around it?

Theo Vergoossen 0 Reputation points
2024-08-23T08:49:27.64+00:00

We have an C# application which requests information from Microsoft EntraID by using functionality of Microsoft.Identy.Client and Microsoft.Graph namespaces. In order to access the interfaces we use IPublicClientApplication and autorize by means of userid and password. The userid used is a standard user with no assigned roles. MFA for this user is disabled (either via policy or direct configuration). Grants on the EntraID is done on basis of ApplicationID. The following grants are used:

  • Directory.AccessAsUser.All
  • Directory.Read.All
  • Group.Read.All
  • User.Read
  • User.Read.All

Besides reading information from the EntraID do we also validate user logins in our application by using AcquireTokenByUsernamePassword. Also here we can't support MFA so MFA is disabled for the users of our application (either via policy or direct configuration).

The above solution works fine, although it is maybe not a recommend solution. The application is is deployed by several of our customers.

Now Microsoft is changing its policy. I have received the message below:
Starting 15 October 2024, we will require users to use multifactor authentication (MFA) to sign into the Azure portal, Microsoft Entra admin center, and Intune admin center. To ensure your users maintain access, you’ll need to enable MFA by 15 October 2024.

Will the above mcehanism still work after October 15? If not, which change is required to continue working without MFA (as our application will not be able to use MFA)?

And can we expect more issues by upcoming changes in the Microsoft policies?

Microsoft Security | Microsoft Entra | Microsoft Entra ID
Microsoft Security | Microsoft Graph
{count} votes

1 answer

Sort by: Most helpful
  1. Vasil Michev 119.9K Reputation points MVP Volunteer Moderator
    2024-08-24T16:59:30.18+00:00

    You should switch to using a service principal (authenticate via the client credentials flow) where possible. Apart from changing the auth flow, you should replace delegate permissions with application ones. Most Graph API operations are available via application permission as well, although there are few exceptions. It all boils down to what you app is leveraging.


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.