Skip to content

Commit 9558296

Browse files
authored
Merge pull request #243467 from MicrosoftDocs/main
6/29/2023 10AM Publishing
2 parents 4efc6cc + 3d3d705 commit 9558296

File tree

315 files changed

+2120
-1377
lines changed

Some content is hidden

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

315 files changed

+2120
-1377
lines changed

articles/active-directory-b2c/enable-authentication-web-application-options.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ To support a secured logout redirect in your application, first follow the steps
303303
1. In the **Startup.cs** class, parse the `id_token_hint` value and append the value to the authentication request. The following code snippet demonstrates how to pass the `id_token_hint` value to the authentication request:
304304

305305
```csharp
306-
private async Task OnRedirectToIdentityProviderFunc(RedirectContext context)
306+
private async Task OnRedirectToIdentityProviderForSignOutFunc(RedirectContext context)
307307
{
308308
var id_token_hint = context.Properties.Items.FirstOrDefault(x => x.Key == "id_token_hint").Value;
309309
if (id_token_hint != null)
@@ -324,7 +324,7 @@ To support a secured logout redirect in your application, first follow the steps
324324
{
325325
Configuration.Bind("AzureAdB2C", options);
326326
options.Events ??= new OpenIdConnectEvents();
327-
options.Events.OnRedirectToIdentityProvider += OnRedirectToIdentityProviderFunc;
327+
options.Events.OnRedirectToIdentityProviderForSignOut += OnRedirectToIdentityProviderForSignOutFunc;
328328
options.SaveTokens = true;
329329
});
330330
```

articles/active-directory/app-provisioning/application-provisioning-when-will-provisioning-finish-specific-user.md

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.service: active-directory
88
ms.subservice: app-provisioning
99
ms.workload: identity
1010
ms.topic: how-to
11-
ms.date: 05/04/2023
11+
ms.date: 06/29/2023
1212
ms.author: kenwith
1313
ms.reviewer: arvinh
1414
---
@@ -61,16 +61,16 @@ The time it takes for a given user to be provisioned depends mainly on whether y
6161
The following table summarizes synchronization times for common provisioning scenarios. In these scenarios, the source system is Azure AD and the target system is a SaaS application. The sync times are derived from a statistical analysis of sync jobs for the SaaS applications ServiceNow, Workplace, Salesforce, and G Suite.
6262

6363

64-
| Scope configuration | Users, groups, and members in scope | Initial cycle time | Incremental cycle time |
65-
| -------- | -------- | -------- | -------- |
66-
| Sync assigned users and groups only | < 1,000 | < 30 minutes | < 30 minutes |
67-
| Sync assigned users and groups only | 1,000 - 10,000 | 142 - 708 minutes | < 30 minutes |
68-
| Sync assigned users and groups only | 10,000 - 100,000 | 1,170 - 2,340 minutes | < 30 minutes |
69-
| Sync all users and groups in Azure AD | < 1,000 | < 30 minutes | < 30 minutes |
70-
| Sync all users and groups in Azure AD | 1,000 - 10,000 | < 30 - 120 minutes | < 30 minutes |
71-
| Sync all users and groups in Azure AD | 10,000 - 100,000 | 713 - 1,425 minutes | < 30 minutes |
72-
| Sync all users in Azure AD| < 1,000 | < 30 minutes | < 30 minutes |
73-
| Sync all users in Azure AD | 1,000 - 10,000 | 43 - 86 minutes | < 30 minutes |
64+
| Scope configuration | Users, groups, and members in scope | Initial cycle time |
65+
| -------- | -------- | -------- |
66+
| Sync assigned users and groups only | < 1,000 | < 30 minutes |
67+
| Sync assigned users and groups only | 1,000 - 10,000 | 142 - 708 minutes |
68+
| Sync assigned users and groups only | 10,000 - 100,000 | 1,170 - 2,340 minutes |
69+
| Sync all users and groups in Azure AD | < 1,000 | < 30 minutes |
70+
| Sync all users and groups in Azure AD | 1,000 - 10,000 | < 30 - 120 minutes |
71+
| Sync all users and groups in Azure AD | 10,000 - 100,000 | 713 - 1,425 minutes |
72+
| Sync all users in Azure AD| < 1,000 | < 30 minutes |
73+
| Sync all users in Azure AD | 1,000 - 10,000 | 43 - 86 minutes |
7474

