Skip to content

Commit a583a0c

Browse files
authored
Merge pull request #295196 from MicrosoftDocs/main
2/24/2025 AM Publish
2 parents 456763d + 4dd8132 commit a583a0c

File tree

62 files changed

+3981
-2130
lines changed

Some content is hidden

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

62 files changed

+3981
-2130
lines changed

articles/active-directory-b2c/add-ropc-policy.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: how-to
12-
ms.date: 09/11/2024
12+
ms.date: 02/24/2025
1313
ms.author: kengaderdus
1414
ms.subservice: b2c
1515
zone_pivot_groups: b2c-policy-type

articles/active-directory-b2c/b2clogin.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
22
title: Migrate applications and APIs to b2clogin.com
33
titleSuffix: Azure AD B2C
4-
description: Learn about using b2clogin.com in your redirect URLs for Azure Active Directory B2C.
4+
description: Learn how to update redirect URLs in Azure AD B2C applications to use b2clogin.com or a custom domain for authentication endpoints.
55

66
author: kengaderdus
77
manager: CelesteDG
88

99
ms.service: azure-active-directory
1010

1111
ms.topic: how-to
12-
ms.date: 01/26/2024
12+
ms.date: 02/26/2025
1313
ms.author: kengaderdus
1414
ms.subservice: b2c
1515

@@ -40,9 +40,9 @@ With Azure AD B2C [custom domain](./custom-domain.md) the corresponding updated
4040
- <code>https://<b>login.contoso.com</b>/\<tenant-name\>.onmicrosoft.com/<b>\<policy-name\></b>/oauth2/v2.0/authorize</code> or <code>https://<b>login.contoso.com</b>/\<tenant-name\>.onmicrosoft.com/oauth2/v2.0/authorize?<b>p=\<policy-name\></b></code> for the `/authorize` endpoint.
4141
- <code>https://<b>login.contoso.com</b>/\<tenant-name\>.onmicrosoft.com/<b>\<policy-name\></b>/oauth2/v2.0/logout</code> or <code>https://<b>login.contoso.com</b>/\<tenant-name\>.onmicrosoft.com/oauth2/v2.0/logout?<b>p=\<policy-name\></b></code> for the `/logout` endpoint.
4242

43-
## Endpoints that are not affected
43+
## Endpoints that aren't affected
4444

