Skip to content

Commit d27afce

Browse files
committed
resolve merge conflict
2 parents ade3ca0 + 28ff048 commit d27afce

File tree

1,748 files changed

+15769
-10592
lines changed

Some content is hidden

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

1,748 files changed

+15769
-10592
lines changed
74 Bytes
Loading
-2.18 KB
Loading
-3.44 KB
Loading
-2.88 KB
Loading

articles/active-directory-b2c/phone-based-mfa.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ author: kengaderdus
77
manager: CelesteDG
88
ms.service: azure-active-directory
99
ms.topic: how-to
10-
ms.date: 09/11/2024
10+
ms.date: 10/23/2024
1111
ms.author: kengaderdus
1212
ms.subservice: b2c
1313

@@ -114,4 +114,4 @@ Take the following actions to help mitigate fraudulent sign-ups.
114114

115115
- Learn about [Identity Protection and Conditional Access for Azure AD B2C](conditional-access-identity-protection-overview.md)
116116

117-
- Apply [Conditional Access to user flows in Azure Active Directory B2C](conditional-access-user-flow.md)
117+
- Apply [Conditional Access to user flows in Azure Active Directory B2C](conditional-access-user-flow.md)

articles/analysis-services/analysis-services-logging.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ The output should look something like this example:
115115

