Skip to content

Commit 233b7b2

Browse files
committed
Merging changes synced from https://github.com/MicrosoftDocs/azure-docs-pr (branch live)
2 parents 2e6e3f0 + 00ecafc commit 233b7b2

File tree

107 files changed

+1409
-771
lines changed

Some content is hidden

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

107 files changed

+1409
-771
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.

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)