Skip to content

Commit 00ecafc

Browse files
authored
Merge pull request #207627 from MicrosoftDocs/main
8/10 PM Publish
2 parents 1d229db + 0f7659b commit 00ecafc

File tree

143 files changed

+1490
-830
lines changed

Some content is hidden

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

143 files changed

+1490
-830
lines changed

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

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ manager: CelesteDG
99
ms.service: active-directory
1010
ms.workload: identity
1111
ms.topic: conceptual
12-
ms.date: 06/14/2022
12+
ms.date: 08/10/2022
1313
ms.author: kengaderdus
1414
ms.subservice: B2C
1515

@@ -23,7 +23,7 @@ Every application that uses Azure AD B2C must be registered in your [Azure AD B2
2323
* An **Application ID** that uniquely identifies your application.
2424
* A **Reply URL** that can be used to direct responses back to your application.
2525

26-
Each request that is sent to Azure AD B2C specifies a **user flow** (a built-in policy) or a **custom policy** that controls the behavior of Azure AD B2C. Both policy types enable you to create a highly customizable set of user experiences.
26+
Each request that is sent to Azure AD B2C specifies a **[user flow](user-flow-overview.md)** (a built-in policy) or a **[custom policy](user-flow-overview.md)** that controls the behavior of Azure AD B2C. Both policy types enable you to create a highly customizable set of user experiences.
2727

2828
The interaction of every application follows a similar high-level pattern:
2929

@@ -73,15 +73,15 @@ In addition to facilitating simple sign in, a web server application might also
7373

7474
## Single-page applications
7575

76-
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+
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, or React. These applications run on a web browser and have different authentication characteristics than traditional server-side web applications.
7777

7878
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:
7979

8080
### Authorization code flow (with PKCE)
8181

8282
[OAuth 2.0 Authorization code flow (with PKCE)](./authorization-code-flow.md) 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.
8383

84-
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.
84+
We **recommended** this 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.
8585

8686
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).
8787

@@ -90,7 +90,9 @@ To take advantage of this flow, your application can use an authentication libra
9090

9191
### Implicit grant flow
9292

93-
Some libraries, 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 or your application is implemented to use implicit flow. In these cases, Azure AD B2C supports the [OAuth 2.0 implicit flow](implicit-flow-single-page-application.md). The implicit grant flow allows the application to get **ID** and **Access** tokens. Unlike the authorization code flow, implicit grant flow doesn't return a **Refresh token**.
93+
Some libraries, 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](implicit-flow-single-page-application.md) or your application is implemented to use implicit flow. In these cases, Azure AD B2C supports the [OAuth 2.0 implicit flow](implicit-flow-single-page-application.md). The implicit grant flow allows the application to get **ID** and **Access** tokens. Unlike the authorization code flow, implicit grant flow doesn't return a **Refresh token**.
94+
95+
We **don't recommended** this approach.
9496

9597
This authentication flow doesn't 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.
9698

articles/active-directory-b2c/configure-authentication-sample-web-app-with-api.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ A computer that's running either:
6262

6363
# [Visual Studio](#tab/visual-studio)
6464

