Skip to content

Commit 66e26f2

Browse files
committed
Merge branch 'master' of https://github.com/MicrosoftDocs/azure-docs-pr into release-marmalade
2 parents 7d2308f + 14eabad commit 66e26f2

File tree

221 files changed

+4073
-2073
lines changed

Some content is hidden

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

221 files changed

+4073
-2073
lines changed

.openpublishing.redirection.json

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -51475,16 +51475,6 @@
5147551475
"redirect_url": "/azure/sql-database/sql-database-security-best-practice",
5147651476
"redirect_document_id": false
5147751477
},
51478-
{
51479-
"source_path": "articles/healthcare-apis/configure-azure-rbac.md",
51480-
"redirect_url": "/azure/healthcare-apis/azure-api-for-fhir-additional-settings",
51481-
"redirect_document_id": false
51482-
},
51483-
{
51484-
"source_path": "articles/healthcare-apis/configure-local-rbac.md",
51485-
"redirect_url": "/azure/healthcare-apis/azure-api-for-fhir-additional-settings",
51486-
"redirect_document_id": false
51487-
},
5148851478
{
5148951479
"source_path": "articles/media-services/previous/media-services-configure-tricaster-live-encoder.md",
5149051480
"redirect_url": "/azure/media-services",

articles/active-directory/app-provisioning/scim-graph-scenarios.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,8 @@ My application is built into Microsoft Teams and relies on message data. In addi
9999
I need to be able to track changes to Teams and Outlook messages and react to them in real time. How can I get these changes pushed to my application?
100100

101101
**Recommendation:** The Microsoft Graph provides [change notifications](https://docs.microsoft.com/graph/webhooks) and [change tracking](https://docs.microsoft.com/graph/delta-query-overview) for various resources. Note the following limitations of change notifications:
102-
- If an event receiver acknowledges an event, but fails to act on it for any reason, the event may be lost
103-
- If an event receiver acknowledges an event, but fails to act on it for any reason, the event may be lost
102+
- If an event receiver acknowledges an event, but fails to act on it for any reason, the event may be lost.
103+
- The order in which changes are received are not guaranteed to be chronological.
104104
- Change notifications don't always contain the [resource data](https://docs.microsoft.com/graph/webhooks-with-resource-data)
105105
For the reasons above, developers often use change notifications along with change tracking for synchronization scenarios.
106106

articles/active-directory/authentication/active-directory-certificate-based-authentication-get-started.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ manager: daveba
1414
ms.reviewer: annaba
1515

1616
ms.collection: M365-identity-device-management
17+
ms.custom: has-adal-ref
1718
---
1819
# Get started with certificate-based authentication in Azure Active Directory
1920

@@ -42,7 +43,7 @@ To configure certificate-based authentication, the following statements must be
4243
- A client certificate for client authentication must have been issued to your client.
4344

4445
>[!IMPORTANT]
45-
>The maximum size of a CRL for Azure Active Directory to successfully download and cache is 20MB, and the time required to download the CRL must not exceed 10 seconds. If Azure Active Directory can't download a CRL, certificate based authentications using certificates issued by the corresponding CA will fail. Best practices to ensure CRL files are within size constraints are to keep certificate lifetimes to within reasonable limits and to clean up expired certificates.
46+
>The maximum size of a CRL for Azure Active Directory to successfully download and cache is 20MB, and the time required to download the CRL must not exceed 10 seconds. If Azure Active Directory can't download a CRL, certificate based authentications using certificates issued by the corresponding CA will fail. Best practices to ensure CRL files are within size constraints are to keep certificate lifetimes to within reasonable limits and to clean up expired certificates.
4647
4748
## Step 1: Select your device platform
4849

articles/active-directory/authentication/howto-mfa-nps-extension-errors.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ manager: daveba
1414
ms.reviewer: michmcla
1515

1616
ms.collection: M365-identity-device-management
17+
ms.custom: has-adal-ref
1718
---
1819
# Resolve error messages from the NPS extension for Azure Multi-Factor Authentication
1920

@@ -63,9 +64,9 @@ If you encounter errors with the NPS extension for Azure Multi-Factor Authentica
6364

6465
Sometimes, your users may get messages from Multi-Factor Authentication because their authentication request failed. These aren't errors in the product of configuration, but are intentional warnings explaining why an authentication request was denied.
6566

66-
| Error code | Error message | Recommended steps |
67+
| Error code | Error message | Recommended steps |
6768
| ---------- | ------------- | ----------------- |
68-
| **OathCodeIncorrect** | Wrong code entered\OATH Code Incorrect | The user entered the wrong code. Have them try again by requesting a new code or signing in again. |
69+
| **OathCodeIncorrect** | Wrong code entered\OATH Code Incorrect | The user entered the wrong code. Have them try again by requesting a new code or signing in again. |
6970
| **SMSAuthFailedMaxAllowedCodeRetryReached** | Maximum allowed code retry reached | The user failed the verification challenge too many times. Depending on your settings, they may need to be unblocked by an admin now. |
7071
| **SMSAuthFailedWrongCodeEntered** | Wrong code entered/Text Message OTP Incorrect | The user entered the wrong code. Have them try again by requesting a new code or signing in again. |
7172

articles/active-directory/b2b/code-samples.md

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ ms.author: mimart
1212
author: msmimart
1313
manager: celestedg
1414
ms.reviewer: elisolMS
15-
ms.custom: "it-pro, seo-update-azuread-jan"
15+
ms.custom: it-pro, seo-update-azuread-jan, has-adal-ref
1616
ms.collection: M365-identity-device-management
1717
---
1818

@@ -23,7 +23,7 @@ You can bulk-invite external users to an organization from email addresses that
2323

2424
1. Prepare the .CSV file
2525
Create a new CSV file and name it invitations.csv. In this example, the file is saved in C:\data, and contains the following information:
26-
26+
2727
Name | InvitedUserEmailAddress
2828
--------------------- | --------------------------
2929
Gmail B2B Invitee | [email protected]
@@ -72,44 +72,44 @@ namespace SampleInviteApp
7272
/// Microsoft Graph resource.
7373
/// </summary>
7474
static readonly string GraphResource = "https://graph.microsoft.com";
75-
75+
7676
/// <summary>
7777
/// Microsoft Graph invite endpoint.
7878
/// </summary>
7979
static readonly string InviteEndPoint = "https://graph.microsoft.com/v1.0/invitations";
80-
80+
8181
/// <summary>
8282
///  Authentication endpoint to get token.
8383
/// </summary>
8484
static readonly string EstsLoginEndpoint = "https://login.microsoftonline.com";
85-
85+
8686
/// <summary>
8787
/// This is the tenantid of the tenant you want to invite users to.
8888
/// </summary>
8989
private static readonly string TenantID = "";
90-
90+
9191
/// <summary>
9292
/// This is the application id of the application that is registered in the above tenant.
9393
/// The required scopes are available in the below link.
9494
/// https://developer.microsoft.com/graph/docs/api-reference/v1.0/api/invitation_post
9595
/// </summary>
9696
private static readonly string TestAppClientId = "";
97-
97+
9898
/// <summary>
9999
/// Client secret of the application.
100100
/// </summary>
101101
private static readonly string TestAppClientSecret = @"";
102-
102+
103103
/// <summary>
104104
/// This is the email address of the user you want to invite.
105105
/// </summary>
106106
private static readonly string InvitedUserEmailAddress = @"";
107-
107+
108108
/// <summary>
109109
/// This is the display name of the user you want to invite.
110110
/// </summary>
111111
private static readonly string InvitedUserDisplayName = @"";
112-
112+
113113
/// <summary>
114114
/// Main method.
115115
/// </summary>
@@ -119,7 +119,7 @@ namespace SampleInviteApp
119119
Invitation invitation = CreateInvitation();
120120
SendInvitation(invitation);
121121
}
122-
122+
123123
/// <summary>
124124
/// Create the invitation object.
125125
/// </summary>
@@ -134,25 +134,25 @@ namespace SampleInviteApp
134134
invitation.SendInvitationMessage = true;
135135
return invitation;
136136
}
137-
137+
138138
/// <summary>
139139
/// Send the guest user invite request.
140140
/// </summary>
141141
/// <param name="invitation">Invitation object.</param>
142142
private static void SendInvitation(Invitation invitation)
143143
{
144144
string accessToken = GetAccessToken();
145-
145+
146146
HttpClient httpClient = GetHttpClient(accessToken);
147-
148-
// Make the invite call.
147+
148+
// Make the invite call.
149149
HttpContent content = new StringContent(JsonConvert.SerializeObject(invitation));
150150
content.Headers.Add("ContentType", "application/json");
151151
var postResponse = httpClient.PostAsync(InviteEndPoint, content).Result;
152152
string serverResponse = postResponse.Content.ReadAsStringAsync().Result;
153153
Console.WriteLine(serverResponse);
154154
}
155-
155+
156156
/// <summary>
157157
/// Get the HTTP client.
158158
/// </summary>
@@ -170,15 +170,15 @@ namespace SampleInviteApp
170170
httpClient.DefaultRequestHeaders.GetValues("client-request-id").Single());
171171
return httpClient;
172172
}
173-
173+
174174
/// <summary>
175175
/// Get the access token for our application to talk to Microsoft Graph.
176176
/// </summary>
177177
/// <returns>Returns the access token for our application to talk to Microsoft Graph.</returns>
178178
private static string GetAccessToken()
179179
{
180180
string accessToken = null;
181-
181+
182182
// Get the access token for our application to talk to Microsoft Graph.
183183
try
184184
{
@@ -194,10 +194,10 @@ namespace SampleInviteApp
194194
Console.WriteLine("An exception was thrown while fetching the token: {0}.", ex);
195195
throw;
196196
}
197-
197+
198198
return accessToken;
199199
}
200-
200+
201201
/// <summary>
202202
/// Invitation class.
203203
/// </summary>
@@ -207,17 +207,17 @@ namespace SampleInviteApp
207207
/// Gets or sets display name.
208208
/// </summary>
209209
public string InvitedUserDisplayName { get; set; }
210-
210+
211211
/// <summary>
212212
/// Gets or sets display name.
213213
/// </summary>
214214
public string InvitedUserEmailAddress { get; set; }
215-
215+
216216
/// <summary>
217217
/// Gets or sets a value indicating whether Invitation Manager should send the email to InvitedUser.
218218
/// </summary>
219219
public bool SendInvitationMessage { get; set; }
220-
220+
221221
/// <summary>
222222
/// Gets or sets invitation redirect URL
223223
/// </summary>
@@ -231,4 +231,3 @@ namespace SampleInviteApp
231231
## Next steps
232232

