Skip to content

Commit 9bd0769

Browse files
authored
Merge pull request #244664 from MicrosoftDocs/main
7/11/2023 PM Publish
2 parents e65ebe7 + 2d7d713 commit 9bd0769

File tree

168 files changed

+7184
-1983
lines changed

Some content is hidden

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

168 files changed

+7184
-1983
lines changed

.openpublishing.redirection.api-management.json

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,79 @@
11
{
22
"redirections": [
3+
{
4+
"source_path_from_root": "/articles/api-management/policies/authorize-request-using-external-authorizer.md",
5+
"redirect_url": "https://github.com/Azure/api-management-policy-snippets",
6+
"redirect_document_id": false
7+
},{
8+
"source_path_from_root": "/articles/api-management/policies/add-correlation-id.md",
9+
"redirect_url": "https://github.com/Azure/api-management-policy-snippets",
10+
"redirect_document_id": false
11+
},
12+
{
13+
"source_path_from_root": "/articles/api-management/policies/authorize-request-based-on-jwt-claims.md",
14+
"redirect_url": "https://github.com/Azure/api-management-policy-snippets",
15+
"redirect_document_id": false
16+
},
17+
{
18+
"source_path_from_root": "/articles/api-management/policies/cache-response.md",
19+
"redirect_url": "https://github.com/Azure/api-management-policy-snippets",
20+
"redirect_document_id": false
21+
},
22+
{
23+
"source_path_from_root": "/articles/api-management/policies/filter-ip-addresses-when-using-appgw.md",
24+
"redirect_url": "https://github.com/Azure/api-management-policy-snippets",
25+
"redirect_document_id": false
26+
},
27+
{
28+
"source_path_from_root": "/articles/api-management/policies/filter-response-content.md",
29+
"redirect_url": "https://github.com/Azure/api-management-policy-snippets",
30+
"redirect_document_id": false
31+
},
32+
{
33+
"source_path_from_root": "/articles/api-management/policies/generate-shared-access-signature.md",
34+
"redirect_url": "https://github.com/Azure/api-management-policy-snippets",
35+
"redirect_document_id": false
36+
},
37+
{
38+
"source_path_from_root": "/articles/api-management/policies/get-x-csrf-token-from-sap-gateway.md",
39+
"redirect_url": "https://github.com/Azure/api-management-policy-snippets",
40+
"redirect_document_id": false
41+
},
42+
{
43+
"source_path_from_root": "/articles/api-management/policies/index.md",
44+
"redirect_url": "https://github.com/Azure/api-management-policy-snippets",
45+
"redirect_document_id": false
46+
},
47+
{
48+
"source_path_from_root": "/articles/api-management/policies/log-errors-to-stackify.md",
49+
"redirect_url": "https://github.com/Azure/api-management-policy-snippets",
50+
"redirect_document_id": false
51+
},
52+
{
53+
"source_path_from_root": "/articles/api-management/policies/route-requests-based-on-size.md",
54+
"redirect_url": "https://github.com/Azure/api-management-policy-snippets",
55+
"redirect_document_id": false
56+
},
57+
{
58+
"source_path_from_root": "/articles/api-management/policies/send-request-context-info-to-backend-service.md",
59+
"redirect_url": "https://github.com/Azure/api-management-policy-snippets",
60+
"redirect_document_id": false
61+
},
62+
{
63+
"source_path_from_root": "/articles/api-management/policies/set-cache-duration.md",
64+
"redirect_url": "https://github.com/Azure/api-management-policy-snippets",
65+
"redirect_document_id": false
66+
},
67+
{
68+
"source_path_from_root": "/articles/api-management/policies/set-header-to-enable-backend-to-construct-urls.md",
69+
"redirect_url": "https://github.com/Azure/api-management-policy-snippets",
70+
"redirect_document_id": false
71+
},
72+
{
73+
"source_path_from_root": "/articles/api-management/policies/use-oauth2-for-authorization.md",
74+
"redirect_url": "https://github.com/Azure/api-management-policy-snippets",
75+
"redirect_document_id": false
76+
},
377
{
478
"source_path_from_root": "/articles/api-management/api-management-access-restriction-policies.md",
579
"redirect_url": "/azure/api-management/api-management-policies#access-restriction-policies",

.openpublishing.redirection.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
{
22
"redirections": [
3+
{
4+
"source_path": "articles/cloud-services-extended-support/deploy-visual-studio.md",
5+
"redirect_url": "/visualstudio/azure/cloud-services-extended-support?context=%2Fazure%2Fcloud-services-extended-support%2Fcontext%2Fcontext",
6+
"redirect_document_id": false
7+
},
38
{
49
"source_path": "articles/storsimple/storsimple-configure-backup-target-using-backup-exec.md",
510
"redirect_url": "/azure/storsimple/storsimple-overview",
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 for customers (CIAM)",
4+
"rootDirectory": "articles/active-directory/external-identities/customers/",
5+
"docLinkSettings": {
6+
"linkFormat": "relative",
7+
"relativeLinkPrefix": "/azure/active-directory/external-identities/customers"
8+
},
9+
"inclusionCriteria": {
10+
"omitPullRequestTitles" : false,
11+
"minAdditionsToFile" : 10,
12+
"maxFilesChanged": 50,
13+
"labels": [
14+
"label:active-directory/svc",
15+
"label:ciam/subsvc"
16+
]
17+
},
18+
"areas": [
19+
{
20+
"names": [ "."],
21+
"heading": "Azure Active Directory for customers"
22+
}
23+
]
24+
}

.whatsnew/.external-identities.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"relativeLinkPrefix": "/azure/active-directory/external-identities"
88
},
99
"inclusionCriteria": {
10-
"omitPullRequestTitles" : true,
10+
"omitPullRequestTitles" : false,
1111
"minAdditionsToFile" : 10,
1212
"maxFilesChanged": 50,
1313
"labels": [

articles/active-directory/app-provisioning/on-premises-migrate-microsoft-identity-manager.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ At this point, the MIM Sync server is no longer needed.
4343

4444
## Import a connector configuration
4545

46-
1. Install the ECMA Connector host and provisioning agent on a Windows Server, using the [provisioning users into SQL based applications](on-premises-sql-connector-configure.md#3-install-and-configure-the-azure-ad-connect-provisioning-agent) or [provisioning users into LDAP directories](on-premises-ldap-connector-configure.md#download-install-and-configure-the-azure-ad-connect-provisioning-agent-package) articles.
46+
1. Install the ECMA Connector host and provisioning agent on a Windows Server, using the [provisioning users into SQL based applications](on-premises-sql-connector-configure.md#3-install-and-configure-the-azure-ad-connect-provisioning-agent) or [provisioning users into LDAP directories](on-premises-ldap-connector-configure.md#install-and-configure-the-azure-ad-connect-provisioning-agent) articles.
4747
1. Sign in to the Windows server as the account that the Azure AD ECMA Connector Host runs as.
4848
1. Change to the directory C:\Program Files\Microsoft ECMA2host\Service\ECMA. Ensure there are one or more DLLs already present in that directory. Those DLLs correspond to Microsoft-delivered connectors.
4949
1. Copy the MA DLL for your connector, and any of its prerequisite DLLs, to that same ECMA subdirectory of the Service directory.

articles/active-directory/conditional-access/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@
4949
items:
5050
- name: CAE for users
5151
href: concept-continuous-access-evaluation.md
52+
- name: CAE strict enforcement
53+
href: concept-continuous-access-evaluation-strict-enforcement.md
5254
- name: CAE for workload identities
5355
href: concept-continuous-access-evaluation-workload.md
5456
- name: Filter for devices
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
---
2+
title: Continuous access evaluation strict location enforcement in Azure AD
3+
description: Responding to changes in user state faster with continuous access evaluation strict location enforcement in Azure AD
4+
5+
services: active-directory
6+
ms.service: active-directory
7+
ms.subservice: conditional-access
8+
ms.topic: conceptual
9+
ms.date: 07/10/2023
10+
11+
ms.author: joflore
12+
author: MicrosoftGuyJFlo
13+
manager: amycolannino
14+
ms.reviewer: eolasunkanmi
15+
16+
ms.collection: M365-identity-device-management
17+
---
18+
# Strictly enforce location policies using continuous access evaluation (preview)
19+
20+
Strictly enforce location policies is a new enforcement mode for continuous access evaluation (CAE), used in Conditional Access policies. This new mode provides protection for resources, immediately stopping access if the IP address detected by the resource provider isn't allowed by Conditional Access policy. This option is the highest security modality of CAE location enforcement, and requires that administrators understand the routing of authentication and access requests in their network environment. See our [Introduction to continuous access evaluation](concept-continuous-access-evaluation.md) for a review of how CAE-capable clients and resource providers, like the Outlook email client and Exchange Online evaluate location changes.
21+
22+
| Location enforcement mode | Recommended network topology | If the IP address detected by the Resource isn't in the allowed list | Benefits | Configuration |
23+
| --- | --- | --- | --- | --- |
24+
| Standard (Default) | Suitable for all topologies | A short-lived token is issued only if Azure AD detects an allowed IP address. Otherwise, access is blocked | Falls back to the pre-CAE location detection mode in split tunnel network deployments where CAE enforcement would affect productivity. CAE still enforces other events and policies. | None (Default Setting) |
25+
| Strictly enforced location policies | Egress IP addresses are dedicated and enumerable for both Azure AD and all resource provider traffic | Access blocked | Most secure, but requires well understood network paths | 1. Test IP address assumptions with a small population <br><br> 2. Enable “Strictly enforce” under Session controls |
26+
27+
> [!NOTE]
28+
> The **IP address (seen by resource)** is blank when that IP matches the IP address.
29+
30+
## Configure strictly enforced location policies
31+
32+
### Step 1 - Configure a Conditional Access location based policy for your target users
33+
34+
Before administrators create a Conditional Access policy requiring strict location enforcement, they must be comfortable using policies like the one described in [Conditional Access location based policies](howto-conditional-access-policy-location.md). Policies like this one should be tested with a subset of users before proceeding to the next step. Administrators can avoid discrepancies between the allowed and actual IP addresses seen by Azure AD during authentication, by testing before enabling strict enforcement.
35+
36+
### Step 2 - Test policy on a small subset of users
37+
38+
![Screenshot showing a Conditional Access policy with "Strictly enforce location policies" enabled.](./media/concept-continuous-access-evaluation-strict-enforcement/conditional-access-policy-strictly-enforce-location-policies.png)
39+
40+
After enabling policies requiring strict location enforcement on a subset of test users, validate your testing experience using the filter **IP address (seen by resource)** in the Azure AD Sign-in logs. This validation allows administrators to find scenarios where strict location enforcement may block users with an unallowed IP seen by the CAE-enabled resource provider.
41+
42+
- Admins must ensure all authentication traffic towards Azure AD and access traffic to resource providers are from dedicated egress IPs that are known.
43+
- Like Exchange Online, Teams, SharePoint Online, and Microsoft Graph
44+
- Before administrators turn on Conditional Access policies requiring strict location enforcement, they should ensure that all IP addresses from which your users can access Azure AD and resource providers are included in their [IP-based named locations](location-condition.md#ipv4-and-ipv6-address-ranges).
45+
46+
If administrators don't perform this validation, their users may be negatively impacted. If traffic to Azure AD or a CAE supported resource is through a shared or undefinable egress IP, don't enable strict location enforcement in your Conditional Access policies.
47+
48+
### Step 3 - Identify IP addresses that should be added to your named locations
49+
50+
If the filter search of **IP address (seen by resource)** in the Azure AD Sign-in logs isn't empty, you might have a split-tunnel network configuration. To ensure your users aren't accidentally locked out by policies requiring strict location enforcement, administrators should:
51+
52+
- Investigate and identify any IP addresses identified in the Sign-in logs.
53+
- Add public IP addresses associated with known organizational egress points to their defined [named locations](location-condition.md#named-locations).
54+
55+
[ ![Screenshot of sign-in logs with an example of IP address seen by resource filter.](./media/concept-continuous-access-evaluation-strict-enforcement/sign-in-logs-ip-address-seen-by-resource.png) ](./media/concept-continuous-access-evaluation-strict-enforcement/sign-in-logs-ip-address-seen-by-resource.png#lightbox)
56+
57+
The following screenshot shows an example of a client’s access to a resource being blocked. This block is due to policies requiring CAE strict location enforcement being triggered revoking the client’s session.
58+
59+
![Screenshot of the message a user sees if they are blocked by strict location enforcement.](./media/concept-continuous-access-evaluation-strict-enforcement/blocked-due-to-strict-enforcement.png)
60+
61+
This behavior can be verified in the sign-in logs. Look for **IP address (seen by resource)** and investigate adding this IP to [named locations](location-condition.md#named-locations) if experiencing unexpected blocks from Conditional Access on users.
62+
63+
![Screenshot of an sign-in log entry with both IP address and IP address seen by resource.](./media/concept-continuous-access-evaluation-strict-enforcement/activity-details-ip-differs.png)
64+
65+
Looking at the **Conditional Access Policy details** tab provides more details of blocked sign-in events.
66+
67+
![Screenshot of Conditional Access Policy detail with the locations that were seen.](./media/concept-continuous-access-evaluation-strict-enforcement/conditional-access-policy-details.png)
68+
69+
### Step 4 - Continue deployment
70+
71+
Repeat steps 2 and 3 with expanding groups of users until Strictly Enforce Location Policies are applied across your target user base. Roll out carefully to avoid impacting user experience.
72+
73+
## Troubleshooting with Sign-in logs
74+
75+
Administrators can investigate the Sign-in logs to find cases with **IP address (seen by resource)**.
76+
77+
1. Sign in to the **Azure portal** as at least a Global Reader.
78+
1. Browse to **Azure Active Directory** > **Sign-ins**.
79+
1. Find events to review by adding filters and columns to filter out unnecessary information.
80+
1. Add the **IP address (seen by resource)** column and filter out any blank items to narrow the scope.
81+
82+
[ ![Screenshot showing an example of how to find more information in the sign-in logs.](./media/concept-continuous-access-evaluation-strict-enforcement/sign-in-logs-ip-address-seen-by-resource.png) ](./media/concept-continuous-access-evaluation-strict-enforcement/sign-in-logs-ip-address-seen-by-resource.png#lightbox)
83+
84+
**IP address (seen by resource)** contains filter isn't empty in the following examples:
85+
86+
### Initial authentication
87+
88+
1. Authentication succeeds using a CAE token.
89+
90+
![Screenshot showing a successful sign in with a CAE token.](./media/concept-continuous-access-evaluation-strict-enforcement/activity-details-sign-ins-initial-authentication-success.png)
91+
92+
1. The **IP address (seen by resource)** is different from the IP address seen by Azure AD. Although the IP address seen by the resource is known, there's no enforcement until the resource redirects the user for reevaluation of the IP address seen by the resource.
93+
94+
![Screenshot showing IP address and IP address seen by resource in the sign-in log.](./media/concept-continuous-access-evaluation-strict-enforcement/activity-details-ip-differs.png)
95+
96+
1. Azure AD authentication is successful because strict location enforcement isn't applied at the resource level.
97+
98+
![Screenshot showing that a Conditional Access policy wasn't applied because the location is excluded.](./media/concept-continuous-access-evaluation-strict-enforcement/conditional-access-policy-details-authentication-success.png)
99+
100+
### Resource redirect for reevaluation
101+
102+
1. Authentication fails and a CAE token isn't issued.
103+
104+
![Screenshot showing a failed authentication.](./media/concept-continuous-access-evaluation-strict-enforcement/activity-details-sign-ins-authentication-fails.png)
105+
106+
1. **IP address (seen by resource)** is different from the IP seen by Azure AD.
107+
108+
![Screenshot showing a mismatch in IP addresses.](./media/concept-continuous-access-evaluation-strict-enforcement/activity-details-ip-differs.png)
109+
110+
1. Authentication isn't successful because **IP address (seen by resource)** isn't a known [named location](location-condition.md#named-locations) in Conditional Access.
111+
112+
![Screenshot showing a Conditional Access policy applied, because the IP address was included in a block rule.](./media/concept-continuous-access-evaluation-strict-enforcement/conditional-access-policy-details-authentication-block.png)
113+
114+
## Next steps
115+
116+
- [Continuous access evaluation in Azure AD](concept-continuous-access-evaluation.md)
117+
- [Claims challenges, claims requests, and client capabilities](../develop/claims-challenge.md)
118+
- [How to use continuous access evaluation enabled APIs in your applications](../develop/app-resilience-continuous-access-evaluation.md)
119+
- [Monitor and troubleshoot sign-ins with continuous access evaluation](howto-continuous-access-evaluation-troubleshoot.md#potential-ip-address-mismatch-between-azure-ad-and-resource-provider)
Loading
Loading

0 commit comments

Comments
 (0)