Skip to content

Commit d9e3d11

Browse files
authored
Merge pull request #197431 from MicrosoftDocs/main
5/06 PM Publish
2 parents ed17586 + 7dec2dc commit d9e3d11

File tree

62 files changed

+1464
-273
lines changed

Some content is hidden

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

62 files changed

+1464
-273
lines changed

articles/active-directory-b2c/restful-technical-profile.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ Your REST API may need to return an error message, such as 'The user was not fou
259259
| Attribute | Required | Description |
260260
| --------- | -------- | ----------- |
261261
| version | Yes | Your REST API version. For example: 1.0.1 |
262-
| status | Yes | Must be 409 |
262+
| status | Yes | An HTTP response status codes-like number, and must be 409 |
263263
| code | No | An error code from the RESTful endpoint provider, which is displayed when `DebugMode` is enabled. |
264264
| requestId | No | A request identifier from the RESTful endpoint provider, which is displayed when `DebugMode` is enabled. |
265265
| userMessage | Yes | An error message that is shown to the user. |

articles/active-directory-b2c/technical-overview.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ Read the [User flows and custom policies overview](user-flow-overview.md) articl
118118

119119
## User interface
120120

121-
In Azure AD B2C, you can craft your users' identity experiences so that the pages that are shown blend seamlessly with the look and feel of your brand. You get nearly full control of the HTML and CSS content presented to your users when they proceed through your application's identity journeys. With this flexibility, you can maintain brand and visual consistency between your application and Azure AD B2C.
121+
In Azure AD B2C, you can craft your users' identity experiences so that the pages that are shown blend seamlessly with the look and feel of your brand. You get nearly full control of the HTML and CSS content presented to your users when they proceed through your application's identity journeys. (Customizing the pages rendered by third parties when using social accounts is limited to the options provided by the identity provider, and these are outside the control of Azure AD B2C.) With this flexibility, you can maintain brand and visual consistency between your application and Azure AD B2C.
122122

123123

124124

@@ -200,7 +200,7 @@ The following diagram shows how Azure AD B2C can communicate using various proto
200200

201201
## Application integration
202202

203-
When a user wants to sign in to your application, the application initiates an authorization request to a user flow- or custom policy-provided endpoint. The user flow or custom policy defines and controls the user's experience. When they complete a user flow, for example the *sign-up or sign-in* flow, Azure AD B2C generates a token, then redirects the user back to your application.
203+
When a user wants to sign in to your application, the application initiates an authorization request to a user-flow or custom policy-provided endpoint. The user flow or custom policy defines and controls the user's experience. When they complete a user flow, for example the *sign up or sign in* flow, Azure AD B2C generates a token, then redirects the user back to your application. This token is specific to Azure AD B2C and is not to be confused with the token issued by third-party identity providers when using social accounts. For information about how to use third-party tokens, see [Pass an identity provider access token to your application in Azure Active Directory B2C](idp-pass-through-user-flow.md).
204204

205205
:::image type="content" source="media/technical-overview/app-integration.png" alt-text="Mobile app with arrows showing flow between Azure AD B2C sign-in page.":::
206206

@@ -226,7 +226,7 @@ Azure AD B2C evaluates each sign-in event and ensures that all policy requiremen
226226

227227
## Password complexity
228228

229-
During sign up or password reset, your users must supply a password that meets complexity rules. By default, Azure AD B2C enforces a strong password policy. Azure AD B2C also provides configuration options for specifying the complexity requirements of the passwords your customers use.
229+
During sign up or password reset, your users must supply a password that meets complexity rules. By default, Azure AD B2C enforces a strong password policy. Azure AD B2C also provides configuration options for specifying the complexity requirements of the passwords your customers use when they use local accounts.
230230

231231
![Screenshot of password complexity user experience](media/technical-overview/password-complexity.png)
232232

@@ -259,7 +259,7 @@ Sessions are modeled as encrypted data, with the decryption key known only to th
259259

260260
### Access to user data
261261

262-
Azure AD B2C tenants share many characteristics with enterprise Azure Active Directory tenants used for employees and partners. Shared aspects include mechanisms for viewing administrative roles, assigning roles, and auditing activities.
262+
Azure AD B2C tenants share many characteristics with enterprise Azure Active Directory tenants used for employees and partners. Shared aspects include mechanisms for viewing administrative roles, assigning roles, and auditing activities.
263263

264264
You can assign roles to control who can perform certain administrative actions in Azure AD B2C, including:
265265

articles/active-directory-b2c/userjourneys.md

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,16 @@ User journeys specify explicit paths through which a policy allows a relying par
2121

