Skip to content

Commit bb3cda3

Browse files
committed
Merge branch 'main' of https://github.com/MicrosoftDocs/azure-docs-pr into mongodbatlas-public-preview
2 parents b4277aa + d81df6e commit bb3cda3

File tree

319 files changed

+4837
-2416
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

319 files changed

+4837
-2416
lines changed

articles/active-directory-b2c/billing.md

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: kengaderdus
55
manager: CelesteDG
66
ms.service: azure-active-directory
77
ms.topic: reference
8-
ms.date: 03/10/2025
8+
ms.date: 05/20/2025
99
ms.author: kengaderdus
1010
ms.subservice: b2c
1111
ms.custom: fasttrack-edit
@@ -36,18 +36,6 @@ Also, if you choose to provide higher levels of assurance by using multifactor a
3636
> [!IMPORTANT]
3737
> This article does not contain pricing details. For the latest information about usage billing and pricing, see [Azure Active Directory B2C pricing](https://azure.microsoft.com/pricing/details/active-directory-b2c/). See also [Azure AD B2C region availability and data residency](data-residency.md) for details about where the Azure AD B2C service is available and where user data is stored.
3838
39-
## What do I need to do?
40-
41-
To take advantage of MAU billing, your Azure AD B2C tenant must be linked to an Azure subscription. You might also need to switch your Azure AD B2C tenant to another pricing tier if you want to use Azure AD B2C Premium P2 features, like risk-based Conditional Access policies.
42-
43-
|If your tenant is: |You need to: |
44-
|---------|---------|
45-
| An Azure AD B2C tenant already billed on a per-MAU basis | Do nothing. When users authenticate to your Azure AD B2C tenant, you'll be automatically billed using the MAU-based billing model. |
46-
| An Azure AD B2C tenant not yet linked to a subscription | [Link your Azure AD B2C tenant to a subscription](#link-an-azure-ad-b2c-tenant-to-a-subscription) to activate MAU billing. |
47-
| An Azure AD B2C tenant that was linked to a subscription before November 1, 2019 | [Switch to MAU billing (recommended)](#switch-to-mau-billing-pre-november-2019-azure-ad-b2c-tenants), or stay on the per-authentication billing model. |
48-
| An Azure AD B2C tenant and you want to use premium features (like risk-based Conditional Access policies) | [Change to a Microsoft Entra pricing tier](#change-your-azure-ad-pricing-tier) that supports the features you want to use. |
49-
| | |
50-
5139
## About the monthly active users (MAU) billing model
5240

5341
MAU billing went into effect for Azure AD B2C tenants on **November 1, 2019**. Any Azure AD B2C tenants that you created and linked to a subscription on or after that date have been billed on a per-MAU basis.

articles/active-directory-b2c/conditional-access-identity-protection-overview.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ description: Learn how Identity Protection gives you visibility into risky sign-
44
ms.service: azure-active-directory
55
ms.subservice: b2c
66
ms.topic: overview
7-
ms.date: 01/11/2024
7+
ms.date: 05/20/2025
88
ms.author: kengaderdus
99
author: kengaderdus
10-
manager: CelesteDG
10+
manager: mwongerapk
1111
ms.collection: M365-identity-device-management
1212

1313
#Customer intent: As an Azure AD B2C application owner, I want to enhance the security of my applications by using Identity Protection and Conditional Access, so that I can detect and respond to risky authentications and enforce organizational policies.

articles/active-directory-b2c/find-help-open-support-ticket.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ manager: CelesteDG
99
ms.service: azure-active-directory
1010

1111
ms.topic: troubleshooting
12-
ms.date: 01/11/2024
12+
ms.date: 05/20/2025
1313
ms.author: kengaderdus
1414
ms.subservice: b2c
1515

articles/active-directory-b2c/identity-protection-investigate-risk.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Learn how to investigate risky users, and detections in Azure AD B2
44
ms.service: entra-id
55
ms.subservice: conditional-access
66
ms.topic: overview
7-
ms.date: 01/24/2025
7+
ms.date: 05/24/2025
88
ms.author: godonnell
99
author: garrodonnell
1010
manager: CelesteDG

articles/active-directory-b2c/supported-azure-ad-features.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ title: Supported Microsoft Entra ID features
33
description: Learn about Microsoft Entra ID features, which are still supported in Azure AD B2C.
44

55
author: kengaderdus
6-
manager: CelesteDG
6+
manager: mwongerapk
77

88
ms.service: azure-active-directory
99

1010
ms.topic: overview
11-
ms.date: 01/11/2024
11+
ms.date: 05/20/2025
1212
ms.author: kengaderdus
1313
ms.subservice: b2c
1414

@@ -36,4 +36,4 @@ An Azure Active Directory B2C (Azure AD B2C) tenant is different than a Microsof
3636
| [Go-Local add-on](data-residency.md#go-local-add-on) | Microsoft Entra Go-Local add-on enables you to store data in the country/region you choose when your Microsoft Entra tenant.| Just like Microsoft Entra ID, Azure AD B2C supports [Go-Local add-on](data-residency.md#go-local-add-on). |
3737

3838
> [!NOTE]
39-
> **Other Azure resources in your tenant:** <br>In an Azure AD B2C tenant, you can't provision other Azure resources such as virtual machines, Azure web apps, or Azure functions. You must create these resources in your Microsoft Entra tenant.
39+
> **Other Azure resources in your tenant:** <br>In an Azure AD B2C tenant, you can't provision other Azure resources such as virtual machines, Azure web apps, or Azure functions. You must create these resources in your Microsoft Entra tenant.

articles/api-center/includes/api-center-service-limits.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ author: dlepow
77

88
ms.service: azure-api-center
99
ms.topic: include
10-
ms.date: 03/ 18/2025
10+
ms.date: 05/19/2025
1111
ms.author: danlep
1212
ms.custom: Include file
1313
---
@@ -29,7 +29,7 @@ ms.custom: Include file
2929
| Maximum number of APIs synchronized from a linked API source | 200 | 2,000<sup>4</sup> |
3030
| Semantic search in API Center portal | No | Yes |
3131

32-
<sup>1</sup> Free plan provided for 90 days, then service is soft-deleted. Use of full service features including API analysis is limited.<br/>
32+
<sup>1</sup> Use of full service features including API analysis is limited.<br/>
3333
<sup>2</sup> To increase a limit in the Standard plan, contact [support](https://azure.microsoft.com/support/options/).<br/>
3434
<sup>3</sup> Custom metadata properties assigned to APIs, deployments, and environments.<br/>
3535
<sup>4</sup> Process can take a few minutes to up to 24 hours to complete.<br/>

articles/api-management/TOC.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -208,8 +208,12 @@
208208
items:
209209
- name: AI gateway capabilities in API Management
210210
href: genai-gateway-capabilities.md
211+
- name: Import Azure AI Foundry API
212+
href: azure-ai-foundry-api.md
211213
- name: Import Azure OpenAI API
212214
href: azure-openai-api-from-specification.md
215+
- name: Import OpenAI-compatible LLM API
216+
href: openai-compatible-llm-api.md
213217
- name: Authenticate and authorize to Azure OpenAI
214218
href: api-management-authenticate-authorize-azure-openai.md
215219
- name: Expose REST API as MCP server
@@ -320,6 +324,8 @@
320324
items:
321325
- name: API authentication and authorization options
322326
href: authentication-authorization-overview.md
327+
- name: Protect product APIs with Microsoft Entra ID applications
328+
href: applications.md
323329
- name: Protect your API with Microsoft Entra ID
324330
href: api-management-howto-protect-backend-with-aad.md
325331
- name: Protect your API with Azure AD B2C
@@ -622,10 +628,6 @@
622628
- name: Azure Policy built-ins
623629
displayName: samples, policies, definitions
624630
href: ./policy-reference.md
625-
- name: Gateway log schema
626-
href: gateway-log-schema-reference.md
627-
- name: Developer portal audit log schema
628-
href: developer-portal-audit-log-schema-reference.md
629631
- name: Event Grid events schema
630632
href: ../event-grid/event-schema-api-management.md?toc=/azure/api-management/toc.json&bc=/azure/api-management/breadcrumb/toc.json
631633
- name: Virtual network configuration
@@ -634,8 +636,6 @@
634636
href: self-hosted-gateway-settings-reference.md
635637
- name: Self-hosted gateway Azure Arc configuration
636638
href: self-hosted-gateway-arc-reference.md
637-
- name: Diagnostic logs settings
638-
href: diagnostic-logs-reference.md
639639
- name: Resources
640640
items:
641641
- name: FAQ
Lines changed: 210 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,210 @@
1+
---
2+
title: Protect Access to Product APIs with Microsoft Entra Application - Azure API Management
3+
titleSuffix: Azure API Management
4+
description: Configure OAuth 2.0 access to product APIs in Azure API Management with Microsoft Entra ID applications.
5+
services: api-management
6+
author: dlepow
7+
8+
ms.service: azure-api-management
9+
ms.topic: how-to
10+
ms.date: 05/19/2025
11+
ms.author: danlep
12+
ms.custom:
13+
---
14+
# Secure product API access with Microsoft Entra applications
15+
16+
[!INCLUDE [api-management-availability-premium-dev-standard-basic](../../includes/api-management-availability-premium-dev-standard-basic.md)]
17+
18+
API Management now supports built-in OAuth 2.0 application-based access to product APIs using the client credentials flow. This feature allows API managers to register Microsoft Entra ID applications, streamlining secure API access for developers through OAuth 2.0 authorization.
19+
20+
> [!NOTE]
21+
> Applications are currently in limited preview. To sign up, fill [this form](https://aka.ms/apimappspreview).
22+
23+
With this feature:
24+
25+
* API managers set a product property to enable application-based access.
26+
* API managers register client applications in Microsoft Entra ID to limit access to specific products.
27+
* Using the OAuth 2.0 client credentials flow, developers or apps obtain tokens that they can include in API requests
28+
* Tokens presented in API requests are validated by the API Management gateway to authorize access to the product's APIs.
29+
30+
## Prerequisites
31+
32+
- An API Management instance deployed in the **Premium**, **Standard**, **Basic**, or **Developer** tier. If you need to deploy an instance, see [Create an API Management service instance](get-started-create-service-instance.md).
33+
34+
- At least one product in your API Management instance, with at least one API assigned to it.
35+
* The product should be in the **Published** state so that it can be accessed by developers through the developer portal.
36+
* For testing, you can use the default **Starter** product and the **Echo** API that's added to it.
37+
* If you want to create a product, see [Create and publish a product](api-management-howto-add-products.md).
38+
39+
- Sufficient permissions in your Microsoft Entra tenant to assign the **Application Administrator** role, which requires at least the **Privileged Role Administrator** role.
40+
41+
- Optionally, add one or more [users](api-management-howto-create-or-invite-developers.md) in your API Management instance.
42+
43+
[!INCLUDE [azure-powershell-requirements-no-header](~/reusable-content/ce-skilling/azure/includes/azure-powershell-requirements-no-header.md)]
44+
45+
## Configure managed identity
46+
47+
1. Enable a system-assigned [managed identity for API Management](api-management-howto-use-managed-service-identity.md) in your API Management instance.
48+
49+
1. Assign the identity the **Application Administrator** RBAC role in Microsoft Entra ID. To assign the role:
50+
51+
1. Sign in to the [portal](https://portal.azure.com) and navigate to **Microsoft Entra ID**.
52+
1. In the left menu, select **Manage** > **Roles and administrators**.
53+
1. Select **Application administrator**.
54+
1. In the left menu, select **Manage** > **Assignments** > **+ Add assignments**.
55+
1. In the **Add assignments** page, search for the API Management instance's managed identity by name (the name of the API Management instance). Select the managed identity, and then select **Add**.
56+
57+
## Enable application based access for product
58+
59+
Follow these steps to enable **Application based access** for a product. A product must have this setting enabled to be associated with a client application in later steps.
60+
61+
The following example uses the **Starter** product, but choose any published product that has at least one API assigned to it.
62+
63+
1. Sign in to the [portal](https://portal.azure.com) and navigate to your API Management instance.
64+
1. In the left menu, under **APIs**, select **Products**.
65+
1. Choose the product that you want to configure, such as the **Starter** product.
66+
1. In the left menu, under **Product**, select **Properties**.
67+
1. Enable the **Application based access** setting.
68+
1. Optionally, enable the **Requires subscription** setting. If you enable both application based access and a subscription requirement, the API Management gateway can accept either OAuth 2.0 authorization or a subscription key for access to the product's APIs.
69+
1. Select **Save**.
70+
71+
:::image type="content" source="media/applications/enable-application-based-access.png" alt-text="Screenshot of enabling application based access in the portal.":::
72+
73+
> [!TIP]
74+
> You can also enable the **Application based access** setting when creating a new product.
75+
76+
Enabling application based access creates a backend enterprise application in Microsoft Entra ID to represent the product. The backend application ID is displayed in the product's **Properties** page.
77+
78+
:::image type="content" source="media/applications/product-application-settings.png" alt-text="Screenshot of product's application settings in the portal.":::
79+
80+
> [!NOTE]
81+
> This application ID is set as the **Audience** value when creating a client application to access the product. Also use this value when generating a token to call the product API.
82+
>
83+
84+
## (Optional) Review product application settings in Microsoft Entra ID
85+
86+
Optionally review settings of the backend enterprise application created in Microsoft Entra ID to represent the product.
87+
88+
The application is named with the following format: **APIMProductApplication\<product-name\>**. For example, if the product name is **Starter**, the application name is **APIMProductApplicationStarter**. The application has an **App role** defined.
89+
90+
To review application settings in **App registrations**:
91+
92+
1. Sign in to the [portal](https://portal.azure.com) and navigate to **Microsoft Entra ID** > **Manage** > **App registrations**.
93+
1. Select **All applications**.
94+
1. Search for and select the application created by API Management.
95+
1. In the left menu, under **Manage**, select **App roles**.
96+
1. Confirm the application role that set by Azure API Management, as shown in the following screenshot:
97+
98+
:::image type="content" source="media/applications/application-roles.png" alt-text="Screenshot of app roles in the portal.":::
99+
100+
## Register client application to access product
101+
102+
Now register a client application that limits access to one or more products.
103+
104+
* A product must have **Application based access** enabled to be associated with a client application.
105+
* Each client application has a single user (owner) in the API Management instance. One the owner can access product APIs through the application.
106+
* A product can be associated with more than one client application.
107+
108+
1. Sign in to the [portal](https://portal.azure.com) and navigate to your API Management instance.
109+
1. In the left menu, under **APIs**, select **Applications** > **+ Register application**.
110+
1. In the **Register an application** page, enter the following application settings:
111+
* **Name**: Enter a name for the application.
112+
* **Owner**: Select the owner of the application from the dropdown list of users in the API Management instance.
113+
* **Grant access to selected products**: Select one or more products in the API Management instance that were previously enabled for **Application based access**.
114+
* **Description**: Optionally enter a description.
115+
116+
:::image type="content" source="media/applications/register-application.png" alt-text="Screenshot of application settings in the portal.":::
117+
1. Select **Register**.
118+
119+
The application is added to the list of applications on the **Applications** page. Select the application to view details such as the **Client ID**. You need this ID to generate a token to call the product API.
120+
121+
> [!TIP]
122+
> * After creating an application, optionally associate it with other products. Select the application on the **Applications** page, and then select **Details** > **Products** > **+ Add product**.
123+
> * You can also create or associate an application by editing a product from the **Products** page.
124+
125+
## Generate client secret
126+
127+
A client secret must be generated for the client application to use the OAuth 2.0 client credentials flow. The secret is valid for one year but can be regenerated at any time.
128+
129+
1. On the **Applications** page, select the application that you created.
130+
1. On the application's **Overview** page, next to **Client Secret**, select **Add secret**.
131+
1. On the **New client secret** page, select **Generate**.
132+
133+
A client secret is generated and displayed in the **Client secret** field. Make sure to copy the secret value and store it securely. You won't be able to retrieve it again after you close the page.
134+
1. Select **Close**.
135+
136+
## (Optional) Review client application settings in Microsoft Entra ID
137+
138+
Optionally review settings of the client application in Microsoft Entra ID.
139+
140+
The application is named with the following format: **APIMApplication\<product-name\>**. For example, if the product name is **Starter**, the application name is similar to **APIMApplicationStarter**.
141+
142+
To review application settings in **App registrations**:
143+
144+
1. Sign in to the [portal](https://portal.azure.com) and navigate to **Microsoft Entra ID** > **Manage** > **App registrations**.
145+
1. Select **All applications**.
146+
1. Search for and select the client application created by API Management.
147+
1. In the left menu, under **Manage**, select **API permissions**.
148+
1. Confirm that the application has permissions to access the backend product application or applications.
149+
150+
For example, if the client application grants access to the **Starter** product, the application has **Product.Starter.All** permissions to access the **APIMProductApplicationStarter** application.
151+
152+
:::image type="content" source="media/applications/client-api-permissions.png" alt-text="Screenshot of API permissions in the portal.":::
153+
154+
155+
## Create token and use with API call
156+
157+
After you enable application-based access for a product and register a client application, a developer or app can generate a token to call the product's APIs. The token must be included in the `Authorization` header of a request.
158+
159+
For example, a developer or app can run the following Azure PowerShell scripts to call the client application to generate a token, and then use the token to call a product API in API Management.
160+
161+
> [!CAUTION]
162+
> The following scripts are examples for testing purposes only. In production, use a secure method to store and retrieve the client secret.
163+
164+
### Call client application to generate token
165+
166+
167+
```powershell
168+
# Replace placeholder values with your own values.
169+
170+
$clientId = "00001111-aaaa-2222-bbbb-3333cccc4444" # Client (application) ID of client application
171+
$clientSecret = "******" # Retrieve secret of client application in developer portal
172+
$scopeOfOtherApp = "api://55556666-ffff-7777-aaaa-8888bbbb9999/.default" # Value of Audience in product properties
173+
$tenantId = "aaaabbbb-0000-cccc-1111-dddd2222eeee" # Directory (tenant) ID in Microsoft Entra ID
174+
175+
$body = @{
176+
    grant_type    = "client_credentials"
177+
    client_id     = $clientId
178+
    client_secret = $clientSecret
179+
    scope         = $scopeOfOtherApp
180+
}
181+
$response = Invoke-RestMethod -Method Post -Uri "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token" -ContentType "application/x-www-form-urlencoded" -Body $body
182+
$token = $response.access_token
183+
```
184+
185+
### Call product API using token
186+
187+
The token generated in the previous step is used to call a product API. The token is passed in the **Authorization** header of the request. The API Management instance validates the token and authorizes access to the API.
188+
189+
The following script shows an example call to the echo API.
190+
191+
```powershell
192+
# Gatewate endpoint to call. Update with URI of API operation you want to call.
193+
$uri = "https://<gateway-hostname>/echo/resource?param1=sample"
194+
$headers = @{
195+
   "Authorization" = "Bearer $token" # $token is the token generated in the previous script.
196+
}
197+
$body = @{
198+
    "hello" = "world"
199+
} | ConvertTo-Json -Depth 5
200+
201+
$getresponse = Invoke-RestMethod -Method Post -Uri $uri -ContentType "application/x-www-form-urlencoded" -Headers $headers -Body $body
202+
Write-Host "Response:"
203+
$getresponse | ConvertTo-Json -Depth 5
204+
```
205+
206+
## Related content
207+
208+
* [Create and publish a product](api-management-howto-add-products.md)
209+
* [Authentication and authorization to APIs in API Management](authentication-authorization-overview.md)
210+

0 commit comments

Comments
 (0)