Office 365'te Etkin Olmayan Kullanıcılar Nasıl Belirlenir: Adım Adım Kılavuz


Gereksinim: Office 365'te etkin olmayan kullanıcılar raporu alın.

Office 365'te Etkin Olmayan Kullanıcılar Nasıl Bulunur?

Etkin olmayan kullanıcılar, Microsoft 365'te belirli bir süre oturum açmamış olan kullanıcılardır. Office 365 ortamınızdaki etkin olmayan kullanıcı hesapları güvenlik riski oluşturabilir ve değerli kaynakları israf edebilir. Neyse ki verilerinizin güvende kalmasını sağlamak için bu kullanıcıları tanımlamanın ve yönetmenin yolları var. Bu kılavuzda size Office 365'te etkin olmayan kullanıcıları nasıl bulacağınızı ve kuruluşunuzu korumak için gerekli önlemleri nasıl alacağınızı göstereceğiz.

Etkin Olmayan Kullanıcıların Risklerini Anlayın

Her şeyden önce etkin olmayan kullanıcılar kuruluşunuz için güvenlik riski oluşturabilir. Etkin olmayan bir kullanıcının hesabının güvenliği ihlal edilirse, bu hesap hassas verilere erişmek, kimlik avı e-postaları göndermek veya başka türde saldırılar başlatmak için kullanılabilir. Ayrıca etkin olmayan kullanıcılar, lisanslar ve depolama alanı gibi değerli kaynakları boşa harcayabilir. Etkin olmayan hesapların belirlenmesi ve yönetilmesi, verilerinizin güvende kalmasını ve kaynaklarınızın verimli bir şekilde kullanılmasını sağlamak açısından önemlidir. Etkin olmayan kullanıcıları bulup devre dışı bırakmak, lisanslarda yer açabilir ve kuruluşunuz için para tasarrufu sağlayabilir. Peki Office 365'teki aktif kullanıcıların listesini nasıl alabilirim?

Yöntem 1: Microsoft 365 Yönetim Merkezi'ni kullanma

Microsoft 365 Yönetim Merkezi, Microsoft 365 ortamınızı yönetmeye yönelik merkezi merkezdir. Etkin olmayan kullanıcıları tanımlamanın en kolay yollarından biri Microsoft 365 Yönetim Merkezi'ni kullanmaktır. Yönetim Merkezi'nden kuruluşunuzdaki tüm kullanıcıların listesini görüntüleyebilir ve en son ne zaman oturum açtıklarını görebilirsiniz. Bir kullanıcı belirli bir süre boyunca oturum açmadıysa onu etkin değil olarak değerlendirebilirsiniz.

Bu aracı kullanan etkin olmayan kullanıcıları bulmak için şu adımları izleyin:

  1. Yönetici kimlik bilgilerinizi kullanarak Office 365 Yönetim Merkezi'nde oturum açın.
  2. Soldaki menüden “Kullanıcılar” sekmesine tıklayın.
  3. Sayfanın üst kısmındaki “Aktif kullanıcılar” sekmesine tıklayın.
  4. Belirli bir kullanıcıyı arayın ve bulun ve kullanıcı özelliklerini açmak için kullanıcı adına tıklayın. Kullanıcı özelliklerinde "Son Oturum Açma" seçeneğini arayın.

  5. Etkin olmayan kullanıcıları belirledikten sonra, hesaplarını silebilir veya şifrelerini sıfırlayarak onları giriş yapmaya ve hesaplarını yeniden etkinleştirmeye zorlayabilirsiniz.

Ancak bu yöntem yalnızca son 30 güne ait oturum açma günlüğünü yakalayabilir ve hizmet oturum açma bilgilerini kapsamaz. Ayrıca, ortamdaki her kullanıcının oturum açma günlüğünü web tarayıcısı arayüzü aracılığıyla kontrol etmek zahmetli olabilir.

Yöntem 2: Azure AD PowerShell Betiğini Kullan

PowerShell, Microsoft 365'teki çok çeşitli görevleri otomatikleştirmek için kullanılabilecek güçlü bir komut satırı aracıdır. Ortamınızda etkin olmayan kullanıcıları tanımlama ve yönetme sürecini otomatikleştirmek için PowerShell betiklerini kullanabilirsiniz. Kuruluşunuzdaki tüm etkin olmayan kullanıcıları tanımlayacak, bunları bir listede görüntüleyecek ve CSV dosyasına aktaracak aşağıdaki komut dosyasını çalıştırın.

