Skip to content

Commit 44736e2

Browse files
authored
Merge branch 'master' into patch-1
2 parents 012e569 + 5917ab4 commit 44736e2

File tree

1,922 files changed

+20335
-13047
lines changed

Some content is hidden

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

1,922 files changed

+20335
-13047
lines changed

.openpublishing.redirection.json

Lines changed: 327 additions & 96 deletions
Large diffs are not rendered by default.

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/access-tokens.md

Lines changed: 7 additions & 2 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: 05/12/2020
11+
ms.date: 10/19/2020
1212
ms.custom: project-no-code
1313
ms.author: mimart
1414
ms.subservice: B2C
@@ -46,10 +46,15 @@ The following example shows scopes encoded in a URL:
4646
scope=https%3A%2F%2Fcontoso.onmicrosoft.com%2Fapi%2Fread%20openid%20offline_access
4747
```
4848

49-
If you request more scopes than what is granted for your client application, the call succeeds if at least one permission is granted. The **scp** claim in the resulting access token is populated with only the permissions that were successfully granted. The OpenID Connect standard specifies several special scope values. The following scopes represent the permission to access the user's profile:
49+
If you request more scopes than what is granted for your client application, the call succeeds if at least one permission is granted. The **scp** claim in the resulting access token is populated with only the permissions that were successfully granted.
50+
51+
### OpenID Connect scopes
52+
53+
The OpenID Connect standard specifies several special scope values. The following scopes represent the permission to access the user's profile:
5054

5155
- **openid** - Requests an ID token.
5256
- **offline_access** - Requests a refresh token using [Auth Code flows](authorization-code-flow.md).
57+
- **00000000-0000-0000-0000-000000000000** - Using the client ID as the scope indicates that your app needs an access token that can be used against your own service or web API, represented by the same client ID.
5358

5459
If the **response_type** parameter in an `/authorize` request includes `token`, the **scope** parameter must include at least one resource scope other than `openid` and `offline_access` that will be granted. Otherwise, the `/authorize` request fails.
5560

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)