65-
* [Visual Studio 2022 17.0 or later](https://visualstudio.microsoft.com/downloads/?utm_medium=microsoft&utm_source=docs.microsoft.com&utm_campaign=inline+link&utm_content=download+vs2019) with the **ASP.NET and web development** workload
65+
* [Visual Studio 2022 17.0 or later](https://visualstudio.microsoft.com/downloads) with the **ASP.NET and web development** workload
6666
* [.NET 6.0 SDK](https://dotnet.microsoft.com/download/dotnet)
6767

6868
# [Visual Studio Code](#tab/visual-studio-code)

articles/active-directory-b2c/configure-authentication-sample-web-app.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ A computer that's running either of the following:
4444

4545
# [Visual Studio](#tab/visual-studio)
4646

47-
* [Visual Studio 2022 17.0 or later](https://visualstudio.microsoft.com/downloads/?utm_medium=microsoft&utm_source=docs.microsoft.com&utm_campaign=inline+link&utm_content=download+vs2019), with the ASP.NET and web development workload
47+
* [Visual Studio 2022 17.0 or later](https://visualstudio.microsoft.com/downloads), with the ASP.NET and web development workload
4848
* [.NET 6.0 SDK](https://dotnet.microsoft.com/download/dotnet)
4949

5050
# [Visual Studio Code](#tab/visual-studio-code)

articles/active-directory-b2c/json-transformations.md

Lines changed: 85 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ manager: CelesteDG
99
ms.service: active-directory
1010
ms.workload: identity
1111
ms.topic: reference
12-
ms.date: 02/16/2022
12+
ms.date: 08/10/2022
1313
ms.author: kengaderdus
1414
ms.subservice: B2C
1515
---
@@ -59,6 +59,90 @@ Check out the [Live demo](https://github.com/azure-ad-b2c/unit-tests/tree/main/c
5959
| InputParameter | Any string following dot notation | string | The JsonPath of the JSON where the constant string value will be inserted into. |
6060
| OutputClaim | outputClaim | string | The generated JSON string. |
6161

62+
### JSON Arrays
63+
64+
To add JSON objects to a JSON array, use the format of **array name** and the **index** in the array. The array is zero based. Start with zero to N, without skipping any number. The items in the array can contain any object. For example, the first item contains two objects, *app* and *appId*. The second item contains a single object, *program*. The third item contains four objects, *color*, *language*, *logo* and *background*.
65+
66+
The following example demonstrates how to configure JSON arrays. The **emails** array uses the `InputClaims` with dynamic values. The **values** array uses the `InputParameters` with static values.
67+
68+
```xml
69+
<ClaimsTransformation Id="GenerateJsonPayload" TransformationMethod="GenerateJson">
70+
<InputClaims>
71+
<InputClaim ClaimTypeReferenceId="mailToName1" TransformationClaimType="emails.0.name" />
72+
<InputClaim ClaimTypeReferenceId="mailToAddress1" TransformationClaimType="emails.0.address" />
73+
<InputClaim ClaimTypeReferenceId="mailToName2" TransformationClaimType="emails.1.name" />
74+
<InputClaim ClaimTypeReferenceId="mailToAddress2" TransformationClaimType="emails.1.address" />
75+
</InputClaims>
76+
<InputParameters>
77+
<InputParameter Id="values.0.app" DataType="string" Value="Mobile app" />
78+
<InputParameter Id="values.0.appId" DataType="string" Value="123" />
79+
<InputParameter Id="values.1.program" DataType="string" Value="Holidays" />
80+
<InputParameter Id="values.2.color" DataType="string" Value="Yellow" />
81+
<InputParameter Id="values.2.language" DataType="string" Value="Spanish" />
82+
<InputParameter Id="values.2.logo" DataType="string" Value="contoso.png" />
83+
<InputParameter Id="values.2.background" DataType="string" Value="White" />
84+
</InputParameters>
85+
<OutputClaims>
86+
<OutputClaim ClaimTypeReferenceId="result" TransformationClaimType="outputClaim" />
87+
</OutputClaims>
88+
</ClaimsTransformation>
89+
```
90+
91+
The result of this claims transformation:
92+
93+
```json
94+
{
95+
"values": [
96+
{
97+
"app": "Mobile app",
98+
"appId": "123"
99+
},
100+
{
101+
"program": "Holidays"
102+
},
103+
{
104+
"color": "Yellow",
105+
"language": "Spanish",
106+
"logo": "contoso.png",
107+
"background": "White"
108+
}
109+
],
110+
"emails": [
111+
{
112+
"name": "Joni",
113+
"address": "[email protected]"
114+
},
115+
{
116+
"name": "Emily",
117+
"address": "[email protected]"
118+
}
119+
]
120+
}
121+
```
122+
123+
To specify a JSON array in both the input claims and the input parameters, you must start the array in the `InputClaims` element, zero to N. Then, in the `InputParameters` element continue the index from the last index.
124+
125+
The following example demonstrates an array that is defined in both the input claims and the input parameters. The first item of the *values* array `values.0` is defined in the input claims. The input parameters continue from index one `values.1` through two index `values.2`.
126+
127+
```xml
128+
<ClaimsTransformation Id="GenerateJsonPayload" TransformationMethod="GenerateJson">
129+
<InputClaims>
130+
<InputClaim ClaimTypeReferenceId="app" TransformationClaimType="values.0.app" />
131+
<InputClaim ClaimTypeReferenceId="appId" TransformationClaimType="values.0.appId" />
132+
</InputClaims>
133+
<InputParameters>
134+
<InputParameter Id="values.1.program" DataType="string" Value="Holidays" />
135+
<InputParameter Id="values.2.color" DataType="string" Value="Yellow" />
136+
<InputParameter Id="values.2.language" DataType="string" Value="Spanish" />
137+
<InputParameter Id="values.2.logo" DataType="string" Value="contoso.png" />
138+
<InputParameter Id="values.2.background" DataType="string" Value="White" />
139+
</InputParameters>
140+
<OutputClaims>
141+
<OutputClaim ClaimTypeReferenceId="result" TransformationClaimType="outputClaim" />
142+
</OutputClaims>
143+
</ClaimsTransformation>
144+
```
145+
62146
### Example of GenerateJson
63147

64148
The following example generates a JSON string based on the claim value of "email" and "OTP" and constant strings.
67.9 KB
Loading

articles/active-directory-b2c/troubleshoot-with-application-insights.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ manager: CelesteDG
99
ms.service: active-directory
1010
ms.workload: identity
1111
ms.topic: troubleshooting
12-
ms.date: 09/20/2021
12+
ms.date: 08/04/2022
1313
ms.custom: project-no-code
1414
ms.author: kengaderdus
1515
ms.subservice: B2C
@@ -144,7 +144,7 @@ After you set up the Application Insights, and configure the custom policy, you
144144
To get Application Insights ID and key:
145145

146146
1. In Azure portal, open the Application Insights resource for your application.
147-
1. Select **Settings**, then select **API Access**.
147+
1. Select **Configure**, then select **API Access**.
148148
1. Copy the **Application ID**
149149
1. Select **Create API Key**
150150
1. Check the **Read telemetry** box.

articles/active-directory/conditional-access/concept-conditional-access-cloud-apps.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -167,11 +167,11 @@ In some cases, an **All cloud apps** policy could inadvertently block user acces
167167

168168
- Calls to Azure AD Graph and MS Graph, to access user profile, group membership and relationship information that is commonly used by applications excluded from policy. The excluded scopes are listed below. Consent is still required for apps to use these permissions.
169169
- For native clients:
170-
- Azure AD Graph: User.Read
171-
- MS Graph: User.Read, People.Read, and UserProfile.Read
170+
- Azure AD Graph: email, offline_access, openid, profile, User.read
171+
- MS Graph: User.read, People.read, and UserProfile.read
172172
- For confidential / authenticated clients:
173-
- Azure AD Graph: User.Read, User.Read.All, and User.ReadBasic.All
174-
- MS Graph: User.Read, User.Read.All, User.ReadBasic.All, People.Read, People.Read.All, GroupMember.Read.All, Member.Read.Hidden, and UserProfile.Read
173+
- Azure AD Graph: email, offline_access, openid, profile, User.read, User.read.all, and User.readbasic.all
174+
- MS Graph: User.read,User.read.all, User.read.All People.read, People.read.all, GroupMember.Read.All, Member.Read.Hidden, and UserProfile.read
175175

176176
## User actions
177177

articles/active-directory/devices/concept-primary-refresh-token.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ ms.collection: M365-identity-device-management
1616
---
1717
# What is a Primary Refresh Token?
1818

19-
A Primary Refresh Token (PRT) is a key artifact of Azure AD authentication on Windows 10 or newer, Windows Server 2016 and later versions, iOS, and Android devices. It is a JSON Web Token (JWT) specially issued to Microsoft first party token brokers to enable single sign-on (SSO) across the applications used on those devices. In this article, we will provide details on how a PRT is issued, used, and protected on Windows 10 or newer devices.
19+
A Primary Refresh Token (PRT) is a key artifact of Azure AD authentication on Windows 10 or newer, Windows Server 2016 and later versions, iOS, and Android devices. It is a JSON Web Token (JWT) specially issued to Microsoft first party token brokers to enable single sign-on (SSO) across the applications used on those devices. In this article, we will provide details on how a PRT is issued, used, and protected on Windows 10 or newer devices. We recommend using the latest versions of Windows 10, Windows 11 and Windows Server 2019+ to get the best SSO experience.
2020

2121
This article assumes that you already understand the different device states available in Azure AD and how single sign-on works in Windows 10 or newer. For more information about devices in Azure AD, see the article [What is device management in Azure Active Directory?](overview.md)
2222

@@ -25,7 +25,7 @@ This article assumes that you already understand the different device states ava
2525
The following Windows components play a key role in requesting and using a PRT:
2626

2727
* **Cloud Authentication Provider** (CloudAP): CloudAP is the modern authentication provider for Windows sign in, that verifies users logging to a Windows 10 or newer device. CloudAP provides a plugin framework that identity providers can build on to enable authentication to Windows using that identity provider’s credentials.
28-
* **Web Account Manager** (WAM): WAM is the default token broker on Windows 10 or newer devices. WAM also provides a plugin framework that identity providers can build on and enable SSO to their applications relying on that identity provider. (Not included in Windows Server 2016 LTSC builds)
28+
* **Web Account Manager** (WAM): WAM is the default token broker on Windows 10 or newer devices. WAM also provides a plugin framework that identity providers can build on and enable SSO to their applications relying on that identity provider.
2929
* **Azure AD CloudAP plugin**: An Azure AD specific plugin built on the CloudAP framework, that verifies user credentials with Azure AD during Windows sign in.
3030
* **Azure AD WAM plugin**: An Azure AD specific plugin built on the WAM framework, that enables SSO to applications that rely on Azure AD for authentication.
3131
* **Dsreg**: An Azure AD specific component on Windows 10 or newer, that handles the device registration process for all device states.

articles/active-directory/external-identities/cross-tenant-access-settings-b2b-collaboration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ With outbound settings, you select which of your users and groups will be able t
232232
- When you're done selecting the users and groups you want to add, choose **Select**.
233233

234234
> [!NOTE]
235-
> When targeting your users and groups, you won't be able to select users who have configured [SMS-based authentication](https://docs.microsoft.com/azure/active-directory/authentication/howto-authentication-sms-signin). This is because users who have a "federated credential" on their user object are blocked to prevent external users from being added to outbound access settings. As a workaround, you can use the [Microsoft Graph API](https://docs.microsoft.com/graph/api/resources/crosstenantaccesspolicy-overview?view=graph-rest-1.0) to add the user's object ID directly or target a group the user belongs to.
235+
> When targeting your users and groups, you won't be able to select users who have configured [SMS-based authentication](/azure/active-directory/authentication/howto-authentication-sms-signin). This is because users who have a "federated credential" on their user object are blocked to prevent external users from being added to outbound access settings. As a workaround, you can use the [Microsoft Graph API](/graph/api/resources/crosstenantaccesspolicy-overview?view=graph-rest-1.0) to add the user's object ID directly or target a group the user belongs to.
236236
237237
1. Select the **External applications** tab.
238238

articles/active-directory/fundamentals/scenario-azure-first-sap-identity-integration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ While that could be a valid reason for using "User assignment required", it does
131131

132132
#### Summary of implementation
133133

134-
On the Azure AD Enterprise Application representing the federation relation with IAS, disable "[User assignment required](../manage-apps/assign-user-or-group-access-portal.md)". This also means you can safely skip [assignment of users as detailed in Microsoft Docs](../saas-apps/sap-hana-cloud-platform-identity-authentication-tutorial.md#assign-the-azure-ad-test-user).
134+
On the Azure AD Enterprise Application representing the federation relation with IAS, disable "[User assignment required](../manage-apps/assign-user-or-group-access-portal.md)". This also means you can safely skip [assignment of users](../saas-apps/sap-hana-cloud-platform-identity-authentication-tutorial.md#assign-the-azure-ad-test-user).
135135

136136
### 3 - Use Azure AD groups for Authorization through Role Collections in IAS/BTP
137137

0 commit comments

Comments
 (0)