2222
These user journeys can be considered as templates available to satisfy the core need of the various relying parties of the community of interest. User journeys facilitate the definition of the relying party part of a policy. A policy can define multiple user journeys. Each user journey is a sequence of orchestration steps.
2323

24-
To define the user journeys supported by the policy, a **UserJourneys** element is added under the top-level element of the policy file.
24+
To define the user journeys supported by the policy, a `UserJourneys` element is added under the top-level `TrustFrameworkPolicy` element of the policy file.
25+
26+
```xml
27+
<TrustFrameworkPolicy ...>
28+
...
29+
<UserJourneys>
30+
...
31+
</UserJourneys>
32+
</TrustFrameworkPolicy>
33+
```
2534

2635
The **UserJourneys** element contains the following element:
2736

@@ -51,13 +60,13 @@ The **AuthorizationTechnicalProfiles** element contains the following element:
5160

5261
| Element | Occurrences | Description |
5362
| ------- | ----------- | ----------- |
54-
| AuthorizationTechnicalProfile | 0:1 | List of authorization technical profiles. |
63+
| AuthorizationTechnicalProfile | 0:1 | The technical profile reference used to authorize the user. |
5564

5665
The **AuthorizationTechnicalProfile** element contains the following attribute:
5766

5867
| Attribute | Required | Description |
5968
| --------- | -------- | ----------- |
60-
| TechnicalProfileReferenceId | Yes | The identifier of the technical profile that is to be executed. |
69+
| ReferenceId | Yes | The identifier of the technical profile that is to be executed. |
6170

6271
The following example shows a user journey element with authorization technical profiles:
6372

@@ -81,6 +90,13 @@ Orchestration steps can be conditionally executed based on preconditions defined
8190

8291
To specify the ordered list of orchestration steps, an **OrchestrationSteps** element is added as part of the policy. This element is required.
8392

93+
```xml
94+
<UserJourney Id="SignUpOrSignIn">
95+
<OrchestrationSteps>
96+
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
97+
...
98+
```
99+
84100
The **OrchestrationSteps** element contains the following element:
85101

86102
| Element | Occurrences | Description |
@@ -92,7 +108,7 @@ The **OrchestrationStep** element contains the following attributes:
92108
| Attribute | Required | Description |
93109
| --------- | -------- | ----------- |
94110
| `Order` | Yes | The order of the orchestration steps. |
95-
| `Type` | Yes | The type of the orchestration step. Possible values: <ul><li>**ClaimsProviderSelection** - Indicates that the orchestration step presents various claims providers to the user to select one.</li><li>**CombinedSignInAndSignUp** - Indicates that the orchestration step presents a combined social provider sign-in and local account sign-up page.</li><li>**ClaimsExchange** - Indicates that the orchestration step exchanges claims with a claims provider.</li><li>**GetClaims** - Specifies that the orchestration step should process claim data sent to Azure AD B2C from the relying party via its `InputClaims` configuration.</li><li>**InvokeSubJourney** - Indicates that the orchestration step exchanges claims with a [sub journey](subjourneys.md) (in public preview).</li><li>**SendClaims** - Indicates that the orchestration step sends the claims to the relying party with a token issued by a claims issuer.</li></ul> |
111+
| `Type` | Yes | The type of the orchestration step. Possible values: <ul><li>**ClaimsProviderSelection** - Indicates that the orchestration step presents various claims providers to the user to select one.</li><li>**CombinedSignInAndSignUp** - Indicates that the orchestration step presents a combined social provider sign-in and local account sign-up page.</li><li>**ClaimsExchange** - Indicates that the orchestration step exchanges claims with a claims provider.</li><li>**GetClaims** - Specifies that the orchestration step should process claim data sent to Azure AD B2C from the relying party via its `InputClaims` configuration.</li><li>**InvokeSubJourney** - Indicates that the orchestration step exchanges claims with a [sub journey](subjourneys.md).</li><li>**SendClaims** - Indicates that the orchestration step sends the claims to the relying party with a token issued by a claims issuer.</li></ul> |
96112
| ContentDefinitionReferenceId | No | The identifier of the [content definition](contentdefinitions.md) associated with this orchestration step. Usually the content definition reference identifier is defined in the self-asserted technical profile. But, there are some cases when Azure AD B2C needs to display something without a technical profile. There are two examples - if the type of the orchestration step is one of following: `ClaimsProviderSelection` or `CombinedSignInAndSignUp`, Azure AD B2C needs to display the identity provider selection without having a technical profile. |
97113
| CpimIssuerTechnicalProfileReferenceId | No | The type of the orchestration step is `SendClaims`. This property defines the technical profile identifier of the claims provider that issues the token for the relying party. If absent, no relying party token is created. |
98114

