Búsqueda de sitios web

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:

  1. Inicie sesión en el Centro de administración de Office 365 con sus credenciales de administrador.
  2. Haga clic en la pestaña "Usuarios" en el menú de la izquierda.
  3. Haga clic en la pestaña "Usuarios activos" en la parte superior de la página.
  4. 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".

  5. 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.

¡Asegúrese de tener instalados los módulos AzureAD y AzureADPreview antes de ejecutar este script! Uso:
Instalar módulo AzureAD
Módulo de instalación AzureADPreview -AllowClobber -Force

Para usar PowerShell para buscar usuarios inactivos, siga estos pasos:

  1. Abra PowerShell ISE en su computadora local.
  2. Conéctese a su entorno de Microsoft 365 Azure Active Directory ejecutando el siguiente comando: Connect-AzureAD
  3. Obtenga todos los usuarios de su entorno mediante el cmdlet Get-AzureADUser y repita cada uno de ellos.
  4. 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.
  5. 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.

Para obtener la fecha del último inicio de sesión de usuarios externos, utilice:
$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.

Artículos relacionados