Skip to content

Commit 3f22ae3

Browse files
authored
Merge pull request #89667 from MicrosoftDocs/master
Merge Master to Live, 3 AM
2 parents 55f7fc8 + b82fd57 commit 3f22ae3

File tree

140 files changed

+1479
-1044
lines changed

Some content is hidden

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

140 files changed

+1479
-1044
lines changed

.openpublishing.redirection.json

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3070,16 +3070,6 @@
30703070
"redirect_url": "/azure/virtual-machines/linux/expand-disks",
30713071
"redirect_document_id": true
30723072
},
3073-
{
3074-
"source_path": "articles/virtual-machines/linux/disks-upload-vhd-to-managed-disk-cli.md",
3075-
"redirect_url": "/azure/virtual-machines/linux/managed-disks-overview",
3076-
"redirect_document_id": false
3077-
},
3078-
{
3079-
"source_path": "articles/virtual-machines/windows/disks-upload-vhd-to-managed-disk-powershell.md",
3080-
"redirect_url": "/azure/virtual-machines/windows/managed-disks-overview",
3081-
"redirect_document_id": false
3082-
},
30833073
{
30843074
"source_path": "articles/virtual-machines/linux/install-mongodb-nodejs.md",
30853075
"redirect_url": "/azure/virtual-machines/linux/install-mongodb",
@@ -20533,6 +20523,11 @@
2053320523
"source_path": "articles/virtual-machines/virtual-machines-linux-quick-create-cli-nodejs.md",
2053420524
"redirect_url": "/azure/virtual-machines/linux/quick-create-cli-nodejs",
2053520525
"redirect_document_id": false
20526+
},
20527+
{
20528+
"source_path": "articles/virtual-machines/linux/quick-create-cli-nodejs.md",
20529+
"redirect_url": "/azure/virtual-machines/linux/quick-create-cli",
20530+
"redirect_document_id": false
2053620531
},
2053720532
{
2053820533
"source_path": "articles/virtual-machines/virtual-machines-linux-quick-create-cli.md",

articles/active-directory-b2c/active-directory-b2c-get-started-custom.md

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ manager: celestedg
88
ms.service: active-directory
99
ms.workload: identity
1010
ms.topic: conceptual
11-
ms.date: 07/16/2019
11+
ms.date: 09/26/2019
1212
ms.author: marsma
1313
ms.subservice: B2C
1414
---
@@ -21,44 +21,45 @@ ms.subservice: B2C
2121

2222
## Prerequisites
2323

24-
- If you don't have one already, you need to [create an Azure AD B2C tenant](tutorial-create-tenant.md) that is linked to your Azure subscription.
24+
- If you don't have one already, [create an Azure AD B2C tenant](tutorial-create-tenant.md) that is linked to your Azure subscription.
2525
- [Register your application](tutorial-register-applications.md) in the tenant that you created so that it can communicate with Azure AD B2C.
26+
- Complete the steps in [Set up sign-up and sign-in with a Facebook account](active-directory-b2c-setup-fb-app.md) to configure a Facebook application.
2627

2728
## Add signing and encryption keys
2829

29-
1. Sign in to the [Azure portal](https://portal.azure.com/) as the global administrator of your Azure AD B2C tenant.
30-
2. Make sure you're using the directory that contains your Azure AD B2C tenant. Select the **Directory + subscription** filter in the top menu and choose the directory that contains your tenant.
31-
3. Choose **All services** in the top-left corner of the Azure portal, search for and select **Azure AD B2C**.
32-
4. On the Overview page, select **Identity Experience Framework**.
30+
1. Sign in to the [Azure portal](https://portal.azure.com)
31+
1. Use the **Directory + subscription** filter in the top menu to select the directory that contains your Azure AD B2C tenant.
32+
1. In the left menu, select **Azure AD B2C**. Or, select **All services** and search for and select **Azure AD B2C**.
33+
1. On the Overview page, select **Identity Experience Framework**.
3334

3435
### Create the signing key
3536

3637
1. Select **Policy Keys** and then select **Add**.
37-
2. For **Options**, choose `Generate`.
38-
3. In **Name**, enter `TokenSigningKeyContainer`. The prefix `B2C_1A_` might be added automatically.
39-
4. For **Key type**, select **RSA**.
40-
5. For **Key usage**, select **Signature**.
41-
6. Click **Create**.
38+
1. For **Options**, choose `Generate`.
39+
1. In **Name**, enter `TokenSigningKeyContainer`. The prefix `B2C_1A_` might be added automatically.
40+
1. For **Key type**, select **RSA**.
41+
1. For **Key usage**, select **Signature**.
42+
1. Select **Create**.
4243

4344
### Create the encryption key
4445

4546
1. Select **Policy Keys** and then select **Add**.
46-
2. For **Options**, choose `Generate`.
47-
3. In **Name**, enter `TokenEncryptionKeyContainer`. The prefix `B2C_1A`_ might be added automatically.
48-
4. For **Key type**, select **RSA**.
49-
5. For **Key usage**, select **Encryption**.
50-
6. Click **Create**.
47+
1. For **Options**, choose `Generate`.
48+
1. In **Name**, enter `TokenEncryptionKeyContainer`. The prefix `B2C_1A`_ might be added automatically.
49+
1. For **Key type**, select **RSA**.
50+
1. For **Key usage**, select **Encryption**.
51+
1. Select **Create**.
5152

5253
### Create the Facebook key
5354

54-
If you already have a [Facebook application secret](active-directory-b2c-setup-fb-app.md), add it as a policy key to your tenant. Otherwise, you must create the key with a placeholder value so that your policies pass validation.
55+
Add your Facebook application's [App Secret](active-directory-b2c-setup-fb-app.md) as a policy key. You can use the App Secret of the application you created as part of this article's prerequisites.
5556

5657
1. Select **Policy Keys** and then select **Add**.
57-
2. For **Options**, choose `Manual`.
58-
3. For **Name**, enter `FacebookSecret`. The prefix `B2C_1A_` might be added automatically.
59-
4. In **Secret**, enter your Facebook secret from developers.facebook.com or `0` as a placeholder. This value is the secret, not the application ID.
60-
5. For **Key usage**, select **Signature**.
61-
6. Click **Create**.
58+
1. For **Options**, choose `Manual`.
59+
1. For **Name**, enter `FacebookSecret`. The prefix `B2C_1A_` might be added automatically.
60+
1. In **Secret**, enter your Facebook application's *App Secret* from developers.facebook.com. This value is the secret, not the application ID.
61+
1. For **Key usage**, select **Signature**.
62+
1. Select **Create**.
6263

6364
## Register Identity Experience Framework applications
6465

@@ -74,19 +75,19 @@ Azure AD B2C requires you to register two applications that are used to sign up
7475
1. For **Name**, enter `IdentityExperienceFramework`.
7576
1. For **Application type**, choose **Web app/API**.
7677
1. For **Sign-on URL**, enter `https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com`, where `your-tenant-name` is your Azure AD B2C tenant domain name. All URLs should now be using [b2clogin.com](b2clogin.md).
77-
1. Click **Create**. After it's created, copy the application ID and save it to use later.
78+
1. Select **Create**. After it's created, copy the application ID and save it to use later.
7879

7980
### Register the ProxyIdentityExperienceFramework application
8081

8182
1. In **App registrations (Legacy)**, select **New application registration**.
82-
2. For **Name**, enter `ProxyIdentityExperienceFramework`.
83-
3. For **Application type**, choose **Native**.
84-
4. For **Redirect URI**, enter `https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com`, where `your-tenant-name` is your Azure AD B2C tenant.
85-
5. Click **Create**. After it's created, copy the application ID and save it to use later.
86-
6. On the Settings page, select **Required permissions**, and then select **Add**.
87-
7. Choose **Select an API**, search for and select **IdentityExperienceFramework**, and then click **Select**.
88-
9. Select the check box next to **Access IdentityExperienceFramework**, click **Select**, and then click **Done**.
89-
10. Select **Grant Permissions**, and then confirm by selecting **Yes**.
83+
1. For **Name**, enter `ProxyIdentityExperienceFramework`.
84+
1. For **Application type**, choose **Native**.
85+
1. For **Redirect URI**, enter `https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com`, where `your-tenant-name` is your Azure AD B2C tenant.
86+
1. Select **Create**. After it's created, copy the application ID and save it to use later.
87+
1. Select **Settings**, then select **Required permissions**, and then select **Add**.
88+
1. Choose **Select an API**, search for and select **IdentityExperienceFramework**, and then click **Select**.
89+
1. Select the check box next to **Access IdentityExperienceFramework**, click **Select**, and then click **Done**.
90+
1. Select **Grant permissions**, and then confirm by selecting **Yes**.
9091

9192
## Custom policy starter pack
9293

@@ -156,7 +157,6 @@ As you upload the files, Azure adds the prefix `B2C_1A_` to each.
156157

157158
## Add Facebook as an identity provider
158159

159-
1. Complete the steps in [Set up sign-up and sign-in with a Facebook account](active-directory-b2c-setup-fb-app.md) to configure a Facebook application.
160160
1. In the `SocialAndLocalAccounts/`**`TrustFrameworkExtensions.xml`** file, replace the value of `client_id` with the Facebook application ID:
161161

162162
```xml
@@ -168,7 +168,7 @@ As you upload the files, Azure adds the prefix `B2C_1A_` to each.
168168

169169
1. Upload the *TrustFrameworkExtensions.xml* file to your tenant.
170170
1. Under **Custom policies**, select **B2C_1A_signup_signin**.
171-
1. Select **Run now** and select Facebook to sign in with Facebook and test the custom policy. Or, invoke the policy directly from your registered application.
171+
1. Select **Run now** and select Facebook to sign in with Facebook and test the custom policy.
172172

173173
## Next steps
174174

articles/active-directory-b2c/active-directory-b2c-setup-fb-app.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ manager: celestedg
88
ms.service: active-directory
99
ms.workload: identity
1010
ms.topic: conceptual
11-
ms.date: 08/08/2019
11+
ms.date: 09/26/2019
1212
ms.author: marsma
1313
ms.subservice: B2C
1414
---
@@ -21,20 +21,20 @@ To use a Facebook account as an [identity provider](active-directory-b2c-referen
2121

2222
1. Sign in to [Facebook for developers](https://developers.facebook.com/) with your Facebook account credentials.
2323
1. If you have not already done so, you need to register as a Facebook developer. To do this, select **Get Started** on the upper-right corner of the page, accept Facebook's policies, and complete the registration steps.
24-
1. Select **My Apps** and then **Add New App**.
24+
1. Select **My Apps** and then **Create App**.
2525
1. Enter a **Display Name** and a valid **Contact Email**.
26-
1. Click **Create App ID**. This may require you to accept Facebook platform policies and complete an online security check.
26+
1. Select **Create App ID**. This may require you to accept Facebook platform policies and complete an online security check.
2727
1. Select **Settings** > **Basic**.
2828
1. Choose a **Category**, for example `Business and Pages`. This value is required by Facebook, but not used for Azure AD B2C.
2929
1. At the bottom of the page, select **Add Platform**, and then select **Website**.
3030
1. In **Site URL**, enter `https://your-tenant-name.b2clogin.com/` replacing `your-tenant-name` with the name of your tenant. Enter a URL for the **Privacy Policy URL**, for example `http://www.contoso.com`. The policy URL is a page you maintain to provide privacy information for your application.
3131
1. Select **Save Changes**.
3232
1. At the top of the page, copy the value of **App ID**.
33-
1. Click **Show** and copy the value of **App Secret**. You use both of them to configure Facebook as an identity provider in your tenant. **App Secret** is an important security credential.
33+
1. Select **Show** and copy the value of **App Secret**. You use both of them to configure Facebook as an identity provider in your tenant. **App Secret** is an important security credential.
3434
1. Select the plus sign next to **PRODUCTS**, and then select **Set up** under **Facebook Login**.
3535
1. Under **Facebook Login**, select **Settings**.
36-
1. In **Valid OAuth redirect URIs**, enter `https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp`. Replace `your-tenant-name` with the name of your tenant. Click **Save Changes** at the bottom of the page.
37-
1. To make your Facebook application available to Azure AD B2C, click the Status selector at the top right of the page and turn it **On** to make the Application public, and then click **Confirm**. At this point the Status should change from **Development** to **Live**.
36+
1. In **Valid OAuth redirect URIs**, enter `https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp`. Replace `your-tenant-name` with the name of your tenant. Select **Save Changes** at the bottom of the page.
37+
1. To make your Facebook application available to Azure AD B2C, select the Status selector at the top right of the page and turn it **On** to make the Application public, and then select **Switch Mode**. At this point the Status should change from **Development** to **Live**.
3838

3939
## Configure a Facebook account as an identity provider
4040

articles/active-directory/develop/authentication-scenarios.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ ms.devlang: na
1414
ms.topic: conceptual
1515
ms.tgt_pltfrm: na
1616
ms.workload: identity
17-
ms.date: 04/05/2019
17+
ms.date: 09/23/2019
1818
ms.author: ryanwi
1919
ms.reviewer: saeeda, sureshja, hirsin
2020
ms.custom: aaddev, identityplatformtop40
@@ -57,6 +57,25 @@ In the example scenario above, you can classify the apps according to these two
5757
* Apps that need to securely access resources
5858
* Apps that play the role of the resource itself
5959

60+
### How each flow emits tokens and codes
61+
62+
Depending on how your client is built, it can use one (or several) of the authentication flows supported by the Microsoft identity platform. These flows can produce a variety of tokens (id_tokens, refresh tokens, access tokens) as well as authorization codes, and require different tokens to make them work. This chart proides an overview:
63+
64+
|Flow | Requires | id_token | access token | refresh token | authorization code |
65+
|-----|----------|----------|--------------|---------------|--------------------|
66+
|[Authorization code flow](v2-oauth2-auth-code-flow.md) | | x | x | x | x|
67+
|[Implicit flow](v2-oauth2-implicit-grant-flow.md) | | x | x | | |
68+
|[Hybrid OIDC flow](v2-protocols-oidc.md#get-access-tokens)| | x | | | | x|
69+
|[Refresh token redemption](v2-oauth2-auth-code-flow.md#refresh-the-access-token) | refresh token | x | x | x| |
70+
|[On-behalf-of flow](v2-oauth2-on-behalf-of-flow.md) | access token| x| x| x| |
71+
|[Device code flow](v2-oauth2-device-code.md) | | x| x| x| |
72+
|[Client credentials](v2-oauth2-client-creds-grant-flow.md) | | | x (app-only)| | |
73+
74+
**Notes**:
75+
76+
Tokens issued via the implicit mode have a length limitation due to being passed back to the browser via the URL (where `response_mode` is `query` or `fragment`). Some browsers have a limit on the size of the URL that can be put in the browser bar and fail when it is too long. Thus, these tokens do not have `groups` or `wids` claims.
77+
78+
6079
Now that you have an overview of the basics, read on to understand the identity app model and API, how provisioning works in Microsoft identity platform, and links to detailed info about the common scenarios that Microsoft identity platform supports.
6180

6281
## Application model

articles/active-directory/develop/msal-net-migration.md

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,24 @@ ms.collection: M365-identity-device-management
2323

2424
# Migrating applications to MSAL.NET
2525

26-
Both Microsoft Authentication Library for .NET (MSAL.NET) and Azure AD Authentication Library for .NET (ADAL.NET) are used to authenticate Azure AD entities and request tokens from Azure AD. Up until now, most developers have worked with Azure AD for developers platform (v1.0) to authenticate Azure AD identities (work and school accounts) by requesting tokens using Azure AD Authentication Library (ADAL). Now, using MSAL.NET, you can authenticate a broader set of Microsoft identities (Azure AD identities and Microsoft accounts, and social and local accounts through Azure AD B2C) through the Microsoft identity platform endpoint.
26+
Both Microsoft Authentication Library for .NET (MSAL.NET) and Azure AD Authentication Library for .NET (ADAL.NET) are used to authenticate Azure AD entities and request tokens from Azure AD. Up until now, most developers have worked with Azure AD for developers platform (v1.0) to authenticate Azure AD identities (work and school accounts) by requesting tokens using Azure AD Authentication Library (ADAL). Using MSAL:
2727

28-
This article describes how to choose between the Microsoft Authentication Library for .NET (MSAL.NET) and Azure AD Authentication Library for .NET (ADAL.NET) and compares the two libraries.
28+
- you can authenticate a broader set of Microsoft identities (Azure AD identities and Microsoft accounts, and social and local accounts through Azure AD B2C) as it uses the Microsoft identity platform endpoint,
29+
- your users will get the best single-sign-on experience.
30+
- your application can enable incremental consent, and supporting conditional access is easier
31+
- you benefit from the innovation.
32+
33+
**MSAL.NET is now the recommended auth library to use with the Microsoft identity platform**. No new features will be implemented on ADAL.NET. The efforts are focused on improving MSAL.
34+
35+
This article describes the differences between the Microsoft Authentication Library for .NET (MSAL.NET) and Azure AD Authentication Library for .NET (ADAL.NET) and helps you migrate to MSAL.
2936

3037
## Differences between ADAL and MSAL apps
38+
3139
In most cases you want to use MSAL.NET and the Microsoft identity platform endpoint, which is the latest generation of Microsoft authentication libraries. Using MSAL.NET, you acquire tokens for users signing-in to your application with Azure AD (work and school accounts), Microsoft (personal) accounts (MSA), or Azure AD B2C.
3240

3341
If you are already familiar with the Azure AD for developers (v1.0) endpoint (and ADAL.NET), you might want to read [What's different about the Microsoft identity platform (v2.0) endpoint?](active-directory-v2-compare.md).
3442

35-
However, you still need to use ADAL.NET if your application needs to sign in users with earlier versions of [Active Directory Federation Services (ADFS)](/windows-server/identity/active-directory-federation-services). For more details, see [ADFS support](https://aka.ms/msal-net-adfs-support).
43+
However, you still need to use ADAL.NET if your application needs to sign in users with earlier versions of [Active Directory Federation Services (ADFS)](/windows-server/identity/active-directory-federation-services). For more information, see [ADFS support](https://aka.ms/msal-net-adfs-support).
3644

3745
The following picture summarizes some of the differences between ADAL.NET and MSAL.NET
3846
![Side-by-side code](./media/msal-compare-msaldotnet-and-adaldotnet/differences.png)
@@ -204,7 +212,7 @@ var scopes = new [] { ResourceId+"/.default"};
204212

205213
### Scopes to request in the case of client credential flow / daemon app
206214

207-
In the case of client credential flow, the scope to pass would also be `/.default`. This tells to Azure AD: "all the app-level permissions that the admin has consented to in the application registration.
215+
In the case of client credential flow, the scope to pass would also be `/.default`. This scope tells to Azure AD: "all the app-level permissions that the admin has consented to in the application registration.
208216

209217
## ADAL to MSAL migration
210218

@@ -213,9 +221,9 @@ Some of those solutions were used in scenarios such as:
213221
* Long running services that do actions including refreshing dashboards on behalf of the users whereas the users are no longer connected.
214222
* WebFarm scenarios for enabling the client to bring the RT to the web service (caching is done client side, encrypted cookie, and not server side)
215223

216-
This is not the case with MSAL.NET, however as we no longer recommend utilizing refresh tokens in this manner for security reasons. This would make it difficult to migrate to MSAL 3.x as the API does not provide a way to pass in previously acquired refresh tokens.
224+
MSAL.NET does not expose refresh tokens, for security reasons: MSAL handles refreshing tokens for you.
217225

218-
Fortunately, MSAL.NET now has an API that allows you to migrate your previous refresh tokens into the `IConfidentialClientApplication`
226+
Fortunately, MSAL.NET now has an API that allows you to migrate your previous refresh tokens (acquired with ADAL) into the `IConfidentialClientApplication`:
219227

220228
```CSharp
221229
/// <summary>

0 commit comments

Comments
 (0)