7575
For the configuration **Sync assigned user and groups only**, you can use the following formulas to determine the approximate minimum and maximum expected **initial cycle** times:
7676

@@ -93,12 +93,7 @@ Summary of factors that influence the time it takes to complete an **initial cyc
9393

9494
- If performance becomes an issue, and you're attempting to provision most users and groups in your tenant, then use scoping filters. Scoping filters allow you to fine tune the data that the provisioning service extracts from Azure AD by filtering out users based on specific attribute values. For more information on scoping filters, see [Attribute-based application provisioning with scoping filters](define-conditional-rules-for-provisioning-user-accounts.md).
9595

96-
The **incremental cycle** may also take longer than the duration we have documented above. Some of the factors that influence this duration are:
97-
98-
- The number of changes on the individual objects properties.
99-
- The number of changes on the groups memberships.
100-
- The scope of assignment configured for the app. Configuration of **sync assigned users and groups only** is recommended where possible.
101-
96+
In most cases, the **incremental cycle** completes in 30 minutes. However, when there are hundreds or thousands of user changes or group membership changes, the incremental cycle time will increase proportionally with the number of changes to process and can take several hours. Using **sync assigned users and groups** and minimizing the number of users / groups in scope for provisioning will help to reduce the sync time.
10297

10398
## Next steps
10499
[Automate user provisioning and deprovisioning to SaaS applications with Azure Active Directory](user-provisioning.md)