233233
- [What is Azure AD B2B collaboration?](what-is-b2b.md)
234-

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
href: concept-conditional-access-grant.md
3636
- name: Session
3737
href: concept-conditional-access-session.md
38+
- name: Insights and reporting
39+
href: howto-conditional-access-insights-reporting.md
3840
- name: Report-only mode
3941
href: concept-conditional-access-report-only.md
4042
- name: Service dependencies
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
---
2+
title: Conditional Access insights and reporting workbook - Azure Active Directory
3+
description: Using the Azure AD Conditional Access insights and reporting workbook to troubleshoot policies
4+
5+
services: active-directory
6+
ms.service: active-directory
7+
ms.subservice: conditional-access
8+
ms.topic: article
9+
ms.date: 04/30/2020
10+
11+
ms.author: joflore
12+
author: MicrosoftGuyJFlo
13+
manager: daveba
14+
ms.reviewer: dawoo
15+
16+
ms.collection: M365-identity-device-management
17+
---
18+
# Conditional Access insights and reporting
19+
20+
The Conditional Access insights and reporting workbook enables you to understand the impact of Conditional Access policies in your organization over time. During sign-in, one or more Conditional Access policies may apply, granting access if certain grant controls are satisfied or denying access otherwise. Because multiple Conditional Access policies may be evaluated during each sign-in, the insights and reporting workbook lets you examine the impact of an individual policy or a subset of all policies.
21+
22+
## Prerequisites
23+
24+
To enable the insights and reporting workbook, your tenant must have a Log Analytics workspace to retain sign-in logs data. Users must have Azure AD Premium P1 or P2 licenses to use Conditional Access.
25+
26+
The following roles can access insights and reporting:
27+
28+
- Conditional Access administrator
29+
- Security reader
30+
- Security administrator
31+
- Global reader
32+
- Global administrator
33+
34+
Users also need one of the following Log Analytics workspace roles:
35+
36+
- Reader
37+
- Monitoring reader
38+
- Log Analytics reader
39+
- Contributor
40+
- Owner
41+
42+
### Stream sign-in logs from Azure AD to Azure Monitor logs
43+
44+
If you have not integrated Azure AD logs with Azure Monitor logs, you will need to take the following steps before the workbook will load:
45+
46+
1. [Create a Log Analytics workspace in Azure Monitor](../../azure-monitor/learn/quick-create-workspace.md).
47+
1. [Integrate Azure AD logs with Azure Monitor logs](../reports-monitoring/howto-integrate-activity-logs-with-log-analytics.md).
48+
49+
## How it works
50+
51+
To access the insights and reporting workbook:
52+
53+
1. Sign in to the **Azure portal**.
54+
1. Browse to **Azure Active Directory** > **Security** > **Conditional Access** > **Insights and reporting**.
55+
56+
### Get started: Select parameters
57+
58+
The insights and reporting dashboard lets you see the impact of one or more Conditional Access policies over a specified period. Start by setting each of the parameters at the top of the workbook.
59+
60+
![Conditional Access Insights and Reporting dashboard in the Azure portal](./media/howto-conditional-access-insights-reporting/conditional-access-insights-and-reporting-dashboard.png)
61+
62+
**Conditional Access policy**: Select one or more Conditional Access policies to view their combined impact. Policies are separated into two groups: Enabled and Report-only policies. By default, all Enabled policies are selected. These enabled policies are the policies currently enforced in your tenant.
63+
64+
**Time range**: Select a time range from 4 hours to as far back as 90 days. If you select a time range further back than when you integrated the Azure AD logs with Azure Monitor, only sign-ins after the time of integration will appear.
65+
66+
**User**: By default, the dashboard shows the impact of the selected policies for all users. To filter by an individual user, type the name of the user into the text field. To filter by all users, type “All users” into the text field or leave the parameter empty.
67+
68+
**App**: By default, the dashboard shows the impact of the selected policies for all apps. To filter by an individual app, type the name of the app into the text field. To filter by all apps, type “All apps” into the text field or leave the parameter empty.
69+
70+
**Data view**: Select whether you want the dashboard to show results in terms of the number of users or number of sign-ins. An individual user may have hundreds of sign-ins to many apps with many different outcomes during a given time range. If you select the data view to be users, a user could be included in both the Success and Failure counts (for example, if there are 10 users, 8 of them could have had a result of success in the past 30 days and 9 of them could have had a result of failure in the past 30 days).
71+
72+
## Impact summary
73+
74+
Once the parameters have been set, the impact summary loads. The summary shows how many users or sign-ins during the time range resulted in “Success”, “Failure”, ”User action required” or “Not applied” when the selected policies were evaluated.
75+
76+
![Impact summary in the Conditional Access workbook](./media/howto-conditional-access-insights-reporting/workbook-impact-summary.png)
77+
78+
**Total**: The number of users or sign-ins during the time period where at least one of the selected policies was evaluated.
79+
80+
**Success**: The number of users or sign-ins during the time period where the combined result of the selected policies was “Success” or “Report-only: Success”.
81+
82+
**Failure**: The number of users or sign-ins during the time period where the result of at least one of the selected policies was “Failure” or “Report-only: Failure”.
83+
84+
**User action required**: The number of users or sign-ins during the time period where the combined result of the selected policies was “Report-only: User action required”. User action is required when an interactive grant control, such as multi-factor authentication is required by a report-only Conditional Access policy. Since interactive grant controls are not enforced by report-only policies, success or failure cannot be determined.
85+
86+
**Not applied**: The number of users or sign-ins during the time period where none of the selected policies applied.
87+
88+
### Understanding the impact
89+
90+
![Workbook breakdown per condition and status](./media/howto-conditional-access-insights-reporting/workbook-breakdown-condition-and-status.png)
91+
92+
View the breakdown of users or sign-ins for each of the conditions. You can filter the sign-ins of a particular result (for example, Success or Failure) by selecting on of the summary tiles at the top of the workbook. You can see the breakdown of sign-ins for each of the Conditional Access conditions: device state, device platform, client app, location, application, and sign-in risk.
93+
94+
## Sign-in details
95+
96+
![Workbook sign-in details](./media/howto-conditional-access-insights-reporting/workbook-sign-in-details.png)
97+
98+
You can also investigate the sign-ins of a specific user by searching for sign-ins at the bottom of the dashboard. The query on the left displays the most frequent users. Selecting a user will filter the query to the right.
99+
100+
## Troubleshooting
101+
102+
### Why is the workbook taking a long time to load?
103+
104+
Depending on the time range selected and the size of your tenant, the workbook may be evaluating an extraordinarily large number of sign-in events. For large tenants, the volume of sign-ins may exceed the query capacity of Log Analytics. Try shortening the time range to 4 hours to see if the workbook loads.
105+
106+
### After loading for a few minutes, why is the workbook returning zero results?
107+
108+
When the volume of sign-ins exceeds the query capacity of Log Analytics, the workbook will return zero results. Try shortening the time range to 4 hours to see if the workbook loads.
109+
110+
### Can I save my parameter selections?
111+
112+
You can save your parameter selections at the top of the workbook by going to **Azure Active Directory** > **Workbooks** > **Conditional Access Insights and reporting**. Here you will find the workbook template, where you can edit the workbook and save a copy to your workspace, including the parameter selections, in **My reports** or **Shared reports**.
113+
114+
### Can I edit and customize the workbook with additional queries?
115+
116+
You can edit and customize the workbook by going to **Azure Active Directory** > **Workbooks** > **Conditional Access Insights and reporting**. Here you will find the workbook template, where you can edit the workbook and save a copy to your workspace, including the parameter selections, in **My reports** or **Shared reports**. To start editing the queries, click **Edit** at the top of the workbook.
117+
118+
## Next steps
119+
120+
[Conditional Access report-only mode](concept-conditional-access-report-only.md)
Loading
Loading
Loading

0 commit comments

Comments
 (0)