Skip to content

Commit 2426912

Browse files
authored
Merge pull request #220072 from MicrosoftDocs/main
Merge main to live, 4 AM
2 parents 200e602 + f67cbdc commit 2426912

File tree

271 files changed

+3030
-2288
lines changed

Some content is hidden

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

271 files changed

+3030
-2288
lines changed

articles/active-directory/develop/tutorial-blazor-server.md

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ ms.author: jricketts
66
ms.service: active-directory
77
ms.subservice: develop
88
ms.topic: tutorial
9-
ms.date: 09/15/2020
9+
ms.date: 11/29/2022
10+
ms.custom: "engagement-fy23"
1011
#Customer intent: As a developer, I want to add authentication to a Blazor app.
1112
---
1213

@@ -19,36 +20,41 @@ We also have a tutorial for [Blazor WASM](tutorial-blazor-webassembly.md).
1920
In this tutorial:
2021

2122
> [!div class="checklist"]
22-
> * Create a new Blazor Server app configured to use Azure Active Directory (Azure AD) for authentication
23-
> * Handle both authentication and authorization using Microsoft.Identity.Web
24-
> * Retrieve data from a protected web API, Microsoft Graph
23+
>
24+
> - Create a new Blazor Server app configured to use Azure AD for authentication
25+
> - Handle both authentication and authorization using `Microsoft.Identity.Web`
26+
> - Retrieve data from a protected web API, Microsoft Graph
2527
2628
## Prerequisites
2729

