Skip to content

Commit 9934085

Browse files
authored
Merge pull request #233627 from MicrosoftDocs/main
Merge main to live, 4 AM
2 parents 1078007 + 4b7c473 commit 9934085

File tree

129 files changed

+1446
-447
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

+1446
-447
lines changed

.openpublishing.redirection.active-directory.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@
6060
"redirect_url": "/azure/active-directory/saas-apps/atlassian-cloud-tutorial",
6161
"redirect_document_id": false
6262
},
63+
{
64+
"source_path_from_root": "/articles/active-directory/saas-apps/easy-metrics-auth0-connector-tutorial.md",
65+
"redirect_url": "/azure/active-directory/saas-apps/easy-metrics-connector-tutorial",
66+
"redirect_document_id": false
67+
},
6368
{
6469
"source_path_from_root": "/articles/active-directory/saas-apps/iauditor-tutorial.md",
6570
"redirect_url": "/azure/active-directory/saas-apps/safety-culture-tutorial",
@@ -135,7 +140,7 @@
135140
"redirect_url": "/azure/active-directory/saas-apps/f5-big-ip-headers-easy-button",
136141
"redirect_document_id": false
137142
},
138-
{
143+
{
139144
"source_path_from_root": "/articles/active-directory/saas-apps/tripactions-tutorial.md",
140145
"redirect_url": "/azure/active-directory/saas-apps/navan-tutorial",
141146
"redirect_document_id": false

articles/active-directory/authentication/how-to-mfa-number-match.md

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Learn how to use number matching in MFA notifications
44
ms.service: active-directory
55
ms.subservice: authentication
66
ms.topic: conceptual
7-
ms.date: 03/28/2023
7+
ms.date: 04/05/2023
88
ms.author: justinha
99
author: justinha
1010
ms.collection: M365-identity-device-management
@@ -371,21 +371,11 @@ No, number matching isn't enforced because it's not a supported feature for MFA
371371

372372
### What happens if a user runs an older version of Microsoft Authenticator?
373373

374-
If a user is running an older version of Microsoft Authenticator that doesn't support number matching, authentication won't work if number matching is enabled. Users need to upgrade to the latest version of Microsoft Authenticator to use it for sign-in if they use Android versions prior to 6.2006.4198, or iOS versions prior to 6.4.12.
374+
If a user is running an older version of Microsoft Authenticator that doesn't support number matching, authentication won't work if number matching is enabled. Users need to upgrade to the latest version of Microsoft Authenticator to use it for sign-in.
375375

376376
### Why is my user prompted to tap on one of three numbers rather than enter the number in their Microsoft Authenticator app?
377377

378-
Older versions of Microsoft Authenticator prompt users to tap and select a number rather than enter the number in Microsoft Authenticator. These authentications won't fail, but Microsoft highly recommends that users upgrade to the latest version of Microsoft Authenticator if they use Android versions prior to 6.2108.5654, or iOS versions prior to 6.5.82, so they can use number match.
379-
380-
Minimum Microsoft Authenticator version supporting number matching:
381-
382-
- Android: 6.2006.4198
383-
- iOS: 6.4.12
384-
385-
Minimum Microsoft Authenticator version for number matching which prompts to enter a number:
386-
387-
- Android 6.2111.7701
388-
- iOS 6.5.85
378+
Older versions of Microsoft Authenticator prompt users to tap and select a number rather than enter the number in Microsoft Authenticator. These authentications won't fail, but Microsoft highly recommends that users upgrade to the latest version of Microsoft Authenticator.
389379

390380
### How can users recheck the number on mobile iOS devices after the match request appears?
391381

articles/active-directory/authentication/how-to-mfa-server-migration-utility.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ services: multi-factor-authentication
66
ms.service: active-directory
77
ms.subservice: authentication
88
ms.topic: how-to
9-
ms.date: 03/27/2023
9+
ms.date: 04/05/2023
1010

1111
ms.author: justinha
1212
author: justinha
@@ -185,7 +185,14 @@ Once complete, navigate to the Multi-factor Authentication Server folder, and op
185185
You've successfully installed the Migration Utility.
186186

187187
>[!NOTE]
188-
> To ensure no changes in behavior during migration, if your MFA Server is associated with an MFA Provider with no tenant reference, you'll need to update the default MFA settings (e.g. custom greetings) for the tenant you're migrating to match the settings in your MFA Provider. We recommend doing this before migrating any users.
188+
> To ensure no changes in behavior during migration, if your MFA Server is associated with an MFA Provider with no tenant reference, you'll need to update the default MFA settings (such as custom greetings) for the tenant you're migrating to match the settings in your MFA Provider. We recommend doing this before migrating any users.
189+
190+
### Run a secondary MFA Server (optional)
191+
192+
If your MFA Server implementation has a large number of users or a busy primary MFA Server, you may want to consider deploying a dedicated secondary MFA Server for running the MFA Server Migration Utility and Migration Sync services. After upgrading your primary MFA Server, either upgrade an existing secondary server or deploy a new secondary server. The secondary server you choose should not be handling other MFA traffic.
193+
194+
The Configure-MultiFactorAuthMigrationUtility.ps1 script should be run on the secondary server to register a certificate with the MFA Server Migration Utility app registration. The certificate is used to authenticate to Microsoft Graph. Running the Migration Utility and Sync services on a secondary MFA Server should improve performance of both manual and automated user migrations.
195+
189196

190197
### Migrate user data
191198
Migrating user data doesn't remove or alter any data in the Multi-Factor Authentication Server database. Likewise, this process won't change where a user performs MFA. This process is a one-way copy of data from the on-premises server to the corresponding user object in Azure AD.

articles/active-directory/authentication/howto-sspr-windows.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ services: active-directory
66
ms.service: active-directory
77
ms.subservice: authentication
88
ms.topic: how-to
9-
ms.date: 03/22/2023
9+
ms.date: 04/05/2023
1010

1111
ms.author: justinha
1212
author: justinha
@@ -36,7 +36,7 @@ The following limitations apply to using SSPR from the Windows sign-in screen:
3636
- This feature doesn't work for networks with 802.1x network authentication deployed and the option "Perform immediately before user logon". For networks with 802.1x network authentication deployed, it's recommended to use machine authentication to enable this feature.
3737
- Hybrid Azure AD joined machines must have network connectivity line of sight to a domain controller to use the new password and update cached credentials. This means that devices must either be on the organization's internal network or on a VPN with network access to an on-premises domain controller.
3838
- If using an image, prior to running sysprep ensure that the web cache is cleared for the built-in Administrator prior to performing the CopyProfile step. More information about this step can be found in the support article [Performance poor when using custom default user profile](https://support.microsoft.com/help/4056823/performance-issue-with-custom-default-user-profile).
39-
- The following settings are known to interfere with the ability to use and reset passwords on Windows devices:
39+
- The following settings are known to interfere with the ability to use and reset passwords on Windows 10 devices:
4040
- If lock screen notifications are turned off, **Reset password** won't work.
4141
- *HideFastUserSwitching* is set to enabled or 1
4242
- *DontDisplayLastUserName* is set to enabled or 1

articles/active-directory/develop/multi-service-web-app-access-microsoft-graph-as-app.md

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ manager: CelesteDG
88
ms.service: app-service
99
ms.topic: tutorial
1010
ms.workload: identity
11-
ms.date: 08/19/2022
11+
ms.date: 04/05/2023
1212
ms.author: ryanwi
1313
ms.reviewer: stsoneff
1414
ms.devlang: csharp, javascript
@@ -54,32 +54,38 @@ When accessing the Microsoft Graph, the managed identity needs to have proper pe
5454
# [PowerShell](#tab/azure-powershell)
5555

5656
```powershell
57-
# Install the module. (You need admin on the machine.)
58-
# Install-Module AzureAD.
57+
# Install the module.
58+
# Install-Module Microsoft.Graph -Scope CurrentUser
5959
60-
# Your tenant ID (in the Azure portal, under Azure Active Directory > Overview).
61-
$TenantID="<tenant-id>"
62-
$resourceGroup = "securewebappresourcegroup"
63-
$webAppName="SecureWebApp-20201102125811"
60+
# The tenant ID
61+
$TenantId = "11111111-1111-1111-1111-111111111111"
6462
65-
# Get the ID of the managed identity for the web app.
66-
$spID = (Get-AzWebApp -ResourceGroupName $resourceGroup -Name $webAppName).identity.principalid
63+
# The name of your web app, which has a managed identity.
64+
$webAppName = "SecureWebApp-20201106120003"
65+
$resourceGroupName = "SecureWebApp-20201106120003ResourceGroup"
6766
68-
# Check the Microsoft Graph documentation for the permission you need for the operation.
69-
$PermissionName = "User.Read.All"
67+
# The name of the app role that the managed identity should be assigned to.
68+
$appRoleName = "User.Read.All"
7069
71-
Connect-AzureAD -TenantId $TenantID
70+
# Get the web app's managed identity's object ID.
71+
Connect-AzAccount -Tenant $TenantId
72+
$managedIdentityObjectId = (Get-AzWebApp -ResourceGroupName $resourceGroupName -Name $webAppName).identity.principalid
7273
73-
# Get the service principal for Microsoft Graph.
74-
# First result should be AppId 00000003-0000-0000-c000-000000000000
75-
$GraphServicePrincipal = Get-AzureADServicePrincipal -SearchString "Microsoft Graph" | Select-Object -first 1
74+
Connect-MgGraph -TenantId $TenantId -Scopes 'Application.Read.All','AppRoleAssignment.ReadWrite.All'
7675
77-
# Assign permissions to the managed identity service principal.
78-
$AppRole = $GraphServicePrincipal.AppRoles | `
79-
Where-Object {$_.Value -eq $PermissionName -and $_.AllowedMemberTypes -contains "Application"}
76+
# Get Microsoft Graph app's service principal and app role.
77+
$serverApplicationName = "Microsoft Graph"
78+
$serverServicePrincipal = (Get-MgServicePrincipal -Filter "DisplayName eq '$serverApplicationName'")
79+
$serverServicePrincipalObjectId = $serverServicePrincipal.Id
8080
81-
New-AzureAdServiceAppRoleAssignment -ObjectId $spID -PrincipalId $spID `
82-
-ResourceId $GraphServicePrincipal.ObjectId -Id $AppRole.Id
81+
$appRoleId = ($serverServicePrincipal.AppRoles | Where-Object {$_.Value -eq $appRoleName }).Id
82+
83+
# Assign the managed identity access to the app role.
84+
New-MgServicePrincipalAppRoleAssignment `
85+
-ServicePrincipalId $managedIdentityObjectId `
86+
-PrincipalId $managedIdentityObjectId `
87+
-ResourceId $serverServicePrincipalObjectId `
88+
-AppRoleId $appRoleId
8389
```
8490

8591
# [Azure CLI](#tab/azure-cli)

articles/active-directory/reports-monitoring/howto-manage-inactive-user-accounts.md

Lines changed: 40 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,89 +1,84 @@
11
---
2-
title: How to manage inactive user accounts in Azure AD
3-
description: Learn about how to detect and handle user accounts in Azure AD that have become obsolete
2+
title: How to manage inactive user accounts
3+
description: Learn how to detect and resolve user accounts that have become obsolete
44
services: active-directory
55
author: shlipsey3
66
manager: amycolannino
77
ms.service: active-directory
88
ms.topic: how-to
99
ms.workload: identity
1010
ms.subservice: report-monitor
11-
ms.date: 10/31/2022
11+
ms.date: 04/05/2023
1212
ms.author: sarahlipsey
1313
ms.reviewer: besiler
1414

1515
ms.collection: M365-identity-device-management
1616
---
17-
# How To: Manage inactive user accounts in Azure AD
17+
# How To: Manage inactive user accounts
1818

19-
In large environments, user accounts are not always deleted when employees leave an organization. As an IT administrator, you want to detect and handle these obsolete user accounts because they represent a security risk.
19+
In large environments, user accounts aren't always deleted when employees leave an organization. As an IT administrator, you want to detect and resolve these obsolete user accounts because they represent a security risk.
2020

21-
This article explains a method to handle obsolete user accounts in Azure AD.
21+
This article explains a method to handle obsolete user accounts in Azure Active Directory (Azure AD).
2222

2323
## What are inactive user accounts?
2424

25-
Inactive accounts are user accounts that are not required anymore by members of your organization to gain access to your resources. One key identifier for inactive accounts is that they haven't been used *for a while* to sign-in to your environment. Because inactive accounts are tied to the sign-in activity, you can use the timestamp of the last sign-in that was successful to detect them.
25+
Inactive accounts are user accounts that aren't required anymore by members of your organization to gain access to your resources. One key identifier for inactive accounts is that they haven't been used *for a while* to sign in to your environment. Because inactive accounts are tied to the sign-in activity, you can use the timestamp of the last sign-in that was successful to detect them.
2626

27-
The challenge of this method is to define what *for a while* means in the case of your environment. For example, users might not sign-in to an environment *for a while*, because they are on vacation. When defining what your delta for inactive user accounts is, you need to factor in all legitimate reasons for not signing in to your environment. In many organizations, the delta for inactive user accounts is between 90 and 180 days.
27+
The challenge of this method is to define what *for a while* means for your environment. For example, users might not sign in to an environment *for a while*, because they are on vacation. When defining what your delta for inactive user accounts is, you need to factor in all legitimate reasons for not signing in to your environment. In many organizations, the delta for inactive user accounts is between 90 and 180 days.
2828

2929
The last successful sign-in provides potential insights into a user's continued need for access to resources. It can help with determining if group membership or app access is still needed or could be removed. For external user management, you can understand if an external user is still active within the tenant or should be cleaned up.
3030

31-
32-
## How to detect inactive user accounts
31+
## Detect inactive user accounts with Microsoft Graph
32+
<a name="how-to-detect-inactive-user-accounts"></a>
3333

34-
You detect inactive accounts by evaluating the **lastSignInDateTime** property exposed by the **signInActivity** resource type of the **Microsoft Graph** API. The **lastSignInDateTime** property shows the last time a user made a successful interactive sign-in to Azure AD. Using this property, you can implement a solution for the following scenarios:
34+
You can detect inactive accounts by evaluating the `lastSignInDateTime` property exposed by the `signInActivity` resource type of the **Microsoft Graph API**. The `lastSignInDateTime` property shows the last time a user made a successful interactive sign-in to Azure AD. Using this property, you can implement a solution for the following scenarios:
3535

36-
- **Users by name**: In this scenario, you search for a specific user by name, which enables you to evaluate the lastSignInDateTime: `https://graph.microsoft.com/v1.0/users?$filter=startswith(displayName,'markvi')&$select=displayName,signInActivity`
36+
- **Last sign-in date and time for all users**: In this scenario, you need to generate a report of the last sign-in date of all users. You request a list of all users, and the last `lastSignInDateTime` for each respective user:
37+
- `https://graph.microsoft.com/v1.0/users?$select=displayName,signInActivity`
3738

38-
- **Users by date**: In this scenario, you request a list of users with a lastSignInDateTime before a specified date: `https://graph.microsoft.com/v1.0/users?$filter=signInActivity/lastSignInDateTime le 2019-06-01T00:00:00Z`
39+
- **Users by name**: In this scenario, you search for a specific user by name, which enables you to evaluate the `lastSignInDateTime`:
40+
- `https://graph.microsoft.com/v1.0/users?$filter=startswith(displayName,'markvi')&$select=displayName,signInActivity`
3941

40-
> [!NOTE]
41-
> When you request the signInActivity property while listing users, the maximum page size is 120 users. Requests with $top set higher than 120 will fail. SignInActivity supports `$filter` (`eq`, `ne`, `not`, `ge`, `le`) *but* not with any other filterable properties.
42+
- **Users by date**: In this scenario, you request a list of users with a `lastSignInDateTime` before a specified date:
43+
- `https://graph.microsoft.com/v1.0/users?$filter=signInActivity/lastSignInDateTime le 2019-06-01T00:00:00Z`
4244

4345
> [!NOTE]
44-
> There may be the need to generate a report of the last sign in date of all users, if so you can use the following scenario.
45-
> **Last Sign In Date and Time for All Users**: In this scenario, you request a list of all users, and the last lastSignInDateTime for each respective user: `https://graph.microsoft.com/v1.0/users?$select=displayName,signInActivity`
46-
47-
## What you need to know
48-
49-
This section lists what you need to know about the lastSignInDateTime property.
50-
51-
### How can I access this property?
52-
53-
The **lastSignInDateTime** property is exposed by the [signInActivity resource type](/graph/api/resources/signinactivity) of the [Microsoft Graph API](/graph/overview#whats-in-microsoft-graph).
46+
> When you request the `signInActivity` property while listing users, the maximum page size is 120 users. Requests with $top set higher than 120 will fail. The `signInActivity` property supports `$filter` (`eq`, `ne`, `not`, `ge`, `le`) *but not with any other filterable properties*.
5447
55-
### Is the lastSignInDateTime property available through the Get-AzureAdUser cmdlet?
48+
### What you need to know
5649

57-
No.
50+
The following details relate to the `lastSignInDateTime` property.
5851

59-
### What edition of Azure AD do I need to access the property?
52+
- The `lastSignInDateTime` property is exposed by the [signInActivity resource type](/graph/api/resources/signinactivity) of the [Microsoft Graph API](/graph/overview#whats-in-microsoft-graph).
6053

61-
To access this property, you need an Azure Active Directory Premium edition.
54+
- The property is *not* available through the Get-AzureAdUser cmdlet.
6255

63-
### What permission do I need to read the property?
56+
- To access the property, you need an Azure Active Directory Premium edition license.
6457

65-
To read this property, you need to grant the app the following Microsoft Graph permissions:
58+
- To read the property, you need to grant the app the following Microsoft Graph permissions:
59+
- AuditLog.Read.All
60+
- Directory.Read.All
61+
- User.Read.All
6662

67-
- AuditLog.Read.All
68-
- Directory.Read.All
69-
- User.Read.All
70-
71-
72-
### When does Azure AD update the property?
73-
74-
Each interactive sign-in that was successful results in an update of the underlying data store. Typically, successful sign-ins show up in the related sign-in report within 10 minutes.
63+
- Each interactive sign-in that was successful results in an update of the underlying data store. Typically, successful sign-ins show up in the related sign-in report within 10 minutes.
7564

65+
- To generate a `lastSignInDateTime` timestamp, you need a successful sign-in. The value of the `lastSignInDateTime` property may be blank if:
66+
- The last successful sign-in of a user took place before April 2020.
67+
- The affected user account was never used for a successful sign-in.
68+
69+
- The last sign-in date is associated with the user object. The value is retained until the next sign-in of the user.
7670

77-
### What does a blank property value mean?
71+
## How to investigate a single user
7872

79-
To generate a lastSignInDateTime timestamp, you need a successful sign-in. Because the lastSignInDateTime property is a new feature, the value of the lastSignInDateTime property can be blank if:
73+
If you need to view the latest sign-in activity for a user you can view the user's sign-in details in Azure AD. You can also use the Microsoft Graph **users by name** scenario described in the [previous section](#detect-inactive-user-accounts-with-microsoft-graph).
8074

81-
- The last successful sign-in of a user took place before April 2020.
82-
- The affected user account was never used for a successful sign-in.
75+
1. Sign in to the [Azure portal](https://portal.azure.com).
76+
1. Go to **Azure AD** > **Users** > select a user from the list.
77+
1. In the **My Feed** area of the user's Overview, locate the **Sign-ins** tile.
8378

84-
### For how long is the last sign-in retained?
79+
![Screenshot of the user overview page with the sign-in activity tile highlighted.](media/howto-manage-inactive-user-accounts/last-sign-activity-tile.png)
8580

86-
The last sign-in date is associated with the user object. The value is retained until the next sign-in of the user.
81+
The last sign-in date and time shown on this tile may take up to 24 hours to update, which means the date and time may not be current. If you need to see the activity in near real time, select the **See all sign-ins** link on the **Sign-ins** tile to view all sign-in activity for that user.
8782

8883
## Next steps
8984

Loading

0 commit comments

Comments
 (0)