Ensure 'App Service authentication' is set to 'Enabled'
Description
App Service authentication can prevent anonymous HTTP requests from reaching an app, or authenticate those with tokens before they reach the app. If an anonymous request is received from a browser, App Service will redirect to a login page. To handle the login process, a choice from a set of identity providers can be made, or a custom authentication mechanism can be implemented.
Rationale
By enabling authentication, every incoming HTTP request passes through it before being handled by the application code. It also handles authentication of users with the specified provider (Entra ID, Facebook, Google, Microsoft Account, and Twitter), validation, storage and refreshing of tokens, managing the authenticated sessions, and injecting identity information into request headers.
Impact
This is only required for apps that require authentication. Enabling it on a site like a marketing or support website will prevent unauthenticated access, which would be undesirable.
Adding an authentication requirement will increase costs and require additional security components to facilitate the authentication.
Audit Procedure
Using Azure Portal
- Go to
App Services. - Click the name of an app.
- Under
Settings, clickAuthentication. - Ensure that
App Service authenticationis set toEnabled. - Repeat steps 1-4 for each app.
Using Azure CLI
Run the following command to list apps:
az webapp list
For each app, run the following command to get the authentication setting:
For v1 auth commands:
az webapp auth show --resource-group <resource-group-name> --name <app-name> --query enabled
For v2 auth commands:
az webapp auth show --resource-group <resource-group-name> --name <app-name> --query properties.platform.enabled
Ensure that true is returned.
Using Azure PowerShell
Not specifically documented for this control.
Expected Result
App Service authentication should be enabled (true).
Remediation
Using Azure Portal
- Go to
App Services. - Click the name of an app.
- Under
Settings, clickAuthentication. - If an identity provider is not configured:
- Click
Add identity provider. - Provide appropriate configuration for an identity provider and click
Add.
- Click
- If
App Service authenticationis set toDisabled:- Click
Enable authentication.
- Click
- Repeat steps 1-5 for each app requiring remediation.
Using Azure CLI
For each app requiring remediation, run the following command to enable authentication:
az webapp auth update --resource-group <resource-group-name> --name <app-name> --enabled true
Note: In order to access App Service authentication settings for an app using the Microsoft API, the Website Contributor permission at the subscription level is required. A custom role can be created instead of Website Contributor to provide more specific permissions and maintain the principle of least privilege access.
Using Azure PowerShell
Not specifically documented for this control.
Default Value
By default, App Service authentication is set to Disabled.
References
- https://learn.microsoft.com/en-us/azure/app-service/overview-authentication-authorization
- https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#website-contributor
- https://learn.microsoft.com/en-us/security/benchmark/azure/mcsb-privileged-access#pa-3-manage-lifecycle-of-identities-and-entitlements
- https://learn.microsoft.com/en-us/security/benchmark/azure/mcsb-governance-strategy#gs-6-define-and-implement-identity-and-privileged-access-strategy
- https://learn.microsoft.com/en-us/cli/azure/webapp/auth
Profile
Level 2 | Automated