45-
Some customers use the shared capabilities of Microsoft Entra enterprise tenants. For example, acquiring an access token to call the [MS Graph API](microsoft-graph-operations.md#code-discussion) of the Azure AD B2C tenant.
45+
Some customers use the shared capabilities of Microsoft Entra enterprise tenants. For example, acquiring an access token to call the [MS Graph API](microsoft-graph-operations.md) of the Azure AD B2C tenant.
4646

4747
This change doesn't affect all endpoints, which don't contain a policy parameter in the URL. They're accessed only with the Microsoft Entra ID's login.microsoftonline.com endpoints, and can't be used with the *b2clogin.com*, or custom domains. The following example shows a valid token endpoint of the Microsoft identity platform:
4848

@@ -64,7 +64,6 @@ There are several modifications you might need to make to migrate your applicati
6464
* Update your Azure AD B2C applications to use *b2clogin.com*, or custom domain in their user flow and token endpoint references. The change may include updating your use of an authentication library like Microsoft Authentication Library (MSAL).
6565
* Update any **Allowed Origins** that you define in the CORS settings for [user interface customization](customize-ui-with-html.md).
6666

67-
6867
## Change identity provider redirect URLs
6968

7069
On each identity provider's website in which you've created an application, change all trusted URLs to redirect to `your-tenant-name.b2clogin.com`, or a custom domain instead of *login.microsoftonline.com*.
@@ -146,7 +145,7 @@ this.clientApplication = new UserAgentApplication(
146145
);
147146
```
148147

149-
## Next steps
148+
## Related content
150149

151150
For information about migrating OWIN-based web applications to b2clogin.com, see [Migrate an OWIN-based web API to b2clogin.com](multiple-token-endpoints.md).
152151

articles/active-directory-b2c/custom-email-mailjet.md

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

1111
ms.topic: how-to
12-
ms.date: 01/11/2024
12+
ms.date: 02/21/2025
1313
ms.author: kengaderdus
1414
ms.subservice: b2c
1515
zone_pivot_groups: b2c-policy-type
@@ -33,7 +33,7 @@ Use custom email in Azure Active Directory B2C (Azure AD B2C) to send customized
3333

3434
::: zone pivot="b2c-custom-policy"
3535

36-
Custom email verification requires the use of a third-party email provider like [Mailjet](https://www.mailjet.com/), [SendGrid](./custom-email-sendgrid.md), or [SparkPost](https://messagebird.com/email/cloud-sending?sp=true), a custom REST API, or any HTTP-based email provider (including your own). This article describes setting up a solution that uses Mailjet.
36+
Custom email verification requires the use of a third-party email provider like [Mailjet](https://www.mailjet.com/), [SendGrid](./custom-email-sendgrid.md), or [SparkPost](https://messagebird.com/support-center/omnichannel-and-connectivity/sms/sending-email-to-sms?sp=true), a custom REST API, or any HTTP-based email provider (including your own). This article describes setting up a solution that uses Mailjet.
3737

3838
## Create a Mailjet account
3939

@@ -74,7 +74,7 @@ With a Mailjet account created and the Mailjet API key stored in an Azure AD B2C
7474
1. On the Mailjet site, open the [transactional templates](https://app.mailjet.com/templates/transactional) page and select **Create a new template**.
7575
1. Select **By coding it in HTML**, and then select **Code from scratch**.
7676
1. Enter a unique template name like `Verification email`, and then select **Create**.
77-
1. In the HTML editor, paste following HTML template or use your own. The `{{var:otp:""}}` and `{{var:email:""}}` parameters will be replaced dynamically with the one-time password value and the user email address.
77+
1. In the HTML editor, paste following HTML template or use your own. The `{{var:otp:""}}` and `{{var:email:""}}` parameters are replaced dynamically with the one-time password value and the user email address.
7878

7979
```HTML
8080
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
@@ -210,7 +210,7 @@ These claims types are necessary to generate and verify the email address using
210210

211211
## Add the claims transformation
212212

213-
Next, you need a claims transformation to output a JSON string claim that will be the body of the request sent to Mailjet.
213+
Next, you need a claims transformation to output a JSON string claim that's the body of the request sent to Mailjet.
214214

215215
The JSON object's structure is defined by the IDs in dot notation of the InputParameters and the TransformationClaimTypes of the InputClaims. Numbers in the dot notation imply arrays. The values come from the InputClaims' values and the InputParameters' "Value" properties. For more information about JSON claims transformations, see [JSON claims transformations](json-transformations.md).
216216

@@ -572,9 +572,9 @@ The Localization element allows you to support multiple locales or languages in
572572
```
573573

574574

575-
## Next steps
575+
## Related content
576576

577577
- You can find an example of a [Custom email verification - DisplayControls](https://github.com/azure-ad-b2c/samples/tree/master/policies/custom-email-verifcation-displaycontrol/policy/Mailjet) custom policy on GitHub.
578578
- For information about using a custom REST API or any HTTP-based SMTP email provider, see [Define a RESTful technical profile in an Azure AD B2C custom policy](restful-technical-profile.md).
579579

580-
::: zone-end
580+
::: zone-end

articles/active-directory-b2c/custom-email-sendgrid.md

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

1111
ms.topic: how-to
12-
ms.date: 01/11/2024
12+
ms.date: 02/21/2025
1313
ms.author: kengaderdus
1414
ms.subservice: b2c
1515
zone_pivot_groups: b2c-policy-type
@@ -33,7 +33,7 @@ Use custom email in Azure Active Directory B2C (Azure AD B2C) to send customized
3333

3434
::: zone pivot="b2c-custom-policy"
3535

36-
Custom email verification requires the use of a third-party email provider like [SendGrid](https://sendgrid.com), [Mailjet](https://www.mailjet.com/), or [SparkPost](https://messagebird.com/email/cloud-sending?sp=true), a custom REST API, or any HTTP-based email provider (including your own). This article describes setting up a solution that uses SendGrid.
36+
Custom email verification requires the use of a third-party email provider like [SendGrid](https://sendgrid.com), [Mailjet](https://www.mailjet.com/), or [SparkPost](https://messagebird.com/support-center/omnichannel-and-connectivity/sms/sending-email-to-sms?sp=true), a custom REST API, or any HTTP-based email provider (including your own). This article describes setting up a solution that uses SendGrid.
3737

3838
## Create a SendGrid account
3939

@@ -42,7 +42,7 @@ If you don't already have one, start by setting up a SendGrid account. For setup
4242
Make sure you complete the section in which you [create a SendGrid API key](https://docs.sendgrid.com/for-developers/partners/microsoft-azure-2021#to-find-your-sendgrid-api-key). Record the API key for use in a later step.
4343

4444
> [!IMPORTANT]
45-
> SendGrid offers customers the ability to send emails from shared IP and [dedicated IP addresses](https://docs.sendgrid.com/ui/account-and-settings/dedicated-ip-addresses). When using dedicated IP addresses, you need to build your own reputation properly with an IP address warm-up. For more information, see [Warming Up An Ip Address](https://docs.sendgrid.com/ui/sending-email/warming-up-an-ip-address).
45+
> SendGrid offers customers the ability to send emails from shared IP and [dedicated IP addresses](https://docs.sendgrid.com/ui/account-and-settings/dedicated-ip-addresses). When using dedicated IP addresses, you need to build your own reputation properly with an IP address warm-up. For more information, see [Warming Up An IP Address](https://www.twilio.com/docs/sendgrid/ui/sending-email/warming-up-an-ip-address).
4646
4747
## Create Azure AD B2C policy key
4848

@@ -558,9 +558,9 @@ The Localization element allows you to support multiple locales or languages in
558558
```
559559

560560

561-
## Next steps
561+
## Related content
562562

563563
- Find an example of [Custom email verification - DisplayControls custom policy](https://github.com/azure-ad-b2c/samples/tree/master/policies/custom-email-verifcation-displaycontrol/policy/SendGrid) on GitHub.
564564
- Learn how to use a custom REST API or any HTTP-based SMTP email provider, see [Define a RESTful technical profile in an Azure AD B2C custom policy](restful-technical-profile.md).
565565

566-
::: zone-end
566+
::: zone-end

articles/active-directory-b2c/enable-authentication-python-web-app.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Enable authentication in your own Python web application using Azure Active Directory B2C
2+
title: Enable authentication in your own Python web application using Azure AD B2C
33
description: This article explains how to enable authentication in your own Python web application using Azure AD B2C
44
titleSuffix: Azure AD B2C
55

@@ -8,23 +8,23 @@ manager: CelesteDG
88
ms.service: azure-active-directory
99
ms.custom: devx-track-python
1010
ms.topic: how-to
11-
ms.date: 01/11/2024
11+
ms.date: 02/21/2025
1212
ms.author: kengaderdus
1313
ms.subservice: b2c
1414
#Customer intent: As a Python web application developer, I want to enable Azure Active Directory B2C authentication in my application, so that users can sign in, sign out, update their profile, and reset their password using Azure AD B2C user flows.
1515
---
1616

1717
# Enable authentication in your own Python web application using Azure Active Directory B2C
1818

19-
In this article, you'll learn how to add Azure Active Directory B2C (Azure AD B2C) authentication in your own Python web application. You'll enable users to sign in, sign out, update profile and reset password using Azure AD B2C user flows. This article uses [Microsoft Authentication Library (MSAL) for Python](https://github.com/AzureAD/microsoft-authentication-library-for-python/tree/main) to simplify adding authentication to your Python web application.
19+
In this article, you learn how to add Azure Active Directory B2C (Azure AD B2C) authentication in your own Python web application. You enable users to sign in, sign out, update profile and reset password using Azure AD B2C user flows. This article uses [Microsoft Authentication Library (MSAL) for Python](https://github.com/AzureAD/microsoft-authentication-library-for-python/tree/main) to simplify adding authentication to your Python web application.
2020

2121
The aim of this article is to substitute the sample application you used in [Configure authentication in a sample Python web application by using Azure AD B2C](configure-authentication-sample-python-web-app.md) with your own Python application.
2222

23-
This article uses [Python 3.9+](https://www.python.org/) and [Flask 2.1](https://flask.palletsprojects.com/en/2.1.x/) to create a basic web app. The application's views uses [Jinja2 templates](https://flask.palletsprojects.com/en/2.1.x/templating/).
23+
This article uses [Python 3.9+](https://www.python.org/) and [Flask 2.1](https://flask.palletsprojects.com/en/stable/installation/) to create a basic web app. The application's views use [Jinja2 templates](https://flask.palletsprojects.com/en/2.1.x/templating/).
2424

2525
## Prerequisites
2626

27-
- Complete the steps in [Configure authentication in a sample Python web application by using Azure AD B2C](configure-authentication-sample-python-web-app.md). You'll create Azure AD B2C user flows and register a web application in Azure portal.
27+
- Complete the steps in [Configure authentication in a sample Python web application by using Azure AD B2C](configure-authentication-sample-python-web-app.md). You create Azure AD B2C user flows and register a web application in Azure portal.
2828
- Install [Python](https://www.python.org/downloads/) 3.9 or above
2929
- [Visual Studio Code](https://code.visualstudio.com/) or another code editor
3030
- Install the [Python extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python) for Visual Studio Code
@@ -126,7 +126,7 @@ py -m pip install -r requirements.txt
126126

127127
## Step 3: Build app UI components
128128

129-
Flask is a lightweight Python framework for web applications that provides the basics for URL routing and page rendering. It leverages Jinja2 as its template engine to render the content of your app. For more information, check out the [template designer documentation](https://jinja.palletsprojects.com/en/3.1.x/templates/). In this section, you add the required templates that provide the basic functionality of your web app.
129+
Flask is a lightweight Python framework for web applications that provides the basics for URL routing and page rendering. It uses Jinja2 as its template engine to render the content of your app. For more information, check out the [template designer documentation](https://jinja.palletsprojects.com/en/3.1.x/templates/). In this section, you add the required templates that provide the basic functionality of your web app.
130130

131131
### Step 3.1 Create a base template
132132

@@ -475,6 +475,6 @@ To change the host name and/or port number, use the `args` array of the `launch.
475475
476476
477477
478-
## Next steps
478+
## Related content
479479
480-
- Learn how to [customize and enhance the Azure AD B2C authentication experience for your web app](enable-authentication-python-web-app-options.md)
480+
- Learn how to [customize and enhance the Azure AD B2C authentication experience for your web app](enable-authentication-python-web-app-options.md)

articles/active-directory-b2c/microsoft-graph-operations.md

Lines changed: 2 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -218,65 +218,11 @@ You can manage Microsoft Graph in two ways:
218218
> [!NOTE]
219219
> Delegated permissions for users signing in through user flows or custom policies can't be used against delegated permissions for Microsoft Graph API.
220220
221-
## Code sample: How to programmatically manage user accounts
222-
223-
This code sample is a .NET Core console application that uses the [Microsoft Graph SDK](/graph/sdks/sdks-overview) to interact with Microsoft Graph API. Its code demonstrates how to call the API to programmatically manage users in an Azure AD B2C tenant.
224-
You can [download the sample archive](https://github.com/Azure-Samples/ms-identity-dotnetcore-b2c-account-management/archive/master.zip) (*.zip), [browse the repository](https://github.com/Azure-Samples/ms-identity-dotnetcore-b2c-account-management) on GitHub, or clone the repository:
225-
226-
```cmd
227-
git clone https://github.com/Azure-Samples/ms-identity-dotnetcore-b2c-account-management.git
228-
```
229-
230-
After you've obtained the code sample, configure it for your environment and then build the project:
231-
232-
1. Open the project in [Visual Studio](https://visualstudio.microsoft.com) or [Visual Studio Code](https://code.visualstudio.com).
233-
1. Open `src/appsettings.json`.
234-
1. In the `appSettings` section, replace `your-b2c-tenant` with the name of your tenant, and `Application (client) ID` and `Client secret` with the values for your management application registration. For more information, see [Register a Microsoft Graph Application](microsoft-graph-get-started.md).
235-
1. Open a console window within your local clone of the repo, switch into the `src` directory, then build the project:
236-
237-
```console
238-
cd src
239-
dotnet build
240-
```
241-
242-
1. Run the application with the `dotnet` command:
243-
244-
```console
245-
dotnet bin/Debug/netcoreapp3.1/b2c-ms-graph.dll
246-
```
247-
248-
The application displays a list of commands you can execute. For example, get all users, get a single user, delete a user, update a user's password, and bulk import.
249-
250-
> [!NOTE]
251-
> For the application to update user account passwords, you need to [grant the user administrator role](microsoft-graph-get-started.md#optional-grant-user-administrator-role) to the application.
252-
253-
### Code discussion
254-
255-
The sample code uses the [Microsoft Graph SDK](/graph/sdks/sdks-overview), which is designed to simplify building high-quality, efficient, and resilient applications that access Microsoft Graph.
256-
257-
Any request to the Microsoft Graph API requires an access token for authentication. The solution makes use of the [Microsoft.Graph.Auth](https://www.nuget.org/packages/Microsoft.Graph.Auth/) NuGet package that provides an authentication scenario-based wrapper of the Microsoft Authentication Library (MSAL) for use with the Microsoft Graph SDK.
258-
259-
The `RunAsync` method in the _Program.cs_ file:
260-
261-
1. Reads application settings from the _appsettings.json_ file
262-
1. Initializes the auth provider using [OAuth 2.0 client credentials grant](../active-directory/develop/v2-oauth2-client-creds-grant-flow.md) flow. With the client credentials grant flow, the app is able to get an access token to call the Microsoft Graph API.
263-
1. Sets up the Microsoft Graph service client with the auth provider:
264-
265-
The previously published sample code isn't available at this time.
266-
<!--:::code language="csharp" source="~/ms-identity-dotnetcore-b2c-account-management/src/Program.cs" id="ms_docref_set_auth_provider":::-->
267-
268-
The initialized _GraphServiceClient_ is then used in _UserService.cs_ to perform the user management operations. For example, getting a list of the user accounts in the tenant:
269-
270-
The previously published sample code isn't available at this time.
271-
<!--:::code language="csharp" source="~/ms-identity-dotnetcore-b2c-account-management/src/Services/UserService.cs" id="ms_docref_get_list_of_user_accounts":::-->
272-
273-
[Make API calls using the Microsoft Graph SDKs](/graph/sdks/create-requests) includes information on how to read and write information from Microsoft Graph, use `$select` to control the properties returned, provide custom query parameters, and use the `$filter` and `$orderBy` query parameters.
274-
275221
## Related content
276-
- For code samples in JavaScript and Node.js, please see: [Manage B2C user accounts with MSAL.js and Microsoft Graph SDK](https://github.com/Azure-Samples/ms-identity-b2c-javascript-nodejs-management)
222+
- Explore [Microsoft Graph API](/graph/overview)
277223
- Explore [Graph Explorer](https://aka.ms/ge) that lets you try Microsoft Graph APIs and learn about them.
278224

279225
<!-- LINK -->
280226

281227
[graph-objectIdentity]: /graph/api/resources/objectidentity
282-
[graph-user]: /graph/api/resources/user
228+
[graph-user]: /graph/api/resources/user

articles/api-management/backends.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ After creating a backend, you can reference the backend in your APIs. Use th
5252
[...]
5353
<policies/>
5454
```
55+
> [!NOTE]
56+
> Alternatively, you can use `base-url`. Usually, the format is `https://backend.com/api`. Avoid adding a slash at the end to prevent misconfigurations. Typically, the `base-url` and HTTP(S) endpoint value in the backend should match to enable seamless integration between frontend and backend. Note that API Management instances append the backend service name to the `base-url`.
5557
5658
You can use conditional logic with the `set-backend-service` policy to change the effective backend based on location, gateway that was called, or other expressions.
5759

0 commit comments

Comments
 (0)