Skip to content

Commit 313916e

Browse files
Merge branch 'main' of https://github.com/MicrosoftDocs/azure-docs-pr into nexus-bmm-run-read-samples
2 parents bc2a8d9 + e0a88f0 commit 313916e

File tree

2,596 files changed

+21997
-34264
lines changed

Some content is hidden

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

2,596 files changed

+21997
-34264
lines changed

.openpublishing.redirection.json

Lines changed: 700 additions & 5 deletions
Large diffs are not rendered by default.

articles/active-directory-b2c/add-captcha.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,21 @@ You need more claims to enable CAPTCHA in your custom policy:
118118
<DisplayName>Flag indicating that the captcha was successfully solved</DisplayName>
119119
<DataType>boolean</DataType>
120120
</ClaimType>
121+
122+
<ClaimType Id="mfaCaptchaEnabled">
123+
<DisplayName>flag used to control captcha enabled in MFA</DisplayName>
124+
<DataType>string</DataType>
125+
</ClaimType>
126+
127+
<ClaimType Id="signupCaptchaEnabled">
128+
<DisplayName>flag used to control captcha enabled during signup</DisplayName>
129+
<DataType>string</DataType>
130+
</ClaimType>
131+
132+
<ClaimType Id="signinCaptchaEnabled">
133+
<DisplayName>flag used to control captcha enabled during signin</DisplayName>
134+
<DataType>string</DataType>
135+
</ClaimType>
121136
...
122137
<!--<ClaimsSchema>-->
123138
```
@@ -314,6 +329,58 @@ To enable CAPTCHA in MFA flow, you need to make an update in two technical profi
314329
...
315330
</TechnicalProfile>
316331
```
332+
333+
### Enable CAPTCHA feature flag
334+
335+
To enforce CAPTCHA during sign-up, sign-in, or MFA, you need to add a technical profile that enables a feature flag for each scenario, then call the technical profile in the user journey.
336+
337+
1. In the *TrustFrameworkBase.XML* file, locate the `ClaimsProviders` element and add the claims provider by using the following code:
338+
339+
```xml
340+
<!--<ClaimsProvider>-->
341+
...
342+
<ClaimsProvider>
343+
344+
<DisplayName>Set Feature Flags</DisplayName>
345+
346+
<TechnicalProfiles>
347+
348+
<TechnicalProfile Id="SetFeatureDefaultValue">
349+
<DisplayName>Set Feature Flags</DisplayName>
350+
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
351+
<OutputClaims>
352+
<OutputClaim ClaimTypeReferenceId="signupCaptchaEnabled" DefaultValue="true" />
353+
<OutputClaim ClaimTypeReferenceId="signinCaptchaEnabled" DefaultValue="true" />
354+
<OutputClaim ClaimTypeReferenceId="mfaCaptchaEnabled" DefaultValue="true" />
355+
</OutputClaims>
356+
</TechnicalProfile>
357+
</TechnicalProfiles>
358+
</ClaimsProvider>
359+
...
360+
<!--<ClaimsProviders>-->
361+
```
362+
363+
2. Set `DefaultValue` to true or false depending on the CAPTCHA scenario
364+
365+
3. Add the feature flags technical profile to the user journey then update the order of the rest of the orchestration steps.
366+
367+
```xml
368+
<!--<UserJourneys>-->
369+
...
370+
<UserJourney Id="SignUpOrSignIn">
371+
<OrchestrationSteps>
372+
373+
<!--Add this orchestration step-->
374+
<OrchestrationStep Order="1" Type="ClaimsExchange">
375+
<ClaimsExchanges>
376+
<ClaimsExchange Id="SetFeatureDefaultValue" TechnicalProfileReferenceId="SetFeatureDefaultValue" />
377+
</ClaimsExchanges>
378+
</OrchestrationStep>
379+
...
380+
<!--<UserJourneys>-->
381+
```
382+
383+
317384
## Upload the custom policy files
318385

