Skip to content

Commit 64cd810

Browse files
authored
Merge pull request #288105 from MicrosoftDocs/main
Publish to Live Wednesday 4AM PST, 10/9
2 parents 4cb9046 + 7c3d147 commit 64cd810

File tree

7 files changed

+148
-74
lines changed

7 files changed

+148
-74
lines changed

articles/azure-app-configuration/TOC.yml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -204,19 +204,21 @@
204204
href: concept-disaster-recovery.md
205205
- name: Security
206206
items:
207-
- name: Encrypt using customer-managed keys
208-
href: concept-customer-managed-keys.md
209-
- name: Secure your config store using Private Endpoints
210-
href: concept-private-endpoint.md
211-
- name: Enable access using Microsoft Entra ID
207+
- name: Authenticate using Microsoft Entra ID
212208
href: concept-enable-rbac.md
213-
- name: Assign an Azure Managed Identity
214-
href: overview-managed-identity.md
215-
- name: Manage access key authentication
209+
- name: Authenticate using access keys
216210
href: howto-disable-access-key-authentication.md
217-
- name: Security controls by Azure Policy
211+
- name: Secure your store using Private Endpoints
212+
href: concept-private-endpoint.md
213+
- name: Disable public network access
214+
href: howto-disable-public-access.md
215+
- name: Encrypt data using customer-managed keys
216+
href: concept-customer-managed-keys.md
217+
- name: Add Managed Identities to your store
218+
href: overview-managed-identity.md
219+
- name: Enforce security controls by Azure Policies
218220
href: ./security-controls-policy.md
219-
- name: Security baseline
221+
- name: Understand the security baselines
220222
href: /security/benchmark/azure/baselines/azure-app-configuration-security-baseline?toc=/azure/azure-app-configuration/TOC.json
221223
- name: How-to guides
222224
items:
@@ -240,8 +242,6 @@
240242
href: howto-recover-deleted-stores-in-azure-app-configuration.md
241243
- name: Enable geo-replication
242244
href: howto-geo-replication.md
243-
- name: Disable public access
244-
href: howto-disable-public-access.md
245245
- name: Set up private access
246246
href: howto-set-up-private-access.md
247247
- name: Reference
Lines changed: 43 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,62 @@
11
---
2-
title: Authorize access to Azure App Configuration using Microsoft Entra ID
3-
description: Enable Azure RBAC to authorize access to your Azure App Configuration instance.
4-
author: maud-lv
5-
ms.author: malev
6-
ms.date: 04/05/2024
2+
title: Access Azure App Configuration using Microsoft Entra ID
3+
description: Use Microsoft Entra ID and Azure role-based access control (RBAC) to access your Azure App Configuration store.
4+
author: zhenlan
5+
ms.author: zhenlwa
6+
ms.date: 10/05/2024
77
ms.topic: conceptual
88
ms.service: azure-app-configuration
99

1010
---
11-
# Authorize access to Azure App Configuration using Microsoft Entra ID
12-
Besides using Hash-based Message Authentication Code (HMAC), Azure App Configuration supports using Microsoft Entra ID to authorize requests to App Configuration instances. Microsoft Entra ID allows you to use Azure role-based access control (Azure RBAC) to grant permissions to a security principal. A security principal may be a user, a [managed identity](../active-directory/managed-identities-azure-resources/overview.md), or an [application service principal](../active-directory/develop/app-objects-and-service-principals.md). To learn more about roles and role assignments, see [Understanding different roles](../role-based-access-control/overview.md).
11+
# Access Azure App Configuration using Microsoft Entra ID
12+
Azure App Configuration supports authorization of requests to App Configuration stores using Microsoft Entra ID. With Microsoft Entra ID, you can leverage Azure role-based access control ([Azure RBAC](../role-based-access-control/overview.md)) to grant permissions to security principals, which can be user principals, [managed identities](../active-directory/managed-identities-azure-resources/overview.md), or [service principals](../active-directory/develop/app-objects-and-service-principals.md).
1313

1414
## Overview
15-
Requests made by a security principal to access an App Configuration resource must be authorized. With Microsoft Entra ID, access to a resource is a two-step process:
16-
1. The security principal's identity is authenticated and an OAuth 2.0 token is returned. The resource name to request a token is `https://login.microsoftonline.com/{tenantID}` where `{tenantID}` matches the Microsoft Entra tenant ID to which the service principal belongs.
17-
2. The token is passed as part of a request to the App Configuration service to authorize access to the specified resource.
15+
Accessing an App Configuration store using Microsoft Entra ID involves two steps:
1816