116116
```powershell
117117
StorageAccountId :
118-
/subscriptions/a23279b5-xxxx-xxxx-xxxx-47b7c6d423ea/resourceGroups/awsales_resgroup/providers/Microsoft.Storage/storageAccounts/awsaleslogs
118+
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/awsales_resgroup/providers/Microsoft.Storage/storageAccounts/awsaleslogs
119119
ServiceBusRuleId :
120120
EventHubAuthorizationRuleId :
121121
Metrics
@@ -142,7 +142,7 @@ Logs
142142
143143
144144
WorkspaceId :
145-
Id : /subscriptions/a23279b5-xxxx-xxxx-xxxx-47b7c6d423ea/resourcegroups/awsales_resgroup/providers/microsoft.analysisservic
145+
Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/awsales_resgroup/providers/microsoft.analysisservic
146146
es/servers/awsales/providers/microsoft.insights/diagnosticSettings/service
147147
Name : service
148148
Type :

articles/api-management/api-management-howto-add-products.md

Lines changed: 92 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
---
22
title: Tutorial - Create and publish a product in Azure API Management
33
description: In this tutorial, you create and publish a product in Azure API Management. Once it's published, developers can begin to use the product's APIs.
4-
5-
author: dlepow
6-
ms.service: azure-api-management
74
ms.topic: tutorial
8-
ms.date: 01/18/2022
9-
ms.author: danlep
5+
ms.date: 10/22/2024
106
ms.custom: devdivchpfy22, devx-track-azurecli
7+
ms.service: azure-api-management
8+
author: dlepow
9+
ms.author: danlep
1110
ms.devlang: azurecli
12-
11+
zone_pivot_groups: api-management-howto-add-products
1312
---
1413
# Tutorial: Create and publish a product
1514

1615
[!INCLUDE [api-management-availability-all-tiers](../../includes/api-management-availability-all-tiers.md)]
1716

1817
In Azure API Management, a [*product*](api-management-terminology.md#term-definitions) contains one or more APIs, a usage quota, and the terms of use. After a product is published, developers can [subscribe](api-management-subscriptions.md) to the product and begin to use the product's APIs.
1918

19+
:::zone pivot="interactive"
20+
2021
In this tutorial, you learn how to:
2122

2223
> [!div class="checklist"]
@@ -26,7 +27,6 @@ In this tutorial, you learn how to:
2627
2728
:::image type="content" source="media/api-management-howto-add-products/added-product-1.png" alt-text="API Management products in portal":::
2829

29-
3030
## Prerequisites
3131

3232
+ Learn the [Azure API Management terminology](api-management-terminology.md).
@@ -207,3 +207,88 @@ Advance to the next tutorial:
207207

208208
> [!div class="nextstepaction"]
209209
> [Create blank API and mock API responses](mock-api-responses.md)
210+
211+
:::zone-end
212+
213+
:::zone pivot="terraform"
214+
215+
In this article, you use Terraform to create an Azure API Management instance, an API, a product, a group, and associations between the product and the API, and the product and the group.
216+
217+
[!INCLUDE [About Terraform](~/azure-dev-docs-pr/articles/terraform/includes/abstract.md)]
218+
219+
> [!div class="checklist"]
220+
>
221+
> * Specify the required version of Terraform and the required providers.
222+
> * Define variables for the resource group name prefix, resource group location, and the content format and value for the API definition import.
223+
> * Create a resource group with a randomized name.
224+
> * Create an API Management service with a randomized name.
225+
> * Create an API with a randomized name.
226+
> * Create a product with a randomized name in the API Management service.
227+
> * Create a group with a randomized name.
228+
> * Associate the API with the product.
229+
> * Associate the group with the product.
230+
> * Output the randomized values such as the names of the resource group, API Management service, API, product, and group.
231+
232+
## Prerequisites
233+
234+
- Create an Azure account with an active subscription. You can [create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
235+
236+
- [Install and configure Terraform.](/azure/developer/terraform/quickstart-configure)
237+
238+
## Implement the Terraform code
239+
240+
> [!NOTE]
241+
> The sample code for this article is located in the [Azure Terraform GitHub repo](https://github.com/Azure/terraform/tree/master/quickstart/101-azure-api-management-create-with-api). You can view the log file containing the [test results from current and previous versions of Terraform](https://github.com/Azure/terraform/tree/master/quickstart/101-azure-api-management-create-with-api/TestRecord.md).
242+
>
243+
> See more [articles and sample code showing how to use Terraform to manage Azure resources](/azure/terraform).
244+
245+
1. Create a directory in which to test and run the sample Terraform code and make it the current directory.
246+
247+
1. Create a file named `main.tf`, and insert the following code:
248+
:::code language="Terraform" source="~/terraform_samples/quickstart/101-azure-api-management-create-with-api/main.tf":::
249+
250+
1. Create a file named `outputs.tf`, and insert the following code:
251+
:::code language="Terraform" source="~/terraform_samples/quickstart/101-azure-api-management-create-with-api/outputs.tf":::
252+
253+
1. Create a file named `providers.tf`, and insert the following code:
254+
:::code language="Terraform" source="~/terraform_samples/quickstart/101-azure-api-management-create-with-api/providers.tf":::
255+
256+
1. Create a file named `variables.tf`, and insert the following code:
257+
:::code language="Terraform" source="~/terraform_samples/quickstart/101-azure-api-management-create-with-api/variables.tf":::
258+
259+
## Initialize Terraform
260+
261+
[!INCLUDE [terraform-init.md](~/azure-dev-docs-pr/articles/terraform/includes/terraform-init.md)]
262+
263+
## Create a Terraform execution plan
264+
265+
[!INCLUDE [terraform-plan.md](~/azure-dev-docs-pr/articles/terraform/includes/terraform-plan.md)]
266+
267+
## Apply a Terraform execution plan
268+
269+
[!INCLUDE [terraform-apply-plan.md](~/azure-dev-docs-pr/articles/terraform/includes/terraform-apply-plan.md)]
270+
271+
## Verify the results
272+
273+
Run [`az apim show`](/cli/azure/apim#az-apim-show) to view the Azure API Management:
274+
275+
```azurecli
276+
277+
az apim show --<apim_service_name> --<resource_group_name>
278+
279+
```
280+
281+
## Clean up resources
282+
283+
[!INCLUDE [terraform-plan-destroy.md](~/azure-dev-docs-pr/articles/terraform/includes/terraform-plan-destroy.md)]
284+
285+
## Troubleshoot Terraform on Azure
286+
287+
[Troubleshoot common problems when using Terraform on Azure](/azure/developer/terraform/troubleshoot).
288+
289+
## Next steps
290+
291+
> [!div class="nextstepaction"]
292+
> [Create blank API and mock API responses](mock-api-responses.md).
293+
294+
:::zone-end

articles/api-management/api-management-subscriptions.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: dlepow
66

77
ms.service: azure-api-management
88
ms.topic: conceptual
9-
ms.date: 08/02/2023
9+
ms.date: 09/03/2024
1010
ms.author: danlep
1111
ms.custom: engagement-fy23
1212
---
@@ -133,7 +133,7 @@ After the subscription requirement is disabled, the selected API or APIs can be
133133

134134
When API Management receives an API request from a client with a subscription key, it handles the request according to these rules:
135135

136-
1. Check if it's a valid key associated with an active subscription, either:
136+
1. Check first if it's a valid key associated with an active subscription, either:
137137

138138
* A subscription scoped to the API
139139
* A subscription scoped to a product that's assigned to the API
@@ -142,13 +142,15 @@ When API Management receives an API request from a client with a subscription ke
142142

143143
If a valid key for an active subscription at an appropriate scope is provided, access is allowed. Policies are applied depending on the configuration of the policy definition at that scope.
144144

145+
1. If the key isn't valid but a product exists that includes the API but doesn't require a subscription (an *open* product), ignore the key and handle as an API request without a subscription key (see below).
146+
145147
1. Otherwise, access is denied (401 Access denied error).
146148

147149
### API request without a subscription key
148150

149151
When API Management receives an API request from a client without a subscription key, it handles the request according to these rules:
150152

151-
1. Check first for the existence of a product that includes the API but doesn't require a subscription (an *open* product). If the open product exists, handle the request in the context of the APIs, policies, and access rules configured for the product. An API can be associated with at most one open product.
153+
1. Check first for the existence of a product that includes the API but doesn't require a subscription (an *open* product). If the open product exists, handle the request in the context of the APIs, policies, and access rules configured for the open product. An API can be associated with at most one open product.
152154
1. If an open product including the API isn't found, check whether the API requires a subscription. If a subscription isn't required, handle the request in the context of that API and operation.
153155
1. If no configured product or API is found, then access is denied (401 Access denied error).
154156

@@ -160,16 +162,16 @@ The following table summarizes how the gateway handles API requests with or with
160162
|All products assigned to API require subscription |API requires subscription |API call with subscription key |API call without subscription key | Typical scenarios |
161163
|---------|---------|---------|---------|----|
162164
|✔️ | ✔️ | Access allowed:<br/><br/>• Product-scoped key<br/>• API-scoped key<br/>• All APIs-scoped key<br/>• Service-scoped key<br/><br/>Access denied:<br/><br/>• Other key not scoped to applicable product or API | Access denied | Protected API access using product-scoped or API-scoped subscription |
163-
|✔️ || Access allowed:<br/><br/>• Product-scoped key<br/>• API-scoped key<br/>• All APIs-scoped key<br/>• Service-scoped key<br/><br/>Access denied:<br/><br/>• Other key not scoped to applicable product or API | Access allowed (API context) | • Protected API access with product-scoped subscription<br/><br/>• Anonymous access to API. If anonymous access isn’t intended, configure API-level policies to enforce authentication and authorization. |
165+
|✔️ || Access allowed:<br/><br/>• Product-scoped key<br/>• API-scoped key<br/>• All APIs-scoped key<br/>• Service-scoped key<br/>• Other key not scoped to applicable product or API | Access allowed (API context) | • Protected API access with product-scoped subscription<br/><br/>• Anonymous access to API. If anonymous access isn’t intended, configure API-level policies to enforce authentication and authorization. |
164166
|❌<sup>1</sup> | ✔️ | Access allowed:<br/><br/>• Product-scoped key<br/>• API-scoped key<br/>• All APIs-scoped key<br/>• Service-scoped key<br/><br/>Access denied:<br/><br/>• Other key not scoped to applicable product or API | Access allowed (open product context) | • Protected API access with API-scoped subscription<br/><br/>• Anonymous access to API. If anonymous access isn’t intended, configure with product policies to enforce authentication and authorization |
165-
|❌<sup>1</sup> || Access allowed:<br/><br/>• Product-scoped key<br/>• API-scoped key<br/>• All APIs-scoped key<br/>• Service-scoped key<br/><br/>Access denied:<br/><br/>• Other key not scoped to applicable product or API | Access allowed (open product context) | Anonymous access to API. If anonymous access isn’t intended, configure with product policies to enforce authentication and authorization |
167+
|❌<sup>1</sup> || Access allowed:<br/><br/>• Product-scoped key<br/>• API-scoped key<br/>• All APIs-scoped key<br/>• Service-scoped key<br/>• Other key not scoped to applicable product or API | Access allowed (open product context) | Anonymous access to API. If anonymous access isn’t intended, configure with product policies to enforce authentication and authorization |
166168

167169
<sup>1</sup> An open product exists that's associated with the API.
168170

169171
### Considerations
170172

171173
- API access in a product context is the same, whether the product is published or not. Unpublishing the product hides it from the developer portal, but it doesn’t invalidate new or existing subscription keys.
172-
- Even if a product or API doesn't require a subscription, a valid key from an active subscription that enables access to the product or API can still be used.
174+
- If an API doesn't require subscription authentication, any API request that includes a subscription key is treated the same as a request without a subscription key. The subscription key is ignored.
173175
- API access "context" means the policies and access controls that are applied at a particular scope (for example, API or product).
174176

175177
## Next steps

articles/api-management/azure-openai-api-from-specification.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,7 @@ In addition to the `azure-openai-token-limit` and `azure-openai-emit-token-metri
136136

137137
## Related content
138138

139+
* [Generative AI gateway capabilities in Azure API Management](genai-gateway-capabilities.md)
139140
* [API Management policy reference](api-management-policies.md)
140-
* [Azure OpenAI Service as a central capability with Azure API Management](/samples/azure/enterprise-azureai/enterprise-azureai/)
141-
* [Azure API Management - Azure OpenAI sample](https://github.com/galiniliev/apim-azure-openai-sample)
142141

143142
[!INCLUDE [api-management-define-api-topics.md](../../includes/api-management-define-api-topics.md)]

articles/api-management/quickstart-terraform.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,9 @@ In this article, you learn how to:
8282

8383
[!INCLUDE [terraform-apply-plan.md](~/azure-dev-docs-pr/articles/terraform/includes/terraform-apply-plan.md)]
8484

85+
> [!NOTE]
86+
> It can take 30 to 40 minutes to create and activate an API Management service.
87+
8588
## Verify the results
8689

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

0 commit comments

Comments
 (0)