@@ -124,7 +140,7 @@ The **Precondition** element contains the following attributes:
124140
| Attribute | Required | Description |
125141
| --------- | -------- | ----------- |
126142
| `Type` | Yes | The type of check or query to perform for this precondition. The value can be **ClaimsExist**, which specifies that the actions should be performed if the specified claims exist in the user's current claim set, or **ClaimEquals**, which specifies that the actions should be performed if the specified claim exists and its value is equal to the specified value. |
127-
| `ExecuteActionsIf` | Yes | Decides how the precondition is considered satisfied. Possible values: `true` (default), or `false`. If the value is set to `true`, it's considered satisfied when the claim matches the precondition. If the value is set to `false`, it's considered satisfied when the claim doesn't match the precondition. |
143+
| `ExecuteActionsIf` | Yes | Decides how the precondition is considered satisfied. Possible values: `true`, or `false`. If the value is set to `true`, it's considered satisfied when the claim matches the precondition. If the value is set to `false`, it's considered satisfied when the claim doesn't match the precondition. |
128144

129145
The **Precondition** elements contains the following elements:
130146

articles/active-directory/develop/msal-js-sso.md

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,17 @@ ms.custom: aaddev, has-adal-ref
1919

2020
# Single sign-on with MSAL.js
2121

22-
Single Sign-On (SSO) enables users to enter their credentials once to sign in and establish a session, which can be reused across multiple applications without requiring to authenticate again. The session provides a seamless experience to the user and reduces the repeated prompts for credentials.
22+
Single sign-on (SSO) provides a more seamless experience by reducing the number of times your users are asked for their credentials. Users enter their credentials once, and the established session can be reused by other applications on the device without further prompting.
2323

24-
Azure Active Directory (Azure AD) provides SSO capabilities to applications by setting a session cookie when the user authenticates the first time. The MSAL.js library allows applications to apply a session cookie in a few ways.
24+
Azure Active Directory (Azure AD) enables SSO by setting a session cookie when a user first authenticates. MSAL.js allows use of the session cookie for SSO between the browser tabs opened for one or several applications.
2525

2626
## SSO between browser tabs
2727

28-
When your application is open in multiple tabs and you first sign in the user on one tab, the user is also signed in on the other tabs without being prompted. MSAL.js caches the ID token for the user in the browser `localStorage` and will sign the user in to the application on the other open tabs.
28+
When a user has your application open in several tabs and signs in on one of them, they're signed into the same app open on the other tabs without being prompted. MSAL.js caches the ID token for the user in the browser `localStorage` and will sign the user in to the application on the other open tabs.
2929

3030
By default, MSAL.js uses `sessionStorage`, which doesn't allow the session to be shared between tabs. To get SSO between tabs, make sure to set the `cacheLocation` in MSAL.js to `localStorage` as shown below.
3131