Bu betiği çalıştırmadan önce AzureAD ve AzureADPreview modüllerinin kurulu olduğundan emin olun! Kullanımı:
Kurulum Modülü AzureAD
Kurulum Modülü AzureADPreview -AllowClobber -Force

Etkin olmayan kullanıcıları bulmak amacıyla PowerShell'i kullanmak için şu adımları izleyin:

  1. Yerel bilgisayarınızda PowerShell ISE'yi açın.
  2. Aşağıdaki komutu çalıştırarak Microsoft 365 Azure Active Directory ortamınıza bağlanın: Connect-AzureAD
  3. Get-AzureADUser cmdlet'ini kullanarak ortamınızdaki tüm kullanıcıları edinin ve her birini yineleyin.
  4. Get-AzureADAuditSignInLogs ile belirli bir süre oturum açmamış tüm kullanıcıların listesini almak için Oturum açma günlüklerinde arama yapın. Oturum açma zaman damgasının yanı sıra IP Adresi, Cihaz, Konum vb. dahil olmak üzere birçok başka bilgi sunar.
  5. Ayrıntıları toplayın ve bir CSV raporuna aktarın.

#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

Hareketsizlik eşiğinizi tanımlamak için $InactiveDays değişkenini ayarlayabilirsiniz. Ancak Get-AzureADAuditSignInLogs cmdlet'i yalnızca son 30 güne ait oturum açma günlüklerini kontrol etmekle sınırlıdır! 90 gün gibi belirli bir süre boyunca oturum açmayan kullanıcılar büyük olasılıkla etkin değildir ve incelenmeleri gerekir.

Harici kullanıcıların son giriş tarihini almak için şunu kullanın:
$GuestUsers=Get-AzureADUser -All $true -Filter “kullanıcı türü eq 'misafir'”

Yöntem 3: Microsoft Graph API'yi kullanarak Tüm Kullanıcılar için Denetim Günlüğü Raporları Alma

Son olarak tüm sınırların üstesinden gelebilecek Microsoft Graph API'ye sahibiz. İşte Office 365 ortamınızdaki tüm kullanıcıların son oturum açma tarihini getirecek PowerShell betiği.


#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

Bu komut dosyası, PowerShell kullanarak bir Office 365 etkin olmayan kullanıcılar raporu oluşturur.

Her Etkin Olmayan Kullanıcı için En İyi Eylem Planını Belirleyin

Office 365 ortamınızda etkin olmayan kullanıcıları belirledikten sonra her kullanıcı için en iyi eylem planını belirlemek önemlidir. Kullanıcıları oturum açmaya ve hesaplarını yeniden etkinleştirmeye zorlamak ve eski çalışanlar ve yükleniciler gibi yetkisiz kullanıcıların herhangi bir hassas bilgiye erişmesini önlemek için hesaplarını silebilir/devre dışı bırakabilir veya şifrelerini sıfırlayabilirsiniz. Bazı kullanıcılar, giriş yapmak ve hesaplarını kullanmak için yalnızca bir hatırlatmaya ihtiyaç duyabilirken, diğerlerinin verilerinin güvenliğini sağlamak için hesaplarının devre dışı bırakılması veya silinmesi gerekebilir.

Karar vermeden önce kullanıcının kuruluşunuzdaki rolü, hassas verilere erişimi ve etkinlik geçmişi gibi faktörleri göz önünde bulundurun. Değişiklikleri kullanıcıya iletmek ve onlara gerekli kaynakları veya desteği sağlamak da önemlidir.

Çözüm

Etkin olmayan kullanıcılar veya eski hesaplar Office 365 ortamınız için güvenlik riski oluşturabilir; bu nedenle kullanıcı hesaplarınızı düzenli olarak gözden geçirip yönetmek önemlidir. Buna artık ihtiyaç duyulmayan veya kullanılmayan hesapların belirlenmesi ve devre dışı bırakılması ve hesapların uygun şekilde kullanıldığından emin olmak için kullanıcı faaliyetlerinin izlenmesi de dahildir. PowerShell'i kullanarak etkin olmayan kullanıcıları tanımlama sürecini otomatikleştirerek zamandan ve emekten tasarruf edebilirsiniz. İster Microsoft 365 Yönetim Merkezi'ni, ister PowerShell'i, ister bir üçüncü taraf aracını kullanmayı seçin, kullanıcı hesaplarınızı doğru bir şekilde yönetmek uzun vadede karşılığını verecektir. Kullanıcı hesaplarını düzenli olarak izlemek ve yönetmek, Microsoft 365 ortamınızın güvenli ve verimli olmasını sağlar.

İlgili makaleler