Cómo identificar usuarios inactivos en Office 365: una guía paso a paso
Requisito: Obtener informe de usuarios inactivos en Office 365.
¿Cómo encontrar usuarios inactivos en Office 365?
Los usuarios inactivos son aquellos que no han iniciado sesión en Microsoft 365 durante un período de tiempo específico. Las cuentas de usuario inactivas en su entorno de Office 365 pueden representar un riesgo de seguridad y desperdiciar recursos valiosos. Afortunadamente, existen formas de identificar y administrar a estos usuarios para garantizar que sus datos permanezcan seguros. En esta guía, le mostraremos cómo encontrar usuarios inactivos en Office 365 y tomar las medidas necesarias para proteger su organización.
Comprenda los riesgos de los usuarios inactivos
En primer lugar, los usuarios inactivos pueden suponer un riesgo de seguridad para su organización. Si la cuenta de un usuario inactivo se ve comprometida, se puede utilizar para acceder a datos confidenciales, enviar correos electrónicos de phishing o lanzar otros tipos de ataques. Además, los usuarios inactivos pueden desperdiciar recursos valiosos como licencias y espacio de almacenamiento. Identificar y administrar cuentas inactivas es importante para garantizar que sus datos permanezcan seguros y sus recursos se utilicen de manera eficiente. Encontrar y deshabilitar usuarios inactivos puede liberar licencias y ahorrar dinero para su organización. Entonces, ¿cómo obtengo una lista de usuarios activos en Office 365?
Método 1: utilizar el Centro de administración de Microsoft 365
El Centro de administración de Microsoft 365 es el centro central para administrar su entorno de Microsoft 365. Una de las formas más sencillas de identificar usuarios inactivos es mediante el Centro de administración de Microsoft 365. Desde el Centro de administración, puede ver una lista de todos los usuarios de su organización y ver cuándo iniciaron sesión por última vez. Si un usuario no ha iniciado sesión durante un período de tiempo determinado, puede considerarlo inactivo.
Para encontrar usuarios inactivos usando esta herramienta, siga estos pasos:
- Inicie sesión en el Centro de administración de Office 365 con sus credenciales de administrador.
- Haga clic en la pestaña "Usuarios" en el menú de la izquierda.
- Haga clic en la pestaña "Usuarios activos" en la parte superior de la página.
-
Busque y encuentre un usuario específico y haga clic en el nombre de usuario para abrir las propiedades del usuario. En las propiedades del usuario, busque "Último inicio de sesión".
- Una vez que haya identificado a los usuarios inactivos, puede eliminar sus cuentas o restablecer sus contraseñas para obligarlos a iniciar sesión y reactivar sus cuentas.
Sin embargo, este método solo puede capturar el registro de inicio de sesión de los últimos 30 días y no cubre los inicios de sesión del servicio. Además, comprobar el registro de inicio de sesión de cada usuario en el entorno a través de la interfaz del navegador web puede resultar engorroso.
Método 2: utilizar el script de PowerShell de Azure AD
PowerShell es una poderosa herramienta de línea de comandos que se puede usar para automatizar una amplia variedad de tareas en Microsoft 365. Puede usar scripts de PowerShell para automatizar el proceso de identificación y administración de usuarios inactivos en su entorno. Ejecute el siguiente script que identificará a todos los usuarios inactivos de su organización, los mostrará en una lista y los exportará a un archivo CSV.
Instalar módulo AzureAD
Módulo de instalación AzureADPreview -AllowClobber -Force
Para usar PowerShell para buscar usuarios inactivos, siga estos pasos:
- Abra PowerShell ISE en su computadora local.
- Conéctese a su entorno de Microsoft 365 Azure Active Directory ejecutando el siguiente comando: Connect-AzureAD
- Obtenga todos los usuarios de su entorno mediante el cmdlet Get-AzureADUser y repita cada uno de ellos.
- Busque en los registros de inicio de sesión para obtener una lista de todos los usuarios que no han iniciado sesión durante un período de tiempo determinado con Get-AzureADAuditSignInLogs. Junto con la marca de tiempo de inicio de sesión, ofrece mucha otra información, incluida la dirección IP, el dispositivo, la ubicación, etc.
- Recopile y exporte los detalles a un informe CSV.
#Config Parameters
$InactiveDays = 30 # Past number of days user didn't login
$CSVPath = "C:\Temp\InactiveUsers.csv"
$InactiveUsers = @()
$ThresholdDate = (Get-Date).AddDays(-$InactiveDays)
$QueryStartDateTimeFilter = "{0:yyyy-MM-dd}T{0:HH:mm:sszzz}" -f $ThresholdDate
#Connect to Azure AD
Connect-AzureAD | Out-Null
#Get All users from Azure AD
$AllUsers = Get-AzureADUser -All $true
$TotalUsers = $AllUsers.Count
#Function to get the last login date time stamp of the user
Function Get-UserLastLogin([string] $UserObjectID)
{
Try {
Write-host -f Yellow "Collecting Last Login date of User Object:"$UserObjectID
#Get Signin Logs of the user on specific time frame
$SigninLog = Get-AzureADAuditSignInLogs -All:$true -Filter "userID eq '$UserObjectID' and status/errorCode eq 0 and createdDateTime ge $QueryStartDateTimeFilter" | Select -First 1
#Return Last Login Date
Return $SigninLog.CreatedDateTime
}
Catch {
$message = $_
If ($message -like "*Too Many Requests*")
{
Write-host "`tSleeping for 10 seconds due to throttling limitations..." -ForegroundColor Cyan
Sleep 10
#Recursive function call to retry the entry that was throttled
Get-UserLastLogin $UserObjectID
}
Else
{
Write-host $Message -ForegroundColor Red
}
}
}
$Counter = 1
$AllUsers | ForEach-Object {
Write-Progress -Activity "Checking Signin Logs:" -Status "Processing $($_.UserPrincipalName) ($Counter of $TotalUsers)" -PercentComplete (($Counter / $TotalUsers) * 100)
#Call the function to get sign-in log
$LastLoginDate = Get-UserLastLogin $_.ObjectID
#Collect data
If(!$LastLoginDate -or ($LastLoginDate -and ((Get-Date $LastLoginDate) -lt $ThresholdDate)))
{
$InactiveUsers += [PSCustomObject][ordered]@{
UserLoginName = $_.UserPrincipalName
UserDisplayName = $_.DisplayName
}
}
$Counter++
}
$InactiveUsers
#Export Data to CSV
$InactiveUsers | Export-Csv -Path $CSVPath -NoTypeInformation
Puede ajustar la variable $InactiveDays para definir su umbral de inactividad. Sin embargo, el cmdlet Get-AzureADAuditSignInLogs se limita a comprobar únicamente los registros de inicio de sesión de los últimos 30 días. Los usuarios que no han iniciado sesión durante un período de tiempo determinado, como 90 días, probablemente estén inactivos y deben ser revisados.
$GuestUsers=Get-AzureADUser -Todos $true -Filtrar "tipo de usuario eq 'invitado'"
Método 3: obtener informes de registro de auditoría para todos los usuarios mediante la API de Microsoft Graph
Por último, tenemos la API de Microsoft Graph para superar todos los límites. Aquí está el script de PowerShell para recuperar la fecha del último inicio de sesión de todos los usuarios en su entorno de Office 365.
#Parameters
$InactiveDays = 90
$CSVPath = "C:\Temp\InactiveUsers.csv"
$InactiveUsers = @()
$ThresholdDate = (Get-Date).AddDays(-$InactiveDays)
#Connect to Microsoft Graph
Connect-MgGraph -Scopes "AuditLog.Read.All", "User.Read.All"
#Set the Graph Profile
Select-MgProfile beta
#Properties to Retrieve
$Properties = @(
'Id','DisplayName','Mail','UserPrincipalName','UserType', 'AccountEnabled', 'SignInActivity'
)
#Get All users along with the properties
$AllUsers = Get-MgUser -All -Property $Properties
ForEach ($User in $AllUsers)
{
$LastLoginDate = $User.SignInActivity.LastSignInDateTime
If($LastLoginDate -eq $null)
{
$LastSignInDate = "Never Signed-in!"
}
Else
{
$LastSignInDate = $LastLoginDate
}
#Collect data
If(!$LastLoginDate -or ($LastLoginDate -and ((Get-Date $LastLoginDate) -lt $ThresholdDate)))
{
$InactiveUsers += [PSCustomObject][ordered]@{
LoginName = $User.UserPrincipalName
Email = $User.Mail
DisplayName = $User.DisplayName
UserType = $User.UserType
AccountEnabled = $User.AccountEnabled
LastSignInDate = $LastSignInDate
}
}
}
$InactiveUsers
#Export Data to CSV
$InactiveUsers | Export-Csv -Path $CSVPath -NoTypeInformation
Este script genera un informe de usuarios inactivos de Office 365 mediante PowerShell.
Determine el mejor curso de acción para cada usuario inactivo
Una vez que haya identificado a los usuarios inactivos en su entorno de Office 365, es importante determinar el mejor curso de acción para cada usuario. Puede eliminar/deshabilitar sus cuentas o restablecer sus contraseñas para obligarlos a iniciar sesión y reactivar sus cuentas y evitar que usuarios no autorizados, como ex empleados y contratistas, accedan a información confidencial. Es posible que algunos usuarios simplemente necesiten un recordatorio para iniciar sesión y usar sus cuentas, mientras que otros pueden necesitar desactivar o eliminar sus cuentas para garantizar la seguridad de sus datos.
Considere factores como el rol del usuario en su organización, su acceso a datos confidenciales y su historial de actividad antes de tomar una decisión. También es importante comunicar cualquier cambio al usuario y proporcionarle los recursos o el soporte necesarios.
Conclusión
Los usuarios inactivos o las cuentas obsoletas pueden representar un riesgo de seguridad para su entorno de Office 365, por lo que es importante revisar y administrar periódicamente sus cuentas de usuario. Esto incluye identificar y desactivar cuentas que ya no son necesarias o no se utilizan, y monitorear la actividad del usuario para garantizar que las cuentas se utilicen de manera adecuada. Al utilizar PowerShell, puede automatizar el proceso de identificación de usuarios inactivos, ahorrándole tiempo y esfuerzo. Ya sea que elija utilizar el Centro de administración de Microsoft 365, PowerShell o una herramienta de terceros, administrar sus cuentas de usuario correctamente dará sus frutos a largo plazo. Supervisar y administrar periódicamente las cuentas de usuario garantiza que su entorno de Microsoft 365 sea seguro y eficiente.