19-
The authentication step requires that an application request contains an OAuth 2.0 access token at runtime. If an application is running within an Azure entity, such as an Azure Functions app, an Azure Web App, or an Azure VM, it can use a managed identity to access the resources. To learn how to authenticate requests made by a managed identity to Azure App Configuration, see [Authenticate access to Azure App Configuration resources with Microsoft Entra ID and managed identities for Azure Resources](howto-integrate-azure-managed-service-identity.md).
17+
1. **Authentication**: Acquire a token of the security principal from Microsoft Entra ID for App Configuration. For more information, see [Microsoft Entra authentication](./rest-api-authentication-azure-ad.md) in App Configuration.
2018

21-
The authorization step requires that one or more Azure roles be assigned to the security principal. Azure App Configuration provides Azure roles that encompass sets of permissions for App Configuration resources. The roles that are assigned to a security principal determine the permissions provided to the principal. For more information about Azure roles, see [Azure built-in roles for Azure App Configuration](#azure-built-in-roles-for-azure-app-configuration).
22-
23-
## Assign Azure roles for access rights
24-
Microsoft Entra authorizes access rights to secured resources through [Azure role-based access control (Azure RBAC)](../role-based-access-control/overview.md).
25-
26-
When an Azure role is assigned to a Microsoft Entra security principal, Azure grants access to those resources for that security principal. Access is scoped to the App Configuration resource. A Microsoft Entra security principal may be a user, a group, an application service principal, or a [managed identity for Azure resources](../active-directory/managed-identities-azure-resources/overview.md).
19+
1. **Authorization**: Pass the token as part of a request to an App Configuration store. To authorize access to the specified App Configuration store, the security principal must be assigned the appropriate roles in advance. For more information, see [Microsoft Entra authorization](./rest-api-authorization-azure-ad.md) in App Configuration.
2720

2821
## Azure built-in roles for Azure App Configuration
29-
Azure provides the following Azure built-in roles for authorizing access to App Configuration data using Microsoft Entra ID:
22+
Azure provides the following built-in roles for authorizing access to App Configuration using Microsoft Entra ID:
3023

31-
- **App Configuration Data Owner**: Use this role to give read/write/delete access to App Configuration data. This role doesn't grant access to the App Configuration resource.
24+
### Data plane access
25+
Requests for [data plane](../azure-resource-manager/management/control-plane-and-data-plane.md#data-plane) operations are sent to the endpoint of your App Configuration store. These requests pertain to App Configuration data.
26+
27+
- **App Configuration Data Owner**: Use this role to give read, write, and delete access to App Configuration data. This role doesn't grant access to the App Configuration resource.
3228
- **App Configuration Data Reader**: Use this role to give read access to App Configuration data. This role doesn't grant access to the App Configuration resource.
33-
- **Contributor** or **Owner**: Use this role to manage the App Configuration resource. It grants access to the resource's access keys. While the App Configuration data can be accessed using access keys, this role doesn't grant direct access to the data using Microsoft Entra ID. This role is required if you access the App Configuration data via ARM template, Bicep, or Terraform during deployment. For more information, see [deployment](quickstart-deployment-overview.md).
29+
30+
### Control plane access
31+
All requests for [control plane](../azure-resource-manager/management/control-plane-and-data-plane.md#control-plane) operations are sent to the Azure Resource Manager URL. These requests pertain to the App Configuration resource.
32+
33+
- **Contributor** or **Owner**: Use this role to manage the App Configuration resource. It grants access to the resource's access keys. While the App Configuration data can be accessed using access keys, this role doesn't grant direct access to the data using Microsoft Entra ID.
3434
- **Reader**: Use this role to give read access to the App Configuration resource. This role doesn't grant access to the resource's access keys, nor to the data stored in App Configuration.
3535

3636
> [!NOTE]
3737
> After a role assignment is made for an identity, allow up to 15 minutes for the permission to propagate before accessing data stored in App Configuration using this identity.
3838
39+
## Authentication with token credentials
40+
41+
To enable your application to authenticate with Microsoft Entra ID, the Azure Identity library supports various token credentials for Microsoft Entra ID authentication. For example, you might choose Visual Studio Credential when developing your application in Visual Studio, Workload Identity Credential when your application runs on Kubernetes, or Managed Identity Credential when your application is deployed in Azure services like Azure Functions.
42+
43+
### Use DefaultAzureCredential
44+
45+
The `DefaultAzureCredential` is a preconfigured [chain of token credentials](/dotnet/azure/sdk/authentication/credential-chains#defaultazurecredential-overview) that automatically attempts an ordered sequence of the most common authentication methods. Using the `DefaultAzureCredential` allows you to keep the same code in both local development and Azure environments. However, it's important to know which credential is being used in each environment, as you need to grant the appropriate roles for authorization to work. For example, authorize your own account when you expect the `DefaultAzureCredential` to fall back to your user identity during local development. Similarly, enable managed identity in Azure Functions and assign it the necessary role when you expect the `DefaultAzureCredential` to fall back to the `ManagedIdentityCredential` when your Function App runs in Azure.
46+
47+
### Assign App Configuration data roles
48+
49+
Regardless of which credential you use, you must assign it the appropriate roles before it can access your App Configuration store. If your application only needs to read data from your App Configuration store, assign it the *App Configuration Data Reader* role. If your application also needs to write data to your App Configuration store, assign it the *App Configuration Data Owner* role.
50+
51+
Follow these steps to assign App Configuration Data roles to your credential.
52+
53+
1. In the Azure portal, navigate to your App Configuration store and select **Access control (IAM)**.
54+
1. Select **Add** -> **Add role assignment**.
55+
56+
If you don't have permission to assign roles, the **Add role assignment** option will be disabled. Only users with *Owner* or *User Access Administrator* roles can make role assignments.
57+
2. On the **Role** tab, select the **App Configuration Data Reader** role (or another App Configuration role as appropriate) and then select **Next**.
58+
3. On the **Members** tab, follow the wizard to select the credential you're granting access to and then select **Next**.
59+
4. Finally, on the **Review + assign** tab, select **Review + assign** to assign the role.
60+
3961
## Next steps
40-
Learn more about using [managed identities](howto-integrate-azure-managed-service-identity.md) to administer your App Configuration service.
62+
Learn how to [use managed identities to access your App Configuration store](howto-integrate-azure-managed-service-identity.md).

articles/azure-app-configuration/howto-disable-access-key-authentication.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
---
2-
title: Manage access key authentication for an Azure App Configuration instance
2+
title: Access Azure App Configuration using access keys
33
titleSuffix: Azure App Configuration
44
description: Learn how to manage access key authentication for an Azure App Configuration instance.
55
ms.service: azure-app-configuration
66
author: maud-lv
77
ms.author: malev
88
ms.topic: how-to
9-
ms.date: 04/05/2024
9+
ms.date: 10/05/2024
1010
---
1111

12-
# Manage access key authentication for an Azure App Configuration instance
12+
# Access Azure App Configuration using access keys
1313

1414
Every request to an Azure App Configuration resource must be authenticated. By default, requests can be authenticated with either Microsoft Entra credentials, or by using an access key. Of these two types of authentication schemes, Microsoft Entra ID provides superior security and ease of use over access keys, and is recommended by Microsoft. To require clients to use Microsoft Entra ID to authenticate requests, you can disable the usage of access keys for an Azure App Configuration resource. If you want to use access keys to authenticate the request, it's recommended to rotate access keys periodically to enhance security. See [recommendations for protecting application secrets](/azure/well-architected/security/application-secrets) to learn more.
1515

1616
## Enable access key authentication
1717

18-
Access key is enabled by default, you can use access keys in your code to authenticate requests.
18+
Access key is enabled by default. You can use access keys in your code to authenticate requests.
1919

2020
# [Azure portal](#tab/portal)
2121

@@ -62,8 +62,8 @@ To check if access key authentication is enabled for an Azure App Configuration
6262

6363
# [Azure CLI](#tab/azure-cli)
6464

65-
To check if access key authentication is enabled for an Azure App Configuration resource, use the following command. The command will list the access keys for an Azure App Configuration resource.
66-
If access key authentication is enabled, then read-only access keys and read-write access keys will be returned.
65+
To check if access key authentication is enabled for an Azure App Configuration resource, use the following command. The command lists the access keys for an Azure App Configuration resource.
66+
If access key authentication is enabled, then read-only access keys and read-write access keys are returned.
6767

6868
```azurecli-interactive
6969
az appconfig credential list \
@@ -75,7 +75,7 @@ az appconfig credential list \
7575

7676
## Disable access key authentication
7777

78-
Disabling access key authentication will delete all access keys. If any running applications are using access keys for authentication, they will begin to fail once access key authentication is disabled. Only requests that are authenticated using Microsoft Entra ID will succeed. For more information about using Microsoft Entra ID, see [Authorize access to Azure App Configuration using Microsoft Entra ID](./concept-enable-rbac.md). Enabling access key authentication again will generate a new set of access keys and any applications attempting to use the old access keys will still fail.
78+
Disabling access key authentication deletes all access keys. If any running applications are using access keys for authentication, they'll begin to fail once access key authentication is disabled. Only requests that are authenticated using Microsoft Entra ID will succeed. For more information about using Microsoft Entra ID, see [Authorize access to Azure App Configuration using Microsoft Entra ID](./concept-enable-rbac.md). Enabling access key authentication again generates a new set of access keys and any applications attempting to use the old access keys will still fail.
7979

8080
> [!WARNING]
8181
> If any clients are currently accessing data in your Azure App Configuration resource with access keys, then Microsoft recommends that you migrate those clients to [Microsoft Entra ID](./concept-enable-rbac.md) before disabling access key authentication.
@@ -125,7 +125,7 @@ To verify access key authentication is disabled for an Azure App Configuration r
125125

126126
# [Azure CLI](#tab/azure-cli)
127127

128-
To verify access key authentication is disabled for an Azure App Configuration resource, use the following command. The command will list the access keys for an Azure App Configuration resource and if access key authentication is disabled the list will be empty.
128+
To verify access key authentication is disabled for an Azure App Configuration resource, use the following command. The command lists the access keys for an Azure App Configuration resource and if access key authentication is disabled the list will be empty.
129129

130130
```azurecli-interactive
131131
az appconfig credential list \
@@ -142,7 +142,7 @@ To modify the state of access key authentication for an Azure App Configuration
142142
- The Azure Resource Manager [Owner](../role-based-access-control/built-in-roles.md#owner) role
143143
- The Azure Resource Manager [Contributor](../role-based-access-control/built-in-roles.md#contributor) role
144144

145-
These roles do not provide access to data in an Azure App Configuration resource via Microsoft Entra ID. However, they include the **Microsoft.AppConfiguration/configurationStores/listKeys/action** action permission, which grants access to the resource's access keys. With this permission, a user can use the access keys to access all the data in the resource.
145+
These roles don't provide access to data in an Azure App Configuration resource via Microsoft Entra ID. However, they include the **Microsoft.AppConfiguration/configurationStores/listKeys/action** action permission, which grants access to the resource's access keys. With this permission, a user can use the access keys to access all the data in the resource.
146146

147147
Role assignments must be scoped to the level of the Azure App Configuration resource or higher to permit a user to allow or disallow access key authentication for the resource. For more information about role scope, see [Understand scope for Azure RBAC](../role-based-access-control/scope-overview.md).
148148

@@ -160,7 +160,7 @@ Microsoft recommends periodic rotation of access keys to mitigate the risk of at
160160
You can rotate keys using the following procedure:
161161

162162
1. If you're using both keys in production, change your code so that only one access key is in use. In this example, let's say you decide to keep using your store's primary key.
163-
You must have only one key in your code, because when you regenerate your secondary key, the older version of that key will stop working immediately, causing clients using the older key to get 401 access denied errors.
163+
You must have only one key in your code, because when you regenerate your secondary key, the older version of that key stops working immediately, causing clients using the older key to get 401 access denied errors.
164164

165165
1. Once the primary key is the only key in use, you can regenerate the secondary key.
166166

@@ -184,7 +184,7 @@ You must have only one key in your code, because when you regenerate your second
184184
---
185185
186186
1. Next, update your code to use the newly generated secondary key.
187-
It is advisable to review your application logs to confirm that all instances of your application have transitioned from using the primary key to the secondary key before proceeding to the next step.
187+
It's advisable to review your application logs to confirm that all instances of your application have transitioned from using the primary key to the secondary key before proceeding to the next step.
188188
189189
1. Finally, you can invalidate the primary keys by regenerating them. Next time, you can alternate access keys between the secondary and primary keys using the same process.
190190

articles/azure-app-configuration/overview-managed-identity.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ ms.service: azure-app-configuration
99
ms.custom: devx-track-azurecli
1010
---
1111

12-
# How to use managed identities for Azure App Configuration
12+
# Add managed identities for Azure App Configuration
1313

1414
This article shows you how to create a managed identity for Azure App Configuration. A managed identity from Microsoft Entra ID allows Azure App Configuration to easily access other Microsoft Entra protected resources. The identity is managed by the Azure platform. It doesn't require you to provision or rotate any secrets. For more about managed identities in Microsoft Entra ID, see [Managed identities for Azure resources](../active-directory/managed-identities-azure-resources/overview.md).
1515

0 commit comments

Comments
 (0)