2830
- [.NET Core 3.1 SDK](https://dotnet.microsoft.com/download/dotnet-core/3.1)
29-
- An Azure AD tenant where you can register an app. If you don’t have access to an Azure AD tenant, you can get one by registering with the [Microsoft 365 Developer Program](https://developer.microsoft.com/microsoft-365/dev-program) or by creating an [Azure free account](https://azure.microsoft.com/free).
31+
- An Azure account that has an active subscription. [Create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
32+
- The Azure account must have permission to manage applications in Azure Active Directory (Azure AD). Any of the following Azure AD roles include the required permissions:
33+
- [Application administrator](../roles/permissions-reference.md#application-administrator)
34+
- [Application developer](../roles/permissions-reference.md#application-developer)
35+
- [Cloud application administrator](../roles/permissions-reference.md#cloud-application-administrator)
3036

3137
## Register the app in the Azure portal
3238

33-
Every app that uses Azure Active Directory (Azure AD) for authentication must be registered with Azure AD. Follow the instructions in [Register an application](quickstart-register-app.md) with these additions:
39+
Every app that uses Azure AD for authentication must be registered with Azure AD. Follow the instructions in [Register an application](quickstart-register-app.md) with these additions:
3440

3541
- For **Supported account types**, select **Accounts in this organizational directory only**.
36-
- Leave the **Redirect URI** drop down set to **Web** and enter `https://localhost:5001/signin-oidc`. The default port for an app running on Kestrel is 5001. If the app is available on a different port, specify that port number instead of `5001`.
42+
- Leave the **Redirect URI** drop down set to **Web** and enter `https://localhost:5001/signin-oidc`. The default port for an app running on Kestrel is `5001`. If the app is available on a different port, specify that port number instead of `5001`.
3743

3844
Under **Manage**, select **Authentication** > **Implicit grant and hybrid flows**. Select **ID tokens**, and then select **Save**.
3945

4046
Finally, because the app calls a protected API (in this case Microsoft Graph), it needs a client secret in order to verify its identity when it requests an access token to call that API.
4147

4248
1. Within the same app registration, under **Manage**, select **Certificates & secrets** and then **Client secrets**.
4349
2. Create a **New client secret** that never expires.
44-
3. Make note of the secret's **Value** as you will use it in the next step. You can’t access it again once you navigate away from this pane. However, you can recreate it as needed.
50+
3. Make note of the secret's **Value** as you'll use it in the next step. You can’t access it again once you navigate away from this pane. However, you can recreate it as needed.
4551

4652
## Create the app using the .NET CLI
4753

48-
Run the following command to download the templates for Microsoft.Identity.Web, which we will make use of in this tutorial.
54+
Run the following command to download the templates for `Microsoft.Identity.Web`, which we'll make use of in this tutorial.
4955

5056
```dotnetcli
51-
dotnet new --install Microsoft.Identity.Web.ProjectTemplates
57+
dotnet new install Microsoft.Identity.Web.ProjectTemplates
5258
```
5359

5460
Then, run the following command to create the application. Replace the placeholders in the command with the proper information from your app's overview page and execute the command in a command shell. The output location specified with the `-o|--output` option creates a project folder if it doesn't exist and becomes part of the app's name.
@@ -64,7 +70,7 @@ dotnet new blazorserver2 --auth SingleOrg --calls-graph -o {APP NAME} --client-i
6470
| `{TENANT ID}` | Directory (tenant) ID | `e86c78e2-0000-0000-0000-918e0565a45e` |
6571
| `{DOMAIN}` | Primary domain | `tenantname.onmicrosoft.com` |
6672

67-
Now, navigate to your new Blazor app in your editor and add the client secret to the *appsettings.json* file, replacing the text "secret-from-app-registration".
73+
Now, navigate to your new Blazor app in your editor and add the client secret to the _appsettings.json_ file, replacing the text "secret-from-app-registration".
6874

6975
```json
7076
"ClientSecret": "secret-from-app-registration",
@@ -86,21 +92,21 @@ In your browser, navigate to `https://localhost:5001`, and log in using an Azure
8692

8793
Before you start, log out of your app since you'll be making changes to the required permissions, and your current token won't work. If you haven't already, run your app again and select **Log out** before updating the code below.
8894

89-
Now you will update your app's registration and code to pull a user's email and display the messages within the app. To achieve this, first extend the app registration permissions in Azure AD to enable access to the email data. Then, add code to the Blazor app to retrieve and display this data in one of the pages.
95+
Now you'll update your app's registration and code to pull a user's email and display the messages within the app. To achieve this, first extend the app registration permissions in Azure AD to enable access to the email data. Then, add code to the Blazor app to retrieve and display this data in one of the pages.
9096

9197
1. In the Azure portal, select your app in **App registrations**.
9298
1. Under **Manage**, select **API permissions**.
9399
1. Select **Add a permission** > **Microsoft Graph**.
94100
1. Select **Delegated Permissions**, then search for and select the **Mail.Read** permission.
95101
1. Select **Add permissions**.
96102

97-
In the *appsettings.json* file, update your code so it fetches the appropriate token with the right permissions. Add "mail.read" after the "user.read" scope under "DownstreamAPI". This is specifying which scopes (or permissions) the app will request access to.
103+
In the *appsettings.json* file, update your code so it fetches the appropriate token with the right permissions. Add `mail.read` after the `user.read` scope under `DownstreamAPI`. This is specifying which scopes (or permissions) the app will request access to.
98104

99105
```json
100106
"Scopes": "user.read mail.read"
101107
```
102108

103-
Next, update the code in the *FetchData.razor* file to retrieve email data instead of the default (random) weather details. Replace the code in that file with the following:
109+
Next, update the code in the *FetchData.razor* file to retrieve email data instead of the default (random) weather details. Replace the code in that file with the following code snippet:
104110

105111
```csharp
106112
@page "/fetchdata"

articles/active-directory/external-identities/whats-new-docs.md

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,18 @@ manager: CelesteDG
1515

1616
Welcome to what's new in Azure Active Directory External Identities documentation. This article lists new docs that have been added and those that have had significant updates in the last three months. To learn what's new with the External Identities service, see [What's new in Azure Active Directory](../fundamentals/whats-new.md).
1717

18+
## November 2022
19+
20+
### Updated articles
21+
22+
- [Tutorial: Use PowerShell to bulk invite Azure AD B2B collaboration users](bulk-invite-powershell.md)
23+
- [Grant B2B users in Azure AD access to your on-premises applications](hybrid-cloud-to-on-premises.md)
24+
- [Reset redemption status for a guest user](reset-redemption-status.md)
25+
- [Language customization in Azure Active Directory](user-flow-customize-language.md)
26+
- [B2B collaboration overview](what-is-b2b.md)
27+
- [Azure Active Directory External Identities: What's new](whats-new-docs.md)
28+
- [Tutorial: Enforce multi-factor authentication for B2B guest users](b2b-tutorial-require-mfa.md)
29+
1830
## October 2022
1931

2032
### Updated articles
@@ -52,21 +64,3 @@ Welcome to what's new in Azure Active Directory External Identities documentatio
5264
- [Add Azure Active Directory B2B collaboration users in the Azure portal](add-users-administrator.md)
5365
- [Leave an organization as an external user](leave-the-organization.md)
5466
- [Grant B2B users in Azure AD access to your on-premises applications](hybrid-cloud-to-on-premises.md)
55-
56-
## August 2022
57-
58-
### Updated articles
59-
60-
- [Allow or block invitations to B2B users from specific organizations](allow-deny-list.md)
61-
- [Azure Active Directory B2B best practices](b2b-fundamentals.md)
62-
- [Azure Active Directory B2B collaboration FAQs](faq.yml)
63-
- [Email one-time passcode authentication](one-time-passcode.md)
64-
- [Azure Active Directory B2B collaboration invitation redemption](redemption-experience.md)
65-
- [Troubleshooting Azure Active Directory B2B collaboration](troubleshoot.md)
66-
- [Properties of an Azure Active Directory B2B collaboration user](user-properties.md)
67-
- [B2B collaboration overview](what-is-b2b.md)
68-
- [Configure external collaboration settings](external-collaboration-settings-configure.md)
69-
- [Leave an organization as an external user](leave-the-organization.md)
70-
- [Overview: Cross-tenant access with Azure AD External Identities](cross-tenant-access-overview.md)
71-
- [Configure cross-tenant access settings for B2B direct connect](cross-tenant-access-settings-b2b-direct-connect.md)
72-
- [Azure Active Directory External Identities: What's new](whats-new-docs.md)

articles/active-directory/governance/create-lifecycle-workflow.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ Workflows can be created and customized for common scenarios using templates, or
2121

2222
## Prerequisites
2323

24-
[!INCLUDE [Azure AD Premium P2 license](../../../includes/active-directory-p2-license.md)]
24+
- Azure AD Premium P2
25+
26+
For more information, see: [License requirements](what-are-lifecycle-workflows.md#license-requirements)
2527

2628
## Create a Lifecycle workflow using a template in the Azure portal
2729

articles/active-directory/governance/customize-workflow-schedule.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: 'Customize workflow schedule - Azure Active Directory'
33
description: Describes how to customize the schedule of a Lifecycle Workflow.
44
services: active-directory
5-
author: owinfrey
5+
author: owinfreyATL
66
manager: amycolannino
77
ms.service: active-directory
88
ms.workload: identity

articles/active-directory/governance/delete-lifecycle-workflow.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ ms.collection: M365-identity-device-management
1818

1919
You can remove workflows that are no longer needed. Deleting these workflows allows you to make sure your lifecycle strategy is up to date. When a workflow is deleted, it enters a soft delete state. During this period, it's still able to be viewed within the deleted workflows list, and can be restored if needed. 30 days after a workflow enters a soft delete state it will be permanently removed. If you don't wish to wait 30 days for a workflow to permanently delete you can always manually delete it yourself.
2020

21+
## Prerequisites
22+
23+
- Azure AD Premium P2
24+
25+
For more information, see: [License requirements](what-are-lifecycle-workflows.md#license-requirements)
2126

2227
## Delete a workflow using the Azure portal
2328

articles/active-directory/governance/lifecycle-workflows-deployment.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@ Planning your Lifecycle Workflow deployment is essential to make sure you achiev
4040

4141
For more information on deployment plans, see [Azure AD deployment plans](../fundamentals/active-directory-deployment-plans.md)
4242

43-
## Licenses
43+
## License requirements
4444

4545

46-
[!INCLUDE [Azure AD Premium P2 license](../../../includes/active-directory-p2-license.md)]
46+
[!INCLUDE [Azure AD Premium P2 license](../../../includes/lifecycle-workflows-license.md)]
4747

4848
>[!Note]
4949
>Be aware that if your license expires, any workflows that you have created will stop working.
@@ -104,21 +104,24 @@ This section introduces Lifecycle Workflow concepts you should know before you p
104104

105105

106106
## Prerequisites to deploying Lifecycle Workflows
107-
The following is important information about your organization and the technologies that need to be in place prior to deploying Lifecycle Workflows. Ensure that you can answer yes to each of the items before attempting to deploy Lifecycle Workflows.
107+
108+
The following information is important information about your organization and the technologies that need to be in place prior to deploying Lifecycle Workflows. Ensure that you can answer yes to each of the items before attempting to deploy Lifecycle Workflows.
108109

109110
|Item|Description|Documentation|
110111
|-----|-----|-----|
111112
|Inbound Provisioning|You have a process to create user accounts for employees in Azure AD such as HR inbound, SuccessFactors, or MIM.<br><br> Alternatively you have a process to create user accounts in Active Directory and those accounts are provisioned to Azure AD.|[Workday to Active Directory](../saas-apps/workday-inbound-tutorial.md)<br><br>[Workday to Azure AD](../saas-apps/workday-inbound-tutorial.md)<br><br>[SuccessFactors to Active Directory](../saas-apps/sap-successfactors-inbound-provisioning-tutorial.md)</br></br>[SuccessFactors to Azure AD](../saas-apps/sap-successfactors-inbound-provisioning-cloud-only-tutorial.md)<br><br>[Azure AD Connect](../hybrid/whatis-azure-ad-connect-v2.md)<br><br>[Azure AD Connect cloud sync](../cloud-sync/what-is-cloud-sync.md)|
112-
|Attribute synchronization|The accounts in Azure AD have the employeeHireDate and employeeLeaveDateTime attributes populated. The values may be populated when the accounts are created from an HR system or synchronized from AD using Azure AD Connect or cloud sync. You have additional attributes, that will be used to determine the scope, such as department, populated or the ability to populate, with data.|[How to synchronize attributes for Lifecycle Workflows](how-to-lifecycle-workflow-sync-attributes.md)
113+
|Attribute synchronization|The accounts in Azure AD have the employeeHireDate and employeeLeaveDateTime attributes populated. The values may be populated when the accounts are created from an HR system or synchronized from AD using Azure AD Connect or cloud sync. You have additional attributes that will be used to determine the scope such as department, populated or the ability to populate, with data.|[How to synchronize attributes for Lifecycle Workflows](how-to-lifecycle-workflow-sync-attributes.md)
113114

114115
## Understanding parts of a workflow
116+
115117
Before you begin planning a Lifecycle Workflow deployment, you should become familiar with the parts of workflow and the terminology around Lifecycle Workflows.
116118

117119
The [Understanding Lifecycle Workflows](understanding-lifecycle-workflows.md) document, uses the portal to explain the parts of a workflow. The [Developer API reference Lifecycle Workflows](lifecycle-workflows-developer-reference.md) document, uses a GRAPH example to explain the parts of a workflow.
118120

119121
You can use this document to become familiar with the parts of workflow prior to deploying them.
120122

121123
## Limitations and constraints
124+
122125
The following table provides information that you need to be aware of as you create and deploy Lifecycle workflows.
123126

124127
|Item|Description|
@@ -133,7 +136,7 @@ The following table provides information that you need to be aware of as you cre
133136

134137
The following is additional information you should be aware of.
135138

136-
- You cannot enable the schedule for the Real-Time Leaver scenario. This is by design.
139+
- You can't enable the schedule for the Real-Time Leaver scenario. This is by design.
137140

138141

139142

0 commit comments

Comments
 (0)