Skip to content

Commit 8d8deb9

Browse files
authored
Merge pull request #134572 from MicrosoftDocs/master
Merge master to live, 4 AM
2 parents 957c916 + 1178830 commit 8d8deb9

File tree

307 files changed

+4412
-2002
lines changed

Some content is hidden

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

307 files changed

+4412
-2002
lines changed

.openpublishing.redirection.json

Lines changed: 52 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,11 @@
255255
"redirect_url": "/previous-versions/azure/virtual-machines/windows/sqlclassic/virtual-machines-windows-classic-ps-sql-keyvault",
256256
"redirect_document_id": false
257257
},
258+
{
259+
"source_path": "articles/key-vault/secrets/quick-create-net-v3.md",
260+
"redirect_url": "/azure/key-vault/secrets/quick-create-net-v4",
261+
"redirect_document_id": false
262+
},
258263
{
259264
"source_path": "articles/virtual-machines/windows/sqlclassic/virtual-machines-windows-classic-sql-automated-backup.md",
260265
"redirect_url": "/previous-versions/azure/virtual-machines/windows/sqlclassic/virtual-machines-windows-classic-sql-automated-backup",
@@ -1337,43 +1342,43 @@
13371342
"redirect_document": false
13381343
},
13391344
{
1340-
"source_path": "articles/automation/automation-update-management.md",
1341-
"redirect_url": "/azure/automation/update-management/update-mgmt-overview",
1345+
"source_path": "articles/automation/update-management/update-mgmt-overview.md",
1346+
"redirect_url": "/azure/automation/update-management/overview",
13421347
"redirect_document": false
13431348
},
13441349
{
1345-
"source_path": "articles/automation/automation-update-management-deploy-template.md",
1346-
"redirect_url": "/azure/automation/update-management/update-mgmt-enable-template",
1350+
"source_path": "articles/automation/update-management/update-mgmt-enable-template.md",
1351+
"redirect_url": "/azure/automation/update-management/enable-from-template",
13471352
"redirect_document": false
13481353
},
13491354
{
1350-
"source_path": "articles/automation/automation-onboard-solutions-from-browse.md",
1351-
"redirect_url": "/azure/automation/update-management/update-mgmt-enable-portal",
1355+
"source_path": "articles/automation/update-management/update-mgmt-enable-portal.md",
1356+
"redirect_url": "/azure/automation/update-management/enable-from-portal",
13521357
"redirect_document": false
13531358
},
13541359
{
1355-
"source_path": "articles/automation/automation-onboard-solutions-from-vm.md",
1356-
"redirect_url": "/azure/automation/update-management/update-mgmt-enable-vm",
1360+
"source_path": "articles/automation/update-management/update-mgmt-enable-vm.md",
1361+
"redirect_url": "/azure/automation/update-management/enable-from-vm",
13571362
"redirect_document": false
13581363
},
13591364
{
1360-
"source_path": "articles/automation/automation-onboard-solutions-from-automation-account.md",
1361-
"redirect_url": "/azure/automation/update-management/update-mgmt-enable-automation-account",
1365+
"source_path": "articles/automation/update-management/update-mgmt-enable-automation-account.md",
1366+
"redirect_url": "/azure/automation/update-management/enable-from-automation-account",
13621367
"redirect_document": false
13631368
},
13641369
{
1365-
"source_path": "articles/automation/automation-onboard-solutions.md",
1366-
"redirect_url": "/azure/automation/update-management/update-mgmt-enable-runbook",
1370+
"source_path": "articles/automation/update-management/update-mgmt-enable-runbook.md",
1371+
"redirect_url": "/azure/automation/update-management/enable-from-runbook",
13671372
"redirect_document": false
13681373
},
13691374
{
1370-
"source_path": "articles/automation/automation-tutorial-update-management.md",
1371-
"redirect_url": "/azure/automation/update-management/update-mgmt-manage-updates-for-vm",
1375+
"source_path": "articles/automation/update-management/update-mgmt-manage-updates-for-vm.md",
1376+
"redirect_url": "/azure/automation/update-management/manage-updates-for-vm",
13721377
"redirect_document": false
13731378
},
13741379
{
13751380
"source_path": "articles/automation/manage-update-multi.md",
1376-
"redirect_url": "/azure/automation/update-management/update-mgmt-manage-updates-for-vm",
1381+
"redirect_url": "/azure/automation/update-management/manage-updates-for-vm",
13771382
"redirect_document": false
13781383
},
13791384
{
@@ -1382,43 +1387,43 @@
13821387
"redirect_document": false
13831388
},
13841389
{
1385-
"source_path": "articles/automation/pre-post-scripts.md",
1386-
"redirect_url": "/azure/automation/update-management/update-mgmt-pre-post-scripts",
1390+
"source_path": "articles/automation/update-management/update-mgmt-pre-post-scripts.md",
1391+
"redirect_url": "/azure/automation/update-management/pre-post-scripts",
13871392
"redirect_document": false
13881393
},
13891394
{
1390-
"source_path": "articles/automation/updatemgmt-mecmintegration.md",
1391-
"redirect_url": "/azure/automation/update-management/update-mgmt-mecmintegration",
1395+
"source_path": "articles/automation/update-management/update-mgmt-mecmintegration.md",
1396+
"redirect_url": "/azure/automation/update-management/mecmintegration",
13921397
"redirect_document": false
13931398
},
13941399
{
1395-
"source_path": "articles/automation/automation-configure-windows-update.md",
1396-
"redirect_url": "/azure/automation/update-management/update-mgmt-configure-wuagent",
1400+
"source_path": "articles/automation/update-management/update-mgmt-configure-wuagent.md",
1401+
"redirect_url": "/azure/automation/update-management/configure-wuagent",
13971402
"redirect_document": false
13981403
},
13991404
{
1400-
"source_path": "articles/automation/automation-update-management-groups.md",
1401-
"redirect_url": "/azure/automation/update-management/update-mgmt-groups",
1405+
"source_path": "articles/automation/update-management/update-mgmt-groups.md",
1406+
"redirect_url": "/azure/automation/update-management/configure-groups",
14021407
"redirect_document": false
14031408
},
14041409
{
1405-
"source_path": "articles/automation/automation-update-management-query-logs.md",
1406-
"redirect_url": "/azure/automation/update-management/update-mgmt-query-logs",
1410+
"source_path": "articles/automation/update-management/update-mgmt-query-logs.md",
1411+
"redirect_url": "/azure/automation/update-management/query-logs",
14071412
"redirect_document": false
14081413
},
14091414
{
1410-
"source_path": "articles/automation/automation-scope-configurations-update-management.md",
1411-
"redirect_url": "/azure/automation/update-management/update-mgmt-scope-configuration",
1415+
"source_path": "articles/automation/update-management/update-mgmt-scope-configuration.md",
1416+
"redirect_url": "/azure/automation/update-management/scope-configuration",
14121417
"redirect_document": false
14131418
},
14141419
{
1415-
"source_path": "articles/automation/automation-unlink-workspace-update-management.md",
1416-
"redirect_url": "/azure/automation/update-management/update-mgmt-remove-feature",
1420+
"source_path": "articles/automation/update-management/update-mgmt-remove-feature.md",
1421+
"redirect_url": "/azure/automation/update-management/remove-feature",
14171422
"redirect_document": false
14181423
},
14191424
{
1420-
"source_path": "articles/automation/automation-remove-vms-from-update-management.md",
1421-
"redirect_url": "/azure/automation/update-management/update-mgmt-remove-vms",
1425+
"source_path": "articles/automation/update-management/update-mgmt-remove-vms.md",
1426+
"redirect_url": "/azure/automation/update-management/remove-vms",
14221427
"redirect_document": false
14231428
},
14241429
{
@@ -58237,7 +58242,23 @@
5823758242
"source_path": "articles/private-link/create-private-endpoint-webapp-portal.md",
5823858243
"redirect_url": "/azure/private-link/tutorial-private-endpoint-webapp-portal",
5823958244
"redirect_document_id": false
58245+
},
58246+
{
58247+
"source_path": "articles/healthcare-apis/fhir-oss-cli-quickstart.md",
58248+
"redirect_url": "/azure/healthcare-apis/fhir-paas-cli-quickstart",
58249+
"redirect_document_id": false
58250+
},
58251+
{
58252+
"source_path": "articles/healthcare-apis/fhir-oss-portal-quickstart.md",
58253+
"redirect_url": "/azure/healthcare-apis/fhir-paas-portal-quickstart",
58254+
"redirect_document_id": false
58255+
},
58256+
{
58257+
"source_path": "articles/healthcare-apis/fhir-oss-powershell-quickstart.md",
58258+
"redirect_url": "/azure/healthcare-apis/fhir-paas-powershell-quickstart",
58259+
"redirect_document_id": false
5824058260
}
58261+
5824158262