articles/active-directory/app-proxy/application-proxy-integrate-with-remote-desktop-services.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ In an RDS deployment, the RD Web role and the RD Gateway role run on Internet-fa
4040
- You should already have [deployed RDS](/windows-server/remote/remote-desktop-services/rds-in-azure), and [enabled Application Proxy](../app-proxy/application-proxy-add-on-premises-application.md). Ensure you have satisfied the pre-requisites to enable Application Proxy, such as installing the connector, opening required ports and URLs, and enabling TLS 1.2 on the server. To learn which ports need to be opened, and other details, see [Tutorial: Add an on-premises application for remote access through Application Proxy in Azure Active Directory](application-proxy-add-on-premises-application.md).
4141
- Your end users must use a compatible browser to connect to RD Web or the RD Web client. For more details see [Support for client configurations](#support-for-other-client-configurations).
4242
- When publishing RD Web, it is recommended to use the same internal and external FQDN. If the internal and external FQDNs are different then you should disable Request Header Translation to avoid the client receiving invalid links.
43+
- If you are using the RD Web client, you *must* use the same internal and external FQDN. If the internal and external FQDNs are different, you will encounter websocket errors when making a RemoteApp connection through the RD Web client.
4344
- If you are using RD Web on Internet Explorer, you will need to enable the RDS ActiveX add-on.
4445
- If you are using the RD Web client, you will need to use the Application Proxy [connector version 1.5.1975 or later](./application-proxy-release-version-history.md).
4546
- For the Azure AD pre-authentication flow, users can only connect to resources published to them in the **RemoteApp and Desktops** pane. Users can't connect to a desktop using the **Connect to a remote PC** pane.

articles/active-directory/cloud-infrastructure-entitlement-management/TOC.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -151,11 +151,6 @@
151151
items:
152152
- name: Troubleshoot issues
153153
href: troubleshoot.md
154-
- name: Training videos
155-
expanded: false
156-
items:
157-
- name: Get started with Permissions Management training videos
158-
href: training-videos.md
159154
- name: Reference
160155
expanded: false
161156
items:

articles/active-directory/devices/howto-vm-sign-in-azure-ad-windows.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ Now that you've created the VM, you need to configure an Azure RBAC policy to de
167167
- **Virtual Machine Administrator Login**: Users who have this role assigned can log in to an Azure virtual machine with administrator privileges.
168168
- **Virtual Machine User Login**: Users who have this role assigned can log in to an Azure virtual machine with regular user privileges.
169169

170-
To allow a user to log in to the VM over RDP, you must assign the Virtual Machine Administrator Login or Virtual Machine User Login role to the resource group that contains the VM and its associated virtual network, network interface, public IP address, or load balancer resources.
170+
To allow a user to log in to the VM over RDP, you must assign the Virtual Machine Administrator Login or Virtual Machine User Login role to the Virtual Machine resource.
171171

172172
> [!NOTE]
173173
> Manually elevating a user to become a local administrator on the VM by adding the user to a member of the local administrators group or by running `net localgroup administrators /add "AzureAD\UserUpn"` command is not supported. You need to use Azure roles above to authorize VM login.

articles/active-directory/external-identities/customers/how-to-desktop-app-maui-sample-sign-in.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,15 @@ git clone https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial.git
6969

7070
## Run and test sample .NET MAUI desktop application
7171

72-
Select the Windows platform to work on by setting the startup project in the **Solution Explorer**. Make sure that your platform of choice is marked for build and deploy in the configuration manager.
72+
.NET MAUI apps are designed to run on multiple operating systems and devices. You'll need to select which target you want to test and debug your app with.
7373

74-
Clean the solution, rebuild the solution, and run it.
74+
Set the **Debug Target** in the Visual Studio toolbar to the device you want to debug and test with. The following steps demonstrate setting the **Debug Target** to _Windows_:
75+
76+
1. Select **Debug Target** drop-down.
77+
1. Select **Framework**
78+
1. Select **net7.0-windows...**
79+
80+
Run the app by pressing _F5_ or select the _play button_ at the top of Visual Studio.
7581

7682
1. You can now test the sample .NET MAUI desktop application. After you run the application, the desktop application window appears automatically:
7783

articles/active-directory/external-identities/customers/how-to-mobile-app-maui-sample-sign-in.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,15 @@ git clone https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial.git
7272

7373
## Run and test sample .NET MAUI Android application
7474

75-
Select the Android platform to work on by setting the startup project in the **Solution Explorer**. Make sure that your platform of choice is marked for build and deploy in the configuration manager.
75+
.NET MAUI apps are designed to run on multiple operating systems and devices. You'll need to select which target you want to test and debug your app with.
7676

77-
Clean the solution, rebuild the solution, and run it.
77+
Set the **Debug Target** in the Visual Studio toolbar to the device you want to debug and test with. The following steps demonstrate setting the **Debug Target** to _Android_:
78+
79+
1. Select **Debug Target** drop-down.
80+
1. Select **Android Emulators**.
81+
1. Select emulator device.
82+
83+
Run the app by pressing _F5_ or select the _play button_ at the top of Visual Studio.
7884

7985
1. You can now test the sample .NET MAUI Android app. After you run the app, the Android app window appears in an emulator:
8086

articles/active-directory/external-identities/customers/toc.yml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,17 @@ items:
189189
- name: Prepare app
190190
href: how-to-daemon-node-call-api-prepare-app.md
191191
- name: Acquire access token and call API
192-
href: how-to-daemon-node-call-api-call-api.md
192+
href: how-to-daemon-node-call-api-call-api.md
193+
- name: Desktop app
194+
items:
195+
- name: .NET MAUI
196+
items:
197+
- name: Prepare tenant
198+
href: tutorial-desktop-app-maui-sign-in-prepare-tenant.md
199+
- name: Prepare app
200+
href: tutorial-desktop-app-maui-sign-in-prepare-app.md
201+
- name: Sign in and sign out
202+
href: tutorial-desktop-app-maui-sign-in-sign-out.md
193203
- name: Mobile
194204
items:
195205
- name: .NET MAUI
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
---
2+
title: "Tutorial: Create a .NET MAUI shell app, add MSAL SDK, and include an image resource"
3+
description: This tutorial demonstrates how to create a .NET MAUI shell app, add MSAL SDK support via MSALClient helper, and include an image resource.
4+
author: henrymbuguakiarie
5+
manager: mwongerapk
6+
7+
ms.author: henrymbugua
8+
ms.service: active-directory
9+
ms.topic: tutorial
10+
ms.subservice: ciam
11+
ms.date: 06/05/2023
12+
---
13+
14+
# Tutorial: Create a .NET MAUI app
15+
16+
This tutorial demonstrates how to create a .NET Multi-platform App UI (.NET MAUI) shell app. You'll also add a custom Microsoft Authentication Library (MSAL) client helper to initialize the MSAL SDK, install required libraries and include an image resource.
17+
18+
In this tutorial, you learn how to:
19+
20+
> [!div class="checklist"]
21+
>
22+
> - Create a .NET MAUI shell app.
23+
> - Add MSAL SDK support using MSAL helper classes.
24+
> - Install required packages.
25+
> - Add image resource.
26+
27+
## Prerequisites
28+
29+
- [.NET 7.0 SDK](https://dotnet.microsoft.com/download/dotnet/7.0)
30+
- [Visual Studio 2022](https://aka.ms/vsdownloads) with the MAUI workload installed:
31+
- [Instructions for Windows](/dotnet/maui/get-started/installation?tabs=vswin)
32+
- [Instructions for macOS](/dotnet/maui/get-started/installation?tabs=vsmac)
33+
34+
## Create .NET MAUI app
35+
36+
1. In the start window of Visual Studio 2022, select **Create a new project**.
37+
1. In the **Create a new project** window, select **MAUI** in the All project types drop-down, select the **.NET MAUI App** template, and select **Next**.
38+
1. In the **Configure your new project** window, **Project name** must be set to _SignInMaui_. Update the **Solution name** to _sign-in-maui_ and select **Next**.
39+
1. In the **Additional information** window, choose .NET 7.0 and select **Create**.
40+
41+
Wait for the project to be created and its dependencies to be restored.
42+
43+
## Add MSAL SDK support using MSAL helper classes
44+
45+
MSAL client enables developers to acquire security tokens from Azure Active Directory (Azure AD) for customers tenant to authenticate and access secured web APIs. In this section, you download files that makes up MSALClient.
46+
47+
Download the following files:
48+
49+
- [AzureAdConfig.cs](https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial/blob/main/1-Authentication/2-sign-in-maui/MSALClient/AzureAdConfig.cs) - This file gets and sets the Azure AD app unique identifiers from your app configuration file.
50+
- [DownStreamApiConfig.cs](https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial/blob/main/1-Authentication/2-sign-in-maui/MSALClient/DownStreamApiConfig.cs) - This file gets and sets the scopes for Microsoft Graph call.
51+
- [DownstreamApiHelper.cs](https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial/blob/main/1-Authentication/2-sign-in-maui/MSALClient/DownstreamApiHelper.cs) - This file handles the exceptions that occur when calling the downstream API.
52+
- [Exception.cs](https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial/blob/main/1-Authentication/2-sign-in-maui/MSALClient/Exception.cs) - This file offers a few extension method related to exception throwing and handling.
53+
- [IdentityLogger.cs](https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial/blob/main/1-Authentication/2-sign-in-maui/MSALClient/IdentityLogger.cs) - This file handles shows how to use MSAL.NET logging.
54+
- [MSALClientHelper.cs](https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial/blob/main/1-Authentication/2-sign-in-maui/MSALClient/MSALClientHelper.cs) - This file contains methods to initialize MSAL SDK.
55+
- [PlatformConfig.cs](https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial/blob/main/1-Authentication/2-sign-in-maui/MSALClient/PlatformConfig.cs) - This file contains methods to handle specific platform. For example, Windows.
56+
- [PublicClientSingleton.cs](https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial/blob/main/1-Authentication/2-sign-in-maui/MSALClient/PublicClientSingleton.cs) - This file contains a singleton implementation to wrap the MSALClient and associated classes to support static initialization model for platforms.
57+
- [WindowsHelper.cs](https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial/blob/main/1-Authentication/2-sign-in-maui/MSALClient/WindowsHelper.cs) - This file contains methods to retrieve window handle.
58+
59+
> [!IMPORTANT]
60+
> Don't skip downloading the MSALClient files, they're required to complete this tutorial.
61+
62+
### Move the MSALClient files with Visual Studio
63+
64+
1. In the **Solution Explorer** pane, right-click on the **SignInMaui** project and select **Add** > **New Folder**. Name the folder _MSALClient_.
65+
1. Right-click on **MSALClient** folder, select **Add** > **Existing Item...**.
66+
1. Navigate to the folder that contains the downloaded MSALClient files.
67+
1. Select all of the MSALClient files you downloaded, then select **Add**
68+
69+
## Install required packages
70+
71+
You need to install the following packages:
72+
73+
- _Microsoft.Identity.Client_ - This package contains the binaries of the Microsoft Authentication Library for .NET (MSAL.NET).
74+
- _Microsoft.Extensions.Configuration.Json_ - This package contains JSON configuration provider implementation for Microsoft.Extensions.Configuration.
75+
- _Microsoft.Extensions.Configuration.Binder_ - This package contains functionality to bind an object to data in configuration providers for Microsoft.Extensions.Configuration.
76+
- _Microsoft.Extensions.Configuration.Abstractions_ - This package contains abstractions of key-value pair based configuration.
77+
- _Microsoft.Identity.Client.Extensions.Msal_ - This package contains extensions to Microsoft Authentication Library for .NET (MSAL.NET).
78+
79+
### NuGet Package Manager
80+
81+
To use the **NuGet Package Manager** to install the _Microsoft.Identity.Client_ package in Visual Studio, follow these steps:
82+
83+
1. Select **Tools** > **NuGet Package Manager** > **Manage NuGet Packages for Solution...**.
84+
1. From the **Browse** tab, search for _Microsoft.Identity.Client_.
85+
1. Select **Microsoft.Identity.Client** in the list.
86+
1. Select **SignInMaui** in the **Project** list pane.
87+
1. Select **Install**.
88+
1. If you're prompted to verify the installation, select **OK**.
89+
90+
Repeat the process to install the remaining required packages.
91+
92+
## Add image resource
93+
94+
In this section, you download an image that you use in your app to enhance how users interact with it.
95+
96+
Download the following image:
97+
98+
- [Icon: Azure AD](https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial/blob/main/1-Authentication/2-sign-in-maui/Resources/Images/azure_active_directory.png) - This image is used as icon in the main page.
99+
100+
### Move the image with Visual Studio
101+
102+
1. In the **Solution Explorer** pane of Visual Studio, expand the **Resources** folder, which reveals the **Images** folder.
103+
1. Right-click on **Images** and select **Add** > **Existing Item...**.
104+
1. Navigate to the folder that contains the downloaded images.
105+
1. Change the filter to file type filter to **Image Files**.
106+
1. Select the image you downloaded.
107+
1. Select **Add**.
108+
109+
## Next steps
110+
111+
> [!div class="nextstepaction"]
112+
> [Tutorial: Sign in users in .NET MAUI shell app](tutorial-desktop-app-maui-sign-in-sign-out.md)

0 commit comments

Comments
 (0)