Skip to content

Commit a5288d3

Browse files
authored
Merge branch 'master' into master
2 parents 16b5939 + 79a2959 commit a5288d3

File tree

3,513 files changed

+48647
-26202
lines changed

Some content is hidden

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

3,513 files changed

+48647
-26202
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,4 @@ AzureMigration.ps1
2525
**/.vscode/settings.json
2626
!/.vscode/settings.json
2727

28-
desktop.ini
28+
desktop.ini

.openpublishing.redirection.json

Lines changed: 246 additions & 26 deletions
Large diffs are not rendered by default.

.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": "../../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",

.whatsnew/.application-proxy.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"$schema": "https://whatsnewapi.azurewebsites.net/schema",
3+
"docSetProductName": "Azure Active Directory application proxy",
4+
"rootDirectory": "articles/active-directory/app-proxy/",
5+
"docLinkSettings": {
6+
"linkFormat": "relative",
7+
"relativeLinkPrefix": "/azure/active-directory/app-proxy"
8+
},
9+
"inclusionCriteria": {
10+
"excludePullRequestTitles": true,
11+
"minAdditionsToFile" : 2,
12+
"maxFilesChanged": 50,
13+
"labels": [
14+
"label:active-directory/svc",
15+
"label:app-proxy/subsvc"
16+
]
17+
},
18+
"areas": [
19+
{
20+
"name": ".",
21+
"heading": "Azure Active Directory application proxy"
22+
}
23+
]
24+
}

articles/active-directory-b2c/add-password-reset-policy.md

Lines changed: 3 additions & 3 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: how-to
12-
ms.date: 03/22/2021
12+
ms.date: 05/11/2021
1313
ms.custom: project-no-code
1414
ms.author: mimart
1515
ms.subservice: B2C
@@ -57,10 +57,10 @@ To enable self-service password reset for the sign-up or sign-in user flow:
5757
1. Select **User flows**.
5858
1. Select a sign-up or sign-in user flow (of type **Recommended**) that you want to customize.
5959
1. Under **Settings** in the left menu, select **Properties**.
60-
1. Under **Password complexity**, select **Self-service password reset**.
60+
1. Under **Password configuration**, select **Self-service password reset**.
6161
1. Select **Save**.
6262
1. Under **Customize** in the left menu, select **Page layouts**.
63-
1. In the **Page Layout Version**, choose **2.1.2 - Current** or above.
63+
1. In the **Page Layout Version**, choose **2.1.3** or above.
6464
1. Select **Save**.
6565

6666
::: zone-end

articles/active-directory-b2c/authorization-code-flow.md

