Skip to content

Commit cf720db

Browse files
committed
Merge branch 'master' of https://github.com/MicrosoftDocs/azure-docs-pr into acrreten
2 parents a813428 + 412c1b6 commit cf720db

File tree

316 files changed

+6859
-1975
lines changed

Some content is hidden

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

316 files changed

+6859
-1975
lines changed

.openpublishing.redirection.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14000,11 +14000,6 @@
1400014000
"redirect_url": "/azure/blockchain/service/connect-vscode",
1400114001
"redirect_document_id": false
1400214002
},
14003-
{
14004-
"source_path_from_root": "/articles/blockchain/service/migration-guide.md",
14005-
"redirect_url": "/azure/blockchain/service/overview",
14006-
"redirect_document_id": false
14007-
},
1400814003
{
1400914004
"source_path_from_root": "/articles/blockchain/templates/ethereum-deployment.md",
1401014005
"redirect_url": "/azure/blockchain/templates/ethereum-poa-deployment",
@@ -47385,6 +47380,11 @@
4738547380
"redirect_url": "http://docs.microsoft.com/azure/cognitive-services/cognitive-services-support-options?context=/azure/cognitive-services/speech-service/context/context",
4738647381
"redirect_document_id": true
4738747382
},
47383+
{
47384+
"source_path_from_root": "/articles/cognitive-services/Speech-Service/speech-studio-test-model.md",
47385+
"redirect_url": "http://docs.microsoft.com/azure/cognitive-services/speech-service/speech-studio-overview",
47386+
"redirect_document_id": true
47387+
},
4738847388
{
4738947389
"source_path_from_root": "/articles/cognitive-services/Speech-Service/whats-new.md",
4739047390
"redirect_url": "http://docs.microsoft.com/azure/cognitive-services/speech-service/overview",

.openpublishing.redirection.media-services.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -605,6 +605,11 @@
605605
"redirect_url": "transform-custom-preset-cli-how-to",
606606
"redirect_document_id": false
607607
},
608+
{
609+
"source_path_from_root": "/articles/media-services/video-indexer/observed-people-tracing.md",
610+
"redirect_url": "azure/media-services/",
611+
"redirect_document_id": false
612+
},
608613
{
609614
"source_path_from_root": "/articles/media-services/latest/encode-custom-preset-rest-how-to.md",
610615
"redirect_url": "transform-custom-preset-rest-how-to",

articles/active-directory-b2c/conditional-access-user-flow.md

Lines changed: 41 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ services: active-directory
66
ms.service: active-directory
77
ms.subservice: conditional-access
88
ms.topic: overview
9-
ms.date: 04/22/2021
9+
ms.date: 05/06/2021
1010
ms.custom: project-no-code
1111
ms.author: mimart
1212
author: msmimart
@@ -44,9 +44,18 @@ The following example shows a Conditional Access technical profile that is used
4444
</TechnicalProfile>
4545
```
4646

47+
To ensure that Identity Protection signals are evaluated properly, you'll want to call the `ConditionalAccessEvaluation` technical profile for all users, including both [local and social accounts](technical-overview.md#consumer-accounts). Otherwise, Identity Protection will indicate an incorrect degree of risk associated with users.
48+
4749
::: zone-end
4850

49-
In the **Remediation** phase that follows, the user is challenged with MFA. Once complete, Azure AD B2C informs Identity Protection that the identified sign-in threat has been remediated and by which method. In this example, Azure AD B2C signals that the user has successfully completed the multi-factor authentication challenge.
51+
In the *Remediation* phase that follows, the user is challenged with MFA. Once complete, Azure AD B2C informs Identity Protection that the identified sign-in threat has been remediated and by which method. In this example, Azure AD B2C signals that the user has successfully completed the multi-factor authentication challenge.
52+
53+
The remediation may also happen through other channels. For example, when the account's password is reset, either by the administrator or by the user. You can check the the user *Risk state* in the [risky users report](identity-protection-investigate-risk.md#navigating-the-risky-users-report).
54+
55+
> [!IMPORTANT]
56+
> To remediate the risk successfully within the journey, make sure the *Remediation* technical profile is called after the *Evaluation* technical profile is executed. If *Evaluation* is invoked without *Remediation*, the risk state will be *At risk*.
57+
58+
When the *Evaluation* technical profile recommendation returns `Block`, the call to the *Evaluation* technical profile is not required. The risk state is set to *At risk*.
5059

5160
::: zone pivot="b2c-custom-policy"
5261

@@ -147,25 +156,19 @@ To add a Conditional Access policy:
147156
|---------|---------|---------|
148157
|**Report-only**|P1, P2| Report-only allows administrators to evaluate the impact of Conditional Access policies before enabling them in their environment. We recommend you check policy with this state, and determine the impact to end users without requiring multi-factor authentication or blocking users. For more information, see [Review Conditional Access outcomes in the audit report](#review-conditional-access-outcomes-in-the-audit-report)|
149158
| **On**| P1, P2| The access policy is evaluated and not enforced. |
150-
| **Off** | P1, P2| The access policy is not activated and has no affect on the users. |
159+
| **Off** | P1, P2| The access policy is not activated and has no effect on the users. |
151160

152161
1. Enable your test Conditional Access policy by selecting **Create**.
153162

154-
## Add Conditional Access to a user flow
155-
156-
After you've added the Azure AD Conditional Access policy, enable conditional access in your user flow or custom policy. When you enable conditional access, you don't need to specify a policy name.
157-
158-
Multiple Conditional Access policies may apply to an individual user at any time. In this case, the most strict access control policy takes precedence. For example, if one policy requires multi-factor authentication (MFA), while the other blocks access, the user will be blocked.
159-
160163
## Conditional Access Template 1: Sign-in risk-based Conditional Access
161164

162165
Most users have a normal behavior that can be tracked, when they fall outside of this norm it could be risky to allow them to just sign in. You may want to block that user or maybe just ask them to perform multi-factor authentication to prove that they are really who they say they are.
163166

164-
A sign-in risk represents the probability that a given authentication request isn't authorized by the identity owner. Organizations with P2 licenses can create Conditional Access policies incorporating [Azure AD Identity Protection sign-in risk detections](../active-directory/identity-protection/concept-identity-protection-risks.md#sign-in-risk). Please note the [limitations on Identity Protection detections for B2C](./identity-protection-investigate-risk.md?pivots=b2c-user-flow#service-limitations-and-considerations).
167+
A sign-in risk represents the probability that a given authentication request isn't authorized by the identity owner. Azure AD B2C tenants with P2 licenses can create Conditional Access policies incorporating [Azure AD Identity Protection sign-in risk detections](../active-directory/identity-protection/concept-identity-protection-risks.md#sign-in-risk). Please note the [limitations on Identity Protection detections for B2C](./identity-protection-investigate-risk.md?pivots=b2c-user-flow#service-limitations-and-considerations).
165168

166169
If risk is detected, users can perform multi-factor authentication to self-remediate and close the risky sign-in event to prevent unnecessary noise for administrators.
167170

168-
Organizations should choose one of the following options to enable a sign-in risk-based Conditional Access policy requiring multi-factor authentication (MFA) when sign-in risk is medium OR high.
171+
Configure Conditional Access through the Azure portal or Microsoft Graph APIs to enable a sign-in risk-based Conditional Access policy requiring MFA when the sign-in risk is *medium* or *high*.
169172

170173
### Enable with Conditional Access policy
171174

@@ -185,11 +188,11 @@ Organizations should choose one of the following options to enable a sign-in ris
185188
9. Confirm your settings and set **Enable policy** to **On**.
186189
10. Select **Create** to create to enable your policy.
187190

188-
### Enable with Conditional Access APIs
191+
### Enable with Conditional Access APIs (optional)
189192

190-
To create a Sign-in risk-based Conditional Access policy with Conditional Access APIs, please refer to the documentation for [Conditional Access APIs](../active-directory/conditional-access/howto-conditional-access-apis.md#graph-api).
193+
Create a sign-in risk-based Conditional Access policy with MS Graph APIs. For more information, see [Conditional Access APIs](../active-directory/conditional-access/howto-conditional-access-apis.md#graph-api).
191194

192-
The following template can be used to create a Conditional Access policy with display name "CA002: Require MFA for medium+ sign-in risk" in report-only mode.
195+
The following template can be used to create a Conditional Access policy with display name "Template 1: Require MFA for medium+ sign-in risk" in report-only mode.
193196

194197
```json
195198
{
@@ -222,6 +225,12 @@ The following template can be used to create a Conditional Access policy with di
222225
}
223226
```
224227

228+
## Add Conditional Access to a user flow
229+
230+
After you've added the Azure AD Conditional Access policy, enable Conditional Access in your user flow or custom policy. When you enable Conditional Access, you don't need to specify a policy name.
231+
232+
Multiple Conditional Access policies may apply to an individual user at any time. In this case, the most strict access control policy takes precedence. For example, if one policy requires MFA while the other blocks access, the user will be blocked.
233+
225234
## Enable multi-factor authentication (optional)
226235

227236
When adding Conditional Access to a user flow, consider the use of **Multi-factor authentication (MFA)**. Users can use a one-time code via SMS or voice, or a one-time password via email for multi-factor authentication. MFA settings are independent from Conditional Access settings. You can choose from these MFA options:
@@ -230,9 +239,6 @@ When adding Conditional Access to a user flow, consider the use of **Multi-facto
230239
- **Always on** - MFA is always required regardless of your Conditional Access setup. If users aren't already enrolled in MFA, they're prompted to enroll during sign-in. During sign-up, users are prompted to enroll in MFA.
231240
- **Conditional (Preview)** - MFA is required only when an active Conditional Access Policy requires it. If the result of the Conditional Access evaluation is an MFA challenge with no risk, MFA is enforced during sign-in. If the result is an MFA challenge due to risk *and* the user is not enrolled in MFA, sign-in is blocked. During sign-up, users aren't prompted to enroll in MFA.
232241

233-
> [!IMPORTANT]
234-
> If your Conditional Access policy grants access with MFA but the user hasn't enrolled a phone number, the user may be blocked.
235-
236242
::: zone pivot="b2c-user-flow"
237243

238244
To enable Conditional Access for a user flow, make sure the version supports Conditional Access. These user flow versions are labeled **Recommended**.
@@ -265,6 +271,23 @@ To enable Conditional Access for a user flow, make sure the version supports Con
265271
1. Get the example of a conditional access policy on [GitHub](https://github.com/azure-ad-b2c/samples/tree/master/policies/conditional-access).
266272
1. In each file, replace the string `yourtenant` with the name of your Azure AD B2C tenant. For example, if the name of your B2C tenant is *contosob2c*, all instances of `yourtenant.onmicrosoft.com` become `contosob2c.onmicrosoft.com`.
267273
1. Upload the policy files.
274+
275+
### Configure claim other than phone number to be used for MFA
276+
277+
In the Conditional Access policy above, the `DoesClaimExist` claim transformation method checks if a claim contains a value, for example if the `strongAuthenticationPhoneNumber` claim contains a phone number.
278+
279+
The claims transformation isn't limited to the `strongAuthenticationPhoneNumber` claim. Depending on the scenario, you can use any other claim. In the following XML snippet, the `strongAuthenticationEmailAddress` claim is checked instead. The claim you choose must have a valid value, otherwise the `IsMfaRegistered` claim will be set to `False`. When set to `False`, the Conditional Access policy evaluation returns a `Block` grant type, preventing the user from completing user flow.
280+
281+
```XML
282+
<ClaimsTransformation Id="IsMfaRegisteredCT" TransformationMethod="DoesClaimExist">
283+
<InputClaims>
284+
<InputClaim ClaimTypeReferenceId="strongAuthenticationEmailAddress" TransformationClaimType="inputClaim" />
285+
</InputClaims>
286+
<OutputClaims>
287+
<OutputClaim ClaimTypeReferenceId="IsMfaRegistered" TransformationClaimType="outputClaim" />
288+
</OutputClaims>
289+
</ClaimsTransformation>
290+
```
268291

269292
## Test your custom policy
270293

@@ -318,4 +341,4 @@ To review the result of a Conditional Access event:
318341

319342
## Next steps
320343

321-
[Customize the user interface in an Azure AD B2C user flow](customize-ui-with-html.md)
344+
[Customize the user interface in an Azure AD B2C user flow](customize-ui-with-html.md)

articles/active-directory-b2c/contentdefinitions.md

Lines changed: 46 additions & 20 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: reference
12-
ms.date: 02/15/2021
12+
ms.date: 05/10/2021
1313
ms.author: mimart
1414
ms.subservice: B2C
1515
---
@@ -71,6 +71,26 @@ The **ContentDefinition** element contains the following elements:
7171
| Metadata | 0:1 | A collection of key/value pairs that contains the metadata utilized by the content definition. |
7272
| LocalizedResourcesReferences | 0:1 | A collection of localized resources references. Use this element to customize the localization of a user interface and claims attribute. |
7373

74+
### LoadUri
75+
76+
The **LoadUri** element is used to specify the URL of the HTML5 page for the content definition. The Azure AD B2C [custom policy starter-packs](https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack) come with content definitions that use Azure AD B2C HTML pages. The **LoadUri** starts with `~`, which is a relative path to your Azure AD B2C tenant.
77+
78+
```XML
79+
<ContentDefinition Id="api.signuporsignin">
80+
<LoadUri>~/tenant/templates/AzureBlue/unified.cshtml</LoadUri>
81+
...
82+
</ContentDefinition>
83+
```
84+
85+
You can [customize the user interface with HTML templates](customize-ui-with-html.md). When using HTML templates, provide an absolute URL. The following example illustrates a content definition with HTML template:
86+
87+
```XML
88+
<ContentDefinition Id="api.signuporsignin">
89+
<LoadUri>https://your-storage-account.blob.core.windows.net/your-container/customize-ui.html</LoadUri>
90+
...
91+
</ContentDefinition>
92+
```
93+
7494
### DataUri
7595

7696
The **DataUri** element is used to specify the page identifier. Azure AD B2C uses the page identifier to load and initiate UI elements and client side JavaScript. The format of the value is `urn:com:microsoft:aad:b2c:elements:page-name:version`. The following table lists the page identifiers you can use.
@@ -95,30 +115,36 @@ The [version](page-layout.md) part of the `DataUri` specifies the package of con
95115
The following example shows the **DataUri** of `selfasserted` version `1.2.0`:
96116

97117
```xml
98-
<ContentDefinition Id="api.localaccountpasswordreset">
99-
<LoadUri>~/tenant/templates/AzureBlue/selfAsserted.cshtml</LoadUri>
100-
<RecoveryUri>~/common/default_page_error.html</RecoveryUri>
101-
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.2.0</DataUri>
102-
<Metadata>
103-
<Item Key="DisplayName">Local account change password page</Item>
104-
</Metadata>
105-
</ContentDefinition>
118+
<!--
119+
<BuildingBlocks>
120+
<ContentDefinitions>-->
121+
<ContentDefinition Id="api.localaccountpasswordreset">
122+
<LoadUri>~/tenant/templates/AzureBlue/selfAsserted.cshtml</LoadUri>
123+
<RecoveryUri>~/common/default_page_error.html</RecoveryUri>
124+
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.2.0</DataUri>
125+
<Metadata>
126+
<Item Key="DisplayName">Local account change password page</Item>
127+
</Metadata>
128+
</ContentDefinition>
129+
<!--
130+
</ContentDefinitions>
131+
</BuildingBlocks> -->
106132
```
107133

108134
#### Migrating to page layout
109135

110-
The format of the value must contain the word `contract`: _urn:com:microsoft:aad:b2c:elements:**contract**:page-name:version_. To specify a page layout in your custom policies that use an old **DataUri** value, use following table to migrate to the new format.
136+
To migrate from the old **DataUri** value (without page contract) to page layout version, add the word `contract` follow by a page version. Use following table to migrate from the old **DataUri** value to page layout version.
111137

112138
| Old DataUri value | New DataUri value |
113139
| ----------------- | ----------------- |
114140
| `urn:com:microsoft:aad:b2c:elements:globalexception:1.0.0` | `urn:com:microsoft:aad:b2c:elements:contract:globalexception:1.2.1` |
115141
| `urn:com:microsoft:aad:b2c:elements:globalexception:1.1.0` | `urn:com:microsoft:aad:b2c:elements:contract:globalexception:1.2.1` |
116142
| `urn:com:microsoft:aad:b2c:elements:idpselection:1.0.0` | `urn:com:microsoft:aad:b2c:elements:contract:providerselection:1.2.1` |
117-
| `urn:com:microsoft:aad:b2c:elements:selfasserted:1.0.0` | `urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.2` |
118-
| `urn:com:microsoft:aad:b2c:elements:selfasserted:1.1.0` | `urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.2` |
119-
| `urn:com:microsoft:aad:b2c:elements:unifiedssd:1.0.0` | `urn:com:microsoft:aad:b2c:elements:contract:unifiedssd:2.1.2` |
120-
| `urn:com:microsoft:aad:b2c:elements:unifiedssp:1.0.0` | `urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:2.1.2` |
121-
| `urn:com:microsoft:aad:b2c:elements:unifiedssp:1.1.0` | `urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:2.1.2` |
143+
| `urn:com:microsoft:aad:b2c:elements:selfasserted:1.0.0` | `urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.4` |
144+
| `urn:com:microsoft:aad:b2c:elements:selfasserted:1.1.0` | `urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.4` |
145+
| `urn:com:microsoft:aad:b2c:elements:unifiedssd:1.0.0` | `urn:com:microsoft:aad:b2c:elements:contract:unifiedssd:2.1.4` |
146+
| `urn:com:microsoft:aad:b2c:elements:unifiedssp:1.0.0` | `urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:2.1.4` |
147+
| `urn:com:microsoft:aad:b2c:elements:unifiedssp:1.1.0` | `urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:2.1.4` |
122148
| `urn:com:microsoft:aad:b2c:elements:multifactor:1.0.0` | `urn:com:microsoft:aad:b2c:elements:contract:multifactor:1.2.0` |
123149
| `urn:com:microsoft:aad:b2c:elements:multifactor:1.1.0` | `urn:com:microsoft:aad:b2c:elements:contract:multifactor:1.2.0` |
124150

@@ -138,19 +164,19 @@ The following example shows the content definition identifiers and the correspon
138164
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:providerselection:1.2.1</DataUri>
139165
</ContentDefinition>
140166
<ContentDefinition Id="api.signuporsignin">
141-
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:2.1.2</DataUri>
167+
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:2.1.4</DataUri>
142168
</ContentDefinition>
143169
<ContentDefinition Id="api.selfasserted">
144-
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.2</DataUri>
170+
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.4</DataUri>
145171
</ContentDefinition>
146172
<ContentDefinition Id="api.selfasserted.profileupdate">
147-
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.2</DataUri>
173+
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.4</DataUri>
148174
</ContentDefinition>
149175
<ContentDefinition Id="api.localaccountsignup">
150-
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.2</DataUri>
176+
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.4</DataUri>
151177
</ContentDefinition>
152178
<ContentDefinition Id="api.localaccountpasswordreset">
153-
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.2</DataUri>
179+
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.4</DataUri>
154180
</ContentDefinition>
155181
<ContentDefinition Id="api.phonefactor">
156182
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:multifactor:1.2.2</DataUri>

0 commit comments

Comments
 (0)