3232
```javascript
33-
3433
const config = {
3534
auth: {
3635
clientId: "abcd-ef12-gh34-ikkl-ashdjhlhsdg",
@@ -55,17 +54,21 @@ When applications are hosted on the same domain, the user can sign into an app o
5554

5655
When applications are hosted on different domains, the tokens cached on domain A cannot be accessed by MSAL.js in domain B.
5756

58-
When a user is signed in on domain A navigate to an application on domain B, the user will be redirected or prompted with the sign-in page. Since Azure AD still has the user session cookie, it will sign in the user and no prompt for credentials.
57+
When a user signed in on domain A navigates to an application on domain B, they're typically redirected or prompted to sign in. Because Azure AD still has the user's session cookie, it signs in the user without prompting for credentials.
58+
59+
If the user has multiple user accounts in a session with Azure AD, the user is prompted to pick an account to sign in with.
5960

60-
If the user has multiple user accounts in session with Azure AD, the user will be prompted to pick the relevant account to sign in with.
61+
### Automatic account selection
6162

62-
### Automatically select account on Azure AD
63+
When a user is signed in concurrently to multiple Azure AD accounts on the same device, you might find you have the need to bypass the account selection prompt.
6364

64-
In certain cases, the application has access to the user's authentication context and there's a need to bypass the Azure AD account selection prompt when multiple accounts are signed in. Bypassing the Azure AD account selection prompt can be done in a few different ways:
65+
**Using a session ID**
6566

66-
**Using Session ID**
67+
Use the session ID (SID) in silent authentication requests you make with `acquireTokenSilent` in MSAL.js.
6768

68-
Session ID (SID) is an [optional claim](active-directory-optional-claims.md) that can be configured in the ID tokens. A claim allows the application to identify the user’s Azure AD session independent of the user’s account name or username. You can pass the SID in the request parameters to the `acquireTokenSilent` call. The `acquireTokenSilent` in the request parameters allow Azure AD to bypass the account selection. SID is bound to the session cookie and won't cross browser contexts.
69+
To use a SID, add `sid` as an [optional claim](active-directory-optional-claims.md) to your app's ID tokens. The `sid` claim allows an application to identify a user's Azure AD session independent of their account name or username. To learn how to add optional claims like `sid`, see [Provide optional claims to your app](active-directory-optional-claims.md).
70+
71+
The SID is bound to the session cookie and won't cross browser contexts. You can use the SID only with `acquireTokenSilent`.
6972

7073
```javascript
7174
var request = {
@@ -82,11 +85,9 @@ var request = {
8285
});
8386
```
8487

85-
SID can be used only with silent authentication requests made by `acquireTokenSilent` call in MSAL.js. To find the steps to configure optional claims in your application manifest, see [Provide optional claims to your app](active-directory-optional-claims.md).
86-
87-
**Using Login Hint**
88+
**Using a login hint**
8889

89-
If you don't have SID claim configured or need to bypass the account selection prompt in interactive authentication calls, you can do so by providing a `login_hint` in the request parameters and optionally a `domain_hint` as `extraQueryParameters` in the MSAL.js interactive methods (`loginPopup`, `loginRedirect`, `acquireTokenPopup`, and `acquireTokenRedirect`). For example:
90+
To bypass the account selection prompt typically shown during interactive authentication requests (or for silent requests when you haven't configured the `sid` optional claim), provide a `loginHint`. In multi-tenant applications, also include a `domain_hint`.
9091

9192
```javascript
9293
var request = {
@@ -98,13 +99,13 @@ var request = {
9899
msalInstance.loginRedirect(request);
99100
```
100101

101-
To get the values for login_hint and domain_hint by reading the claims returned in the ID token for the user.
102+
Get the values for `loginHint` and `domain_hint` from the user's **ID token**:
102103

103-
- **loginHint** should be set to the `preferred_username` claim in the ID token.
104+
- `loginHint`: Use the ID token's `preferred_username` claim value.
104105

105-
- **domain_hint** is only required to be passed when using the /common authority. The domain hint is determined by tenant ID(tid). If the `tid` claim in the ID token is `9188040d-6c67-4c5b-b112-36a304b66dad` it's consumers. Otherwise, it's organizations.
106+
- `domain_hint`: Use the ID token's `tid` claim value. Required in requests made by multi-tenant applications that use the */common* authority. Optional for other applications.
106107

107-
For more information about **login_hint** and **domain_hint**, see [auth code grant](v2-oauth2-auth-code-flow.md).
108+
For more information about login hint and domain hint, see [Microsoft identity platform and OAuth 2.0 authorization code flow](v2-oauth2-auth-code-flow.md).
108109

109110
## SSO without MSAL.js login
110111

articles/active-directory/develop/scenario-web-app-call-api-acquire-token.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ ms.service: active-directory
1010
ms.subservice: develop
1111
ms.topic: conceptual
1212
ms.workload: identity
13-
ms.date: 09/25/2020
13+
ms.date: 05/06/2022
1414
ms.author: jmprieur
1515
ms.custom: aaddev
1616
#Customer intent: As an application developer, I want to know how to write a web app that calls web APIs by using the Microsoft identity platform.
@@ -20,7 +20,7 @@ ms.custom: aaddev
2020

2121
You've built your client application object. Now, you'll use it to acquire a token to call a web API. In ASP.NET or ASP.NET Core, calling a web API is done in the controller:
2222

23-
- Get a token for the web API by using the token cache. To get this token, you call the MSAL `AcquireTokenSilent` method (or the equivalent in Microsoft.Identity.Web).
23+
- Get a token for the web API by using the token cache. To get this token, you call the Microsoft Authentication Library (MSAL) `AcquireTokenSilent` method (or the equivalent in Microsoft.Identity.Web).
2424
- Call the protected API, passing the access token to it as a parameter.
2525

2626
# [ASP.NET Core](#tab/aspnetcore)

articles/active-directory/devices/device-management-azure-portal.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ services: active-directory
66
ms.service: active-directory
77
ms.subservice: devices
88
ms.topic: how-to
9-
ms.date: 02/15/2022
9+
ms.date: 05/06/2022
1010

1111
ms.author: joflore
1212
author: MicrosoftGuyJFlo
-1.2 KB
Loading

0 commit comments

Comments
 (0)