Skip to content

Commit bd7e602

Browse files
authored
Merge pull request #207445 from MicrosoftDocs/main
8/9/2022 Publish
2 parents c2eae17 + d3e7643 commit bd7e602

File tree

129 files changed

+982
-606
lines changed

Some content is hidden

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

129 files changed

+982
-606
lines changed

.openpublishing.redirection.azure-monitor.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,11 @@
505505
"source_path_from_root": "/articles/azure-monitor/app/cloudservices.md" ,
506506
"redirect_url": "/azure/azure-monitor/app/azure-web-apps-net-core",
507507
"redirect_document_id": false
508+
},
509+
{
510+
"source_path_from_root": "/articles/azure-monitor/logs/workspace-design-service-providers.md" ,
511+
"redirect_url": "/azure/azure-monitor/logs/workspace-design",
512+
"redirect_document_id": false
508513
}
509514
]
510515
}

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

Lines changed: 5 additions & 5 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: conceptual
9-
ms.date: 07/18/2022
9+
ms.date: 08/09/2022
1010

1111
ms.author: joflore
1212
author: MicrosoftGuyJFlo
@@ -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: 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.read.All People.read, People.read.all, GroupMember.Read.All, Member.Read.Hidden, and UserProfile.read
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
175175

176176
## User actions
177177

Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
139 KB
Loading
Loading

articles/active-directory/conditional-access/what-if-tool.md

Lines changed: 23 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -6,106 +6,67 @@ services: active-directory
66
ms.service: active-directory
77
ms.subservice: conditional-access
88
ms.topic: conceptual
9-
ms.date: 06/22/2020
9+
ms.date: 08/09/2022
1010

1111
ms.author: joflore
1212
author: MicrosoftGuyJFlo
1313
manager: karenhoran
1414
ms.reviewer: nigu
1515
ms.collection: M365-identity-device-management
16-
17-
#Customer intent: As an IT admin, I want to know how to use the What If tool for my existing Conditional Access policies, so that I can understand the impact they have on my environment.
1816
---
19-
# Troubleshoot using the What If tool in Conditional Access
17+
# Use the What If tool to troubleshoot Conditional Access policies
2018

21-
[Conditional Access](./overview.md) is a capability of Azure Active Directory (Azure AD) that enables you to control how authorized users access your cloud apps. How do you know what to expect from the Conditional Access policies in your environment? To answer this question, you can use the **Conditional Access What If tool**.
19+
The **Conditional Access What If policy tool** allows you to understand the impact of [Conditional Access](./overview.md) policies in your environment. Instead of test driving your policies by performing multiple sign-ins manually, this tool enables you to evaluate a simulated sign-in of a user. The simulation estimates the impact this sign-in has on your policies and generates a simulation report.
2220

23-
This article explains how you can use this tool to test your Conditional Access policies.
21+
The **What If** tool provides a way to quickly determine the policies that apply to a specific user. You can use the information, for example, if you need to troubleshoot an issue.
2422