319386
Use the steps in [Upload the policies](tutorial-create-user-flows.md?pivots=b2c-custom-policy&branch=pr-en-us-260336#upload-the-policies) to upload your custom policy files.

articles/active-directory-b2c/tutorial-create-user-flows.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,10 +210,12 @@ Next, specify that the application should be treated as a public client:
210210
1. In the left menu, under **Manage**, select **Authentication**.
211211
1. Under **Advanced settings**, in the **Allow public client flows** section, set **Enable the following mobile and desktop flows** to **Yes**.
212212
1. Select **Save**.
213-
1. Ensure that **"allowPublicClient": true** is set in the application manifest:
213+
1. Ensure that **"isFallbackPublicClient": true** is set in the application manifest:
214214
1. In the left menu, under **Manage**, select **Manifest** to open application manifest.
215+
1. Switch from the **Microsoft Graph App Manifest (New)** tab to the **AAD Graph App Manifest (Deprecating Soon)** tab.
215216
1. Find **allowPublicClient** key and ensure its value is set to **true**.
216217

218+
217219
Now, grant permissions to the API scope you exposed earlier in the *IdentityExperienceFramework* registration:
218220

219221
1. In the left menu, under **Manage**, select **API permissions**.

articles/active-directory-b2c/whats-new-docs.md

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "What's new in Azure Active Directory business-to-customer (B2C)"
33
description: "New and updated documentation for the Azure Active Directory business-to-customer (B2C)."
4-
ms.date: 01/10/2025
4+
ms.date: 02/04/2025
55
ms.service: azure-active-directory
66
ms.subservice: b2c
77
ms.topic: whats-new
@@ -17,6 +17,12 @@ manager: CelesteDG
1717

1818
Welcome to what's new in Azure Active Directory B2C documentation. This article lists new and significantly updated docs from the past three months. To learn what's new with the B2C service, see [What's new in Microsoft Entra ID](../active-directory/fundamentals/whats-new.md), [Azure AD B2C developer release notes](custom-policy-developer-notes.md) and [What's new in Microsoft Entra External ID](/entra/external-id/whats-new-docs).
1919

20+
## January 2025
21+
22+
### Updated articles
23+
24+
- [Azure Active Directory B2C service limits and restrictions](service-limits.md) - Updated limits
25+
2026
## December 2024
2127

2228
### Updated articles
@@ -29,12 +35,3 @@ Welcome to what's new in Azure Active Directory B2C documentation. This article
2935

3036
- [Azure Active Directory B2C: Region availability & data residency](data-residency.md) - Updated data residency location
3137

32-
## October 2024
33-
34-
### Updated articles
35-
36-
- [Secure APIs used for API connectors in Azure AD B2C](secure-rest-api.md) - Flow updates
37-
- [Application types that can be used in Active Directory B2C](application-types.md) - Implicit grant flow updates
38-
- [Configure authentication in a sample single-page application by using Azure AD B2C](configure-authentication-sample-spa-app.md) - Implicit grant flow updates
39-
- [Single-page application sign-in using the OAuth 2.0 implicit flow in Azure Active Directory B2C](implicit-flow-single-page-application.md) - Implicit grant flow updates
40-
- [Register a single-page application in Azure Active Directory B2C](tutorial-register-spa.md) - Implicit grant flow updates

articles/api-management/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -703,3 +703,5 @@
703703
href: /answers/tags/29/azure-api-management
704704
- name: Stack Overflow
705705
href: https://stackoverflow.com/questions/tagged/azure-api-management
706+
- name: aka.ms/apimlove
707+
href: https://aka.ms/apimlove

articles/api-management/api-management-configuration-repository-git.md

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ ms.author: danlep
1313

1414
[!INCLUDE [premium-dev-standard-basic.md](../../includes/api-management-availability-premium-dev-standard-basic.md)]
1515

16+
> [!IMPORTANT]
17+
> Starting March 15, 2025, Azure API Management will [retire](breaking-changes/git-configuration-retirement-march-2025.md) the ability to manage the configuration of your service instance using the built-in Git repository. If you plan to continue using a Git repository to manage the configuration of your service instance after the retirement date, update your configuration management to use a different solution such as APIOps and your own Git repository implementation.
18+
1619
Each API Management service instance maintains a configuration database that contains information about the configuration and metadata for the service instance. Changes can be made to the service instance by changing a setting in the Azure portal, using Azure tools such as Azure PowerShell or the Azure CLI, or making a REST API call. In addition to these methods, you can manage your service instance configuration using Git, enabling scenarios such as:
1720

1821
* **Configuration versioning** - Download and store different versions of your service configuration
@@ -42,7 +45,7 @@ This article describes how to enable and use Git to manage your service configur
4245

4346
1. Navigate to your API Management instance in the [Azure portal](https://portal.azure.com/).
4447

45-
1. In the left menu, under **Deployment and infrastructure**, select **Repository**.
48+
1. In the left menu, under **Deployment + infrastructure**, select **Repository**.
4649

4750
:::image type="content" source="media/api-management-configuration-repository-git/api-management-enable-git.png" alt-text="Screenshot showing how to access Git configuration for API Management.":::
4851

@@ -67,7 +70,10 @@ For information on saving the service configuration using the REST API, see [Ten
6770

6871
## Get access credentials
6972

70-
To clone a repository, in addition to the URL to your repository, your need a username and a password.
73+
To clone a repository, in addition to the URL to your repository, you need a username and a password.
74+
75+
> [!CAUTION]
76+
> Using username and password credentials with a Git repository can pose security risks. Store your password securely and rotate it regularly. Don't store your credentials in plain text in code or configuration files.
7177
7278
1. On the **Repository** page, select **Access credentials** near the top of the page.
7379

@@ -91,19 +97,19 @@ git clone https://{name}.scm.azure-api.net/
9197

9298
Provide the username and password when prompted.
9399

94-
If you receive any errors, try modifying your `git clone` command to include the user name and password, as shown in the following example.
100+
If you receive any errors, try modifying your `git clone` command to include the username, as shown in the following example. Provide the password when prompted.
95101

96102
```
97-
git clone https://username:password@{name}.scm.azure-api.net/
103+
git clone https://username@{name}.scm.azure-api.net/
98104
```
99105

100-
If this provides an error, try URL encoding the password portion of the command. One quick way to do this is to open Visual Studio, and issue the following command in the **Immediate Window**. To open the **Immediate Window**, open any solution or project in Visual Studio (or create a new empty console application), and choose **Windows**, **Immediate** from the **Debug** menu.
106+
If this provides an error, try URL encoding the password and pass it in the command. One quick way to do this is to open Visual Studio, and issue the following command in the **Immediate Window**. To open the **Immediate Window**, open any solution or project in Visual Studio (or create a new empty console application), and choose **Windows**, **Immediate** from the **Debug** menu.
101107

102108
```
103109
?System.Net.WebUtility.UrlEncode("password from the Azure portal")
104110
```
105111

106-
Use the encoded password along with your user name and repository location to construct the git command.
112+
Use the encoded password along with your username and repository location to construct the git command.
107113

108114
```
109115
git clone https://username:url encoded password@{name}.scm.azure-api.net/
@@ -205,7 +211,7 @@ These files can be created, deleted, edited, and managed on your local file syst
205211
> * [Subscriptions](/rest/api/apimanagement/current-ga/subscription)
206212
> * Named values
207213
> * Developer portal entities other than styles and templates
208-
> * Policy Fragments
214+
> * Policy fragments
209215
>
210216
211217
### Root api-management folder
@@ -305,7 +311,8 @@ The `templates` folder contains configuration for the [email templates](api-mana
305311
* `<template name>\configuration.json` - Configuration for the email template.
306312
* `<template name>\body.html` - Body of the email template.
307313

308-
## Next steps
314+
## Related content
315+
309316
For information on other ways to manage your service instance, see:
310317

311318
* [Azure PowerShell cmdlet reference](/powershell/module/az.apimanagement)

articles/api-management/api-management-howto-api-inspector.md

Lines changed: 76 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ Follow these steps to trace an API request in the test console in the portal. Th
7474

7575
The following high level steps are required to enable tracing for a request to API Management when using `curl`, a REST client such as Visual Studio Code with the REST Client extension, or a client app. Currently these steps must be followed using the [API Management REST API](/rest/api/apimanagement):
7676

77-
1. Obtain a token credential for tracing.
77+
1. Obtain a debug token for tracing.
7878
1. Add the token value in an `Apim-Debug-Authorization` request header to the API Management gateway.
7979
1. Obtain a trace ID in the `Apim-Trace-Id` response header.
8080
1. Retrieve the trace corresponding to the trace ID.
@@ -85,7 +85,7 @@ Detailed steps follow.
8585
> * These steps require API Management REST API version 2023-05-01-preview or later. You must be assigned the Contributor or higher role on the API Management instance to call the REST API.
8686
> * For information about authenticating to the REST API, see [Azure REST API reference](/rest/api/azure).
8787
88-
1. **Obtain a token credential** - Call the API Management gateway's [List debug credentials](/rest/api/apimanagement/gateway/list-debug-credentials) API. In the URI, enter "managed" for the instance's managed gateway in the cloud, or the gateway ID for a self-hosted gateway. For example, to obtain trace credentials for the instance's managed gateway, use a request similar to the following:
88+
1. **Obtain a debug token** - Call the API Management gateway's [List debug credentials](/rest/api/apimanagement/gateway/list-debug-credentials) API. In the URI, enter "managed" for the instance's managed gateway in the cloud, or the gateway ID for a self-hosted gateway. For example, to obtain trace credentials for the instance's managed gateway, use a request similar to the following:
8989

9090
```http
9191
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/gateways/managed/listDebugCredentials?api-version=2023-05-01-preview
@@ -96,12 +96,22 @@ Detailed steps follow.
9696
```json
9797
{
9898
"credentialsExpireAfter": PT1H,
99-
"apiId": ""/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiName}",
99+
"apiId": ""/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}",
100100
"purposes": ["tracing"]
101101
}
102102
```
103+
104+
> [!NOTE]
105+
> The `apiId` can only be pulled from the full resource ID, not the name displayed in the portal.
106+
107+
Get apiId:
108+
109+
110+
```azurecli
111+
az apim api list --resource-group <resource-group> --service-name <service-name> -o table
112+
```
103113
104-
The token credential is returned in the response, similar to the following:
114+
The debug credential is returned in the response, similar to the following:
105115
106116
```json
107117
{
@@ -112,18 +122,20 @@ Detailed steps follow.
112122
1. **Add the token value in a request header** - To enable tracing for a request to the API Management gateway, send the token value in an `Apim-Debug-Authorization` header. For example, to trace a call to the Petstore API that you imported in a previous tutorial, you might use a request similar to the following:
113123
114124
```bash
115-
curl -v https://apim-hello-world.azure-api.net/pet/1 HTTP/1.1 -H "Ocp-Apim-Subscription-Key: <subscription-key>" -H "Apim-Debug-Authorization: aid=api-name&......."
125+
curl -v https://apim-hello-world.azure-api.net/pet/1 HTTP/1.1 \
126+
-H "Ocp-Apim-Subscription-Key: <subscription-key>" \
127+
-H "Apim-Debug-Authorization: aid=api-name&......."
116128
```
117129
118-
1. Depending on the token, the response contains one of the following headers:
119-
* If the token is valid, the response includes an `Apim-Trace-Id` header whose value is the trace ID, similar to the following:
130+
1. **Evaluate the response** - The response can contain one of the following headers depending on the state of the debug token:
131+
* If the debug token is valid, the response includes an `Apim-Trace-Id` header whose value is the trace ID, similar to the following:
120132
121133
```http
122134
Apim-Trace-Id: 0123456789abcdef....
123135
```
124136
125-
* If the token is expired, the response includes an `Apim-Debug-Authorization-Expired` header with information about expiration date.
126-
* If the token was obtained for a different API, the response includes an `Apim-Debug-Authorization-WrongAPI` header with an error message.
137+
* If the debug token is expired, the response includes an `Apim-Debug-Authorization-Expired` header with information about expiration date.
138+
* If the debug token was obtained for a different API, the response includes an `Apim-Debug-Authorization-WrongAPI` header with an error message.
127139
128140
1. **Retrieve the trace** - Pass the trace ID obtained in the previous step to the gateway's [List trace](/rest/api/apimanagement/gateway/list-trace) API. For example, to retrieve the trace for the managed gateway, use a request similar to the following:
129141
@@ -142,6 +154,61 @@ Detailed steps follow.
142154
The response body contains the trace data for the previous API request to the gateway. The trace is similar to the trace you can see by tracing a call in the portal's test console.
143155
144156
157+
### Example `.http` file for VS Code REST Client extension
158+
159+
To help automate these steps with the [Visual Studio Code REST Client](https://marketplace.visualstudio.com/items?itemName=humao.rest-client) extension, you can use the following example `.http` file:
160+
161+
```http
162+
@subscriptionId = // Your subscription ID
163+
@resourceGroup = // Your resource group
164+
@apimName = // Your API Management service name
165+
@clientId = // Client ID from an app registration for authentication
166+
@clientSecret = // Client secret from app registration
167+
@externalHost = // The host name of the App Gateway or the fully qualified gateway URL
168+
@subscriptionKey = // API Management subscription key
169+
@apiEndPoint = // API URL
170+
@requestBody = // Data to send
171+
@tenantId = // Tenant ID
172+
173+
POST https://login.microsoftonline.com/{{tenandId}}/oauth2/token
174+
content-type: application/x-www-form-urlencoded
175+
176+
grant_type=client_credentials&client_id={{clientId}}&client_secret={{clientSecret}}&resource=https%3A%2F%2Fmanagement.azure.com%2F
177+
178+
###
179+
@authToken = {{login.response.body.$.access_token}}
180+
###
181+
# @name listDebugCredentials
182+
POST https://management.azure.com/subscriptions/{{subscriptionId}}/resourceGroups/{{resourceGroup}}/providers/Microsoft.ApiManagement/service/{{apimName}}/gateways/managed/listDebugCredentials?api-version=2023-05-01-preview
183+
Authorization: Bearer {{authToken}}
184+
Content-Type: application/json
185+
{
186+
"credentialsExpireAfter": "PT1H",
187+
"apiId": "/subscriptions/{{subscriptionId}}/resourceGroups/{{resourceGroup}}/providers/Microsoft.ApiManagement/service/{{apimName}}/apis/{{apiId}}",
188+
"purposes": ["tracing"]
189+
}
190+
191+
###
192+
@debugToken = {{listDebugCredentials.response.body.$.token}}
193+
194+
###
195+
# @name callApi
196+
curl -k -H "Apim-Debug-Authorization: {{debugToken}}" -H 'Host: {{externalHost}}' -H 'Ocp-Apim-Subscription-Key: {{subscriptionKey}}' -H 'Content-Type: application/json' '{{apiEndPoint}}' -d '{{requestBody}}'
197+
198+
###
199+
@traceId = {{callApi.response.headers.Apim-Trace-Id}}
200+
201+
###
202+
# @name getTrace
203+
POST https://management.azure.com/subscriptions/{{subscriptionId}}/resourceGroups/{{resourceGroup}}/providers/Microsoft.ApiManagement/service/{{apimName}}/gateways/managed/listTrace?api-version=2024-06-01-preview
204+
Authorization: Bearer {{authToken}}
205+
Content-Type: application/json
206+
207+
{
208+
"traceId": "{{traceId}}"
209+
}
210+
```
211+
145212
For information about customizing trace information, see the [trace](trace-policy.md) policy.
146213

147214
## Next steps

0 commit comments

Comments
 (0)