5824258263

5824358264
]

articles/active-directory-b2c/TOC.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,10 @@
101101
items:
102102
- name: App integration
103103
items:
104-
- name: Register an application
104+
- name: Register a web application
105105
href: tutorial-register-applications.md
106+
- name: Register a single-page application (SPA)
107+
href: tutorial-register-spa.md
106108
- name: Register a SAML service provider
107109
href: connect-with-saml-service-providers.md
108110
displayName: SP, RP, service provider, connect

articles/active-directory-b2c/add-web-api-application.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ To register an application in your Azure AD B2C tenant, you can use our new unif
3030
1. Select **Register**.
3131
1. Record the **Application (client) ID** for use in your web API's code.
3232

33-
If you have an application that implements the implicit grant flow, for example a JavaScript-based single-page application (SPA), you can enable the flow by following these steps:
33+
If you have an application that implements the implicit grant flow, for example a [JavaScript-based single-page application (SPA)](tutorial-register-spa.md), you can enable the flow by following these steps:
3434

3535
1. Under **Manage**, select **Authentication**.
3636
1. Under **Implicit grant**, select both the **Access tokens** and **ID tokens** check boxes.

articles/active-directory-b2c/app-registrations-training-guide.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,13 @@ The Azure AD B2C App registrations experience is based on the general [App Regis
4949
## New supported account types
5050

5151
In the new experience, you select a support account type from the following options:
52-
- Accounts in this organizational directory only.
53-
- Accounts in any organizational directory (Any Azure AD directory – Multitenant).
54-
- Accounts in any organizational directory or any identity provider. For authenticating users with Azure AD B2C.
52+
- Accounts in this organizational directory only
53+
- Accounts in any organizational directory (Any Azure AD directory – Multitenant)
54+
- Accounts in any identity provider or organizational directory (for authenticating users with user flows)
5555

5656
To understand the different account types, select **Help me choose** in the creation experience.
5757

58-
In the legacy experience, apps were always created as customer-facing applications. For those apps, the account type is set to **Accounts in any organizational directory or any identity provider. For authenticating users with Azure AD B2C**.
58+
In the legacy experience, apps were always created as customer-facing applications. For those apps, the account type is set to **Accounts in any identity provider or organizational directory (for authenticating users with user flows)**.
5959
> [!NOTE]
6060
> This option is required to be able to run Azure AD B2C user flows to authenticate users for this application. Learn [how to register an application for use with user flows.](tutorial-register-applications.md)
6161
@@ -92,13 +92,12 @@ In the new experience, instead of **Keys**, you use the **Certificates & secrets
9292

9393
## Features not applicable in Azure AD B2C tenants
9494
The following Azure AD app registrations capabilities are not applicable to or available in Azure AD B2C tenants:
95-
- **Roles and administrators** - This requires an Azure AD Premium P1 or P2 license that is not currently available for Azure AD B2C.
95+
- **Roles and administrators** - Not currently available for Azure AD B2C.
9696
- **Branding** - UI/UX customization is configured in the **Company branding** experience or as part of a user flow. Learn to [customize the user interface in Azure Active Directory B2C](customize-ui-overview.md).
9797
- **Publisher domain verification** - Your app is registered on *.onmicrosoft.com*, which isn't a verified domain. Additionally, the publisher domain is primarily used for granting user consent, which doesn't apply to Azure AD B2C apps for user authentication. [Learn more about publisher domain](https://docs.microsoft.com/azure/active-directory/develop/howto-configure-publisher-domain).
9898
- **Token configuration** - The token is configured as part of a user flow rather than an app.
9999
- The **Quickstarts** experience is currently not available for Azure AD B2C tenants.
100-
- The **Integration assistant** blade is currently not available for Azure AD B2C tenants.
101-
100+
<!-- - The **Integration assistant** blade is currently not available for Azure AD B2C tenants. -->
102101

103102
## Limitations
104103
The new experience has the following limitations:

articles/active-directory-b2c/application-types.md

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ ms.subservice: B2C
1515

1616
---
1717
# Application types that can be used in Active Directory B2C
18-
18+
1919
Azure Active Directory B2C (Azure AD B2C) supports authentication for a variety of modern application architectures. All of them are based on the industry standard protocols [OAuth 2.0](protocols-overview.md) or [OpenID Connect](protocols-overview.md). This article describes the types of applications that you can build, independent of the language or platform you prefer. It also helps you understand the high-level scenarios before you start building applications.
2020

2121
Every application that uses Azure AD B2C must be registered in your [Azure AD B2C tenant](tutorial-create-tenant.md) by using the [Azure portal](https://portal.azure.com/). The application registration process collects and assigns values, such as:
@@ -71,6 +71,26 @@ To see this scenario in action, try one of the web application sign-in code samp
7171

7272
In addition to facilitating simple sign-in, a web server application might also need to access a back-end web service. In this case, the web application can perform a slightly different [OpenID Connect flow](openid-connect.md) and acquire tokens by using authorization codes and refresh tokens. This scenario is depicted in the following [Web APIs section](#web-apis).
7373

74+
## Single-page applications
75+
Many modern web applications are built as client-side single-page applications ("SPAs"). Developers write them by using JavaScript or a SPA framework such as Angular, Vue, and React. These applications run on a web browser and have different authentication characteristics than traditional server-side web applications.
76+
77+
Azure AD B2C provides **two** options to enable single-page applications to sign in users and get tokens to access back-end services or web APIs:
78+
79+
### Authorization code flow (with PKCE)
80+
- [OAuth 2.0 Authorization code flow (with PKCE)](./authorization-code-flow.md). The authorization code flow allows the application to exchange an authorization code for **ID** tokens to represent the authenticated user and **Access** tokens needed to call protected APIs. In addition, it returns **Refresh** tokens that provide long-term access to resources on behalf of users without requiring interaction with those users.
81+
82+
This is the **recommended** approach. Having limited-lifetime refresh tokens helps your application adapt to [modern browser cookie privacy limitations](../active-directory/develop/reference-third-party-cookies-spas.md), like Safari ITP.
83+
84+
To take advantage of this flow, your application can use an authentication library that supports it, like [MSAL.js 2.x](https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-browser).
85+
86+
<!-- ![Single-page applications-auth](./media/tutorial-single-page-app/spa-app-auth.svg) -->
87+
![Single-page applications-auth](./media/tutorial-single-page-app/active-directory-oauth-code-spa.png)
88+
89+
### Implicit grant flow
90+
- [OAuth 2.0 implicit flow](implicit-flow-single-page-application.md). Some frameworks, like [MSAL.js 1.x](https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-core), only support the implicit grant flow. The implicit grant flow allows the application to get **ID** and **Access** tokens. Unlike the authorization code flow, implicit grant flow does not return a **Refresh token**.
91+
92+
This authentication flow does not include application scenarios that use cross-platform JavaScript frameworks such as Electron and React-Native. Those scenarios require further capabilities for interaction with the native platforms.
93+
7494
## Web APIs
7595

7696
You can use Azure AD B2C to secure web services such as your application's RESTful web API. Web APIs can use OAuth 2.0 to secure their data, by authenticating incoming HTTP requests using tokens. The caller of a web API appends a token in the authorization header of an HTTP request:
@@ -81,7 +101,7 @@ Host: www.mywebapi.com
81101
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6...
82102
Accept: application/json
83103
...
84-
```
104+
```
85105

86106
The web API can then use the token to verify the API caller's identity and to extract information about the caller from claims that are encoded in the token. Learn more about the types of tokens and claims available to an app in the [Azure AD B2C token reference](tokens-overview.md).
87107

0 commit comments

Comments
 (0)