2523
> [!VIDEO https://www.youtube.com/embed/M_iQVM-3C3E]
2624
27-
## What it is
28-
29-
The **Conditional Access What If policy tool** allows you to understand the impact of your Conditional Access policies on your environment. Instead of test driving your policies by performing multiple sign-ins manually, this tool enables you to evaluate a simulated sign-in of a user. The simulation estimates the impact this sign-in has on your policies and generates a simulation report. The report does not only list the applied Conditional Access policies but also [classic policies](policy-migration.md#classic-policies) if they exist.
30-
31-
The **What If** tool provides a way to quickly determine the policies that apply to a specific user. You can use the information, for example, if you need to troubleshoot an issue.
32-
3325
## How it works
3426

35-
In the **Conditional Access What If tool**, you first need to configure the settings of the sign-in scenario you want to simulate. These settings include:
27+
In the **Conditional Access What If tool**, you first need to configure the conditions of the sign-in scenario you want to simulate. These settings may include:
3628

3729
- The user you want to test
3830
- The cloud apps the user would attempt to access
3931
- The conditions under which access to the configured cloud apps is performed
32+
33+
The What If tool doesn't test for [Conditional Access service dependencies](service-dependencies.md). For example, if you're using What If to test a Conditional Access policy for Microsoft Teams, the result doesn't take into consideration any policy that would apply to Office 365 Exchange Online, a Conditional Access service dependency for Microsoft Teams.
4034

4135
As a next step, you can initiate a simulation run that evaluates your settings. Only policies that are enabled are part of an evaluation run.
4236

43-
When the evaluation has finished, the tool generates a report of the affected policies. To gather more information about a Conditional Access policy, the [Conditional Access insights and reporting workbook](howto-conditional-access-insights-reporting.md) can provide additional details about policies in report-only mode and those policies currently enabled.
37+
When the evaluation has finished, the tool generates a report of the affected policies. To gather more information about a Conditional Access policy, the [Conditional Access insights and reporting workbook](howto-conditional-access-insights-reporting.md) can provide more details about policies in report-only mode and those policies currently enabled.
4438

4539
## Running the tool
4640

47-
You can find the **What If** tool on the **[Conditional Access - Policies](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ConditionalAccessBlade/Policies)** page in the Azure portal.
48-
49-
To start the tool, in the toolbar on top of the list of policies, click **What If**.
50-
51-
:::image type="content" source="./media/what-if-tool/01.png" alt-text="Screenshot of the Conditional Access - Policies page in the Azure portal. In the toolbar, the What if item is highlighted." border="false":::
52-
53-
Before you can run an evaluation, you must configure the settings.
54-
55-
## Settings
56-
57-
This section provides you with information about the settings of simulation run.
58-
59-
:::image type="content" source="./media/what-if-tool/02.png" alt-text="Screenshot of the Azure portal What If page, with fields for a user, cloud apps, an I P address, a device platform, a client app, and a sign-in risk." border="false":::
60-
61-
### User
62-
63-
You can only select one user. This is the only required field.
64-
65-
### Cloud apps
66-
67-
The default for this setting is **All cloud apps**. The default setting performs an evaluation of all available policies in your environment. You can narrow down the scope to policies affecting specific cloud apps.
68-
69-
> [!NOTE]
70-
> When using the What If tool, it does not test for [Conditional Access service dependencies](service-dependencies.md). For example, if you are using What If to test a Conditional Access policy for Microsoft Teams, the result will not take into consideration any policy that would apply to Office 365 Exchange Online, a Conditional Access service dependency for Microsoft Teams.
71-
72-
### IP address
73-
74-
The IP address is a single IPv4 address to mimic the [location condition](location-condition.md). The address represents Internet facing address of the device used by your user to sign in. You can verify the IP address of a device by, for example, navigating to [What is my IP address](https://whatismyipaddress.com).
75-
76-
### Device platforms
77-
78-
This setting mimics the [device platforms condition](concept-conditional-access-conditions.md#device-platforms) and represents the equivalent of **All platforms (including unsupported)**.
41+
You can find the **What If** tool in the Azure portal under **Azure Active Directory** > **Security** > **Conditional Access** > **What If**.
7942

80-
### Client apps
43+
:::image type="content" source="./media/what-if-tool/portal-showing-location-of-what-if-tool.png" alt-text="Screenshot of the Conditional Access - Policies page in the Azure portal. In the toolbar, the What if item is highlighted." border="false" lightbox="media/what-if-tool/portal-showing-location-of-what-if-tool.png":::
8144

82-
This setting mimics the [client apps condition](concept-conditional-access-conditions.md#client-apps).
83-
By default, this setting causes an evaluation of all policies having **Browser** or **Mobile apps and desktop clients** either individually or both selected. It also detects policies that enforce **Exchange ActiveSync (EAS)**. You can narrow this setting down by selecting:
45+
Before you can run the What If tool, you must provide the conditions you want to evaluate.
8446

85-
- **Browser** to evaluate all policies having at least **Browser** selected.
86-
- **Mobile apps and desktop clients** to evaluate all policies having at least **Mobile apps and desktop clients** selected.
47+
## Conditions
8748

88-
### Sign-in risk
49+
The only condition you must make is selecting a user or workload identity. All other conditions are optional. For a definition of these conditions, see the article [Building a Conditional Access policy](concept-conditional-access-policies.md).
8950

90-
This setting mimics the [sign-in risk condition](concept-conditional-access-conditions.md#sign-in-risk).
51+
:::image type="content" source="./media/what-if-tool/supply-conditions-to-evaluate-in-the-what-if-tool.png" alt-text="Screenshot of the Azure portal What If page ready for conditions to be entered." border="false" lightbox="media/what-if-tool/supply-conditions-to-evaluate-in-the-what-if-tool.png":::
9152

92-
## Evaluation
53+
## Evaluation
9354

9455
You start an evaluation by clicking **What If**. The evaluation result provides you with a report that consists of:
9556

96-
:::image type="content" source="./media/what-if-tool/03.png" alt-text="Screenshot of an evaluation report. Text indicates that at least one classic policy is configured. Tabs are available for viewing policies." border="false":::
57+
- An indicator whether classic policies exist in your environment.
58+
- Policies that will apply to your user or workload identity.
59+
- Policies that don't apply to your user or workload identity.
9760

98-
- An indicator whether classic policies exist in your environment
99-
- Policies that apply to your user
100-
- Policies that don't apply to your user
61+
If [classic policies](policy-migration.md#classic-policies) exist for the selected cloud apps, an indicator is presented to you. By clicking the indicator, you're redirected to the classic policies page. On the classic policies page, you can migrate a classic policy or just disable it. You can return to your evaluation result by closing this page.
10162

102-
If [classic policies](policy-migration.md#classic-policies) exist for the selected cloud apps, an indicator is presented to you. By clicking the indicator, you are redirected to the classic policies page. On the classic policies page, you can migrate a classic policy or just disable it. You can return to your evaluation result by closing this page.
63+
:::image type="content" source="media/what-if-tool/conditional-access-what-if-evaluation-result-example.png" alt-text="Screenshot of an example of the policy evaluation in the What If tool showing policies that would apply." lightbox="media/what-if-tool/conditional-access-what-if-evaluation-result-example.png":::
10364

104-
On the list of policies that apply to your selected user, you can also find a list of [grant controls](concept-conditional-access-grant.md) and [session controls](concept-conditional-access-session.md) your user must satisfy.
65+
On the list of policies that apply, you can also find a list of [grant controls](concept-conditional-access-grant.md) and [session controls](concept-conditional-access-session.md) that must be satisfied.
10566

106-
On the list of policies that don't apply to your user, you can and also find the reasons why these policies don't apply. For each listed policy, the reason represents the first condition that was not satisfied. A possible reason for a policy that is not applied is a disabled policy because they are not further evaluated.
67+
On the list of policies that don't apply, you can find the reasons why these policies don't apply. For each listed policy, the reason represents the first condition that wasn't satisfied.
10768

10869
## Next steps
10970

11071
- More information about Conditional Access policy application can be found using the policies report-only mode using [Conditional Access insights and reporting](howto-conditional-access-insights-reporting.md).
111-
- If you are ready to configure Conditional Access policies for your environment, see the [Conditional Access common policies](concept-conditional-access-policy-common.md).
72+
- If you're ready to configure Conditional Access policies for your environment, see the [Conditional Access common policies](concept-conditional-access-policy-common.md).

articles/active-directory/develop/app-resilience-continuous-access-evaluation.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ Your app would check for:
4747
- an "error" parameter with the value "insufficient_claims"
4848
- a "claims" parameter
4949

50+
# [.NET](#tab/dotnet)
51+
5052
When these conditions are met, the app can extract and decode the claims challenge using MSAL.NET `WwwAuthenticateParameters` class.
5153

5254
```csharp
@@ -97,7 +99,69 @@ _clientApp = PublicClientApplicationBuilder.Create(App.ClientId)
9799

98100
You can test your application by signing in a user to the application then using the Azure portal to Revoke the user's sessions. The next time the app calls the CAE enabled API, the user will be asked to reauthenticate.
99101

102+
# [JavaScript](#tab/JavaScript)
103+
104+
When these conditions are met, the app can extract the claims challenge from the API response header as follows:
105+
106+
```javascript
107+
const authenticateHeader = response.headers.get('www-authenticate');
108+
const claimsChallenge = authenticateHeader
109+
.split(' ')
110+
.find((entry) => entry.includes('claims='))
111+
.split('claims="')[1]
112+
.split('",')[0];
113+
```
114+
115+
Your app would then use the claims challenge to acquire a new access token for the resource.
116+
117+
```javascript
118+
let tokenResponse;
119+
120+
try {
121+
122+
tokenResponse = await msalInstance.acquireTokenSilent({
123+
claims: window.atob(claimsChallenge), // decode the base64 string
124+
scopes: scopes, // e.g ['User.Read', 'Contacts.Read']
125+
account: account, // current active account
126+
});
127+
128+
} catch (error) {
129+
130+
if (error instanceof InteractionRequiredAuthError) {
131+
132+
tokenResponse = await msalInstance.acquireTokenPopup({
133+
claims: window.atob(claimsChallenge), // decode the base64 string
134+
scopes: scopes, // e.g ['User.Read', 'Contacts.Read']
135+
account: account, // current active account
136+
});
137+
}
138+
139+
}
140+
```
141+
142+
Once your application is ready to handle the claim challenge returned by a CAE-enabled resource, you can tell Microsoft Identity your app is CAE-ready by adding a `clientCapabilities` property in the MSAL configuration.
143+
144+
```javascript
145+
const msalConfig = {
146+
auth: {
147+
clientId: 'Enter_the_Application_Id_Here',
148+
clientCapabilities: ["CP1"]
149+
// the remaining settings
150+
// ...
151+
}
152+
}
153+
154+
const msalInstance = new PublicClientApplication(msalConfig);
155+
156+
```
157+
158+
---
159+
160+
You can test your application by signing in a user and then using the Azure portal to revoke the user's session. The next time the app calls the CAE-enabled API, the user will be asked to reauthenticate.
161+
100162
## Next steps
101163

102164
- [Continuous access evaluation](../conditional-access/concept-continuous-access-evaluation.md) conceptual overview
103165
- [Claims challenges, claims requests, and client capabilities](claims-challenge.md)
166+
- [React single-page application using MSAL React to sign-in users against Azure Active Directory](https://github.com/Azure-Samples/ms-identity-javascript-react-tutorial/tree/main/2-Authorization-I/1-call-graph)
167+
- [Enable your ASP.NET Core web app to sign in users and call Microsoft Graph with the Microsoft identity platform](https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2/tree/master/2-WebApp-graph-user/2-1-Call-MSGraph)

0 commit comments

Comments
 (0)