Lines changed: 3 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: 03/10/2021
11+
ms.date: 05/04/2021
1212
ms.author: mimart
1313
ms.subservice: B2C
1414
ms.custom: fasttrack-edit
@@ -124,7 +124,7 @@ grant_type=authorization_code&client_id=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6&sco
124124
| client_id |Required |The application ID assigned to your app in the [Azure portal](https://portal.azure.com).|
125125
| client_secret | Yes, in Web Apps | The application secret that was generated in the [Azure portal](https://portal.azure.com/). Client secrets are used in this flow for Web App scenarios, where the client can securely store a client secret. For Native App (public client) scenarios, client secrets cannot be securely stored, and therefore are not used in this call. If you use a client secret, please change it on a periodic basis. |
126126
| grant_type |Required |The type of grant. For the authorization code flow, the grant type must be `authorization_code`. |
127-
| scope |Recommended |A space-separated list of scopes. A single scope value indicates to Azure AD both of the permissions that are being requested. 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. The `offline_access` scope indicates that your app needs a refresh token for long-lived access to resources. You also can use the `openid` scope to request an ID token from Azure AD B2C. |
127+
| scope |Required |A space-separated list of scopes. A single scope value indicates to Azure AD both of the permissions that are being requested. 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. The `offline_access` scope indicates that your app needs a refresh token for long-lived access to resources. You also can use the `openid` scope to request an ID token from Azure AD B2C. |
128128
| code |Required |The authorization code that you acquired in the first leg of the flow. |
129129
| redirect_uri |Required |The redirect URI of the application where you received the authorization code. |
130130
| code_verifier | recommended | The same code_verifier that was used to obtain the authorization_code. Required if PKCE was used in the authorization code grant request. For more information, see the [PKCE RFC](https://tools.ietf.org/html/rfc7636). |
@@ -141,6 +141,7 @@ A successful token response looks like this:
141141
"refresh_token": "AAQfQmvuDy8WtUv-sd0TBwWVQs1rC-Lfxa_NDkLqpg50Cxp5Dxj0VPF1mx2Z...",
142142
}
143143
```
144+
144145
| Parameter | Description |
145146
| --- | --- |
146147
| not_before |The time at which the token is considered valid, in epoch time. |

articles/active-directory-b2c/azure-monitor.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ In this article, you learn how to transfer the logs to an Azure Log Analytics wo
3434

3535
## Deployment overview
3636

37-
Azure AD B2C leverages [Azure Active Directory monitoring](../active-directory/reports-monitoring/overview-monitoring.md). To enable *Diagnostic settings* in Azure Active Directory within your Azure AD B2C tenant, you use [Azure Lighthouse](../lighthouse/concepts/azure-delegated-resource-management.md) to [delegate a resource](../lighthouse/concepts/azure-delegated-resource-management.md), which allows your Azure AD B2C (the **Service Provider**) to manage an Azure AD (the **Customer**) resource. After you complete the steps in this article, you'll have access to the *azure-ad-b2c-monitor* resource group that contains the [Log Analytics workspace](../azure-monitor/logs/quick-create-workspace.md) in your **Azure AD B2C** portal. You'll also be able to transfer the logs from Azure AD B2C to your Log Analytics workspace.
37+
Azure AD B2C leverages [Azure Active Directory monitoring](../active-directory/reports-monitoring/overview-monitoring.md). To enable *Diagnostic settings* in Azure Active Directory within your Azure AD B2C tenant, you use [Azure Lighthouse](../lighthouse/overview.md) to [delegate a resource](../lighthouse/concepts/architecture.md), which allows your Azure AD B2C (the **Service Provider**) to manage an Azure AD (the **Customer**) resource. After you complete the steps in this article, you'll have access to the *azure-ad-b2c-monitor* resource group that contains the [Log Analytics workspace](../azure-monitor/logs/quick-create-workspace.md) in your **Azure AD B2C** portal. You'll also be able to transfer the logs from Azure AD B2C to your Log Analytics workspace.
3838

3939
During this deployment, you'll authorize a user or group in your Azure AD B2C directory to configure the Log Analytics workspace instance within the tenant that contains your Azure subscription. To create the authorization, you deploy an [Azure Resource Manager](../azure-resource-manager/index.yml) template to your Azure AD tenant containing the subscription.
4040

@@ -255,7 +255,7 @@ The workbook will display reports in the form of a dashboard.
255255

256256
## Create alerts
257257

258-
Alerts are created by alert rules in Azure Monitor and can automatically run saved queries or custom log searches at regular intervals. You can create alerts based on specific performance metrics or when certain events are created, absence of an event, or a number of events are created within a particular time window. For example, alerts can be used to notify you when average number of sign-in exceeds a certain threshold. For more information, see [Create alerts](../azure-monitor/alerts/tutorial-response.md).
258+
Alerts are created by alert rules in Azure Monitor and can automatically run saved queries or custom log searches at regular intervals. You can create alerts based on specific performance metrics or when certain events are created, absence of an event, or a number of events are created within a particular time window. For example, alerts can be used to notify you when average number of sign-in exceeds a certain threshold. For more information, see [Create alerts](../azure-monitor/alerts/alerts-log.md).
259259

260260

261261
Use the following instructions to create a new Azure Alert, which will send an [email notification](../azure-monitor/alerts/action-groups.md#configure-notifications) whenever there is a 25% drop in the **Total Requests** compare to previous period. Alert will run every 5 minutes and look for the drop within last 24 hours windows. The alerts are created using Kusto query language.

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)

0 commit comments

Comments
 (0)