Entra ID üzerinde kullanılmayan veya belirli bir süre boyunca etkin olmayan hesapların temizliğini yapmak IT çalışanları için önemsiz ve zaman kaybı gibi gözüksede aslında saldırı yüzeyini en aza indirmek için son derece kritik bir öneme sahiptir. Bu nedenle bu hesapları kilitlemek veya sistem üzerinden kaldırmak Entra ID üzerindeki güvenlik skorunuzu arttıracak ve daha güvenli bir hale getirecektir.
Eğer kiracınız üzerinde çok fazla kullanıcı mevcut ise kullanılmayan hesaplar genellikle eski ve unutulmuş parolalara sahip oldukları için saldırganlar tarafından öncelikli hedefler arasındadır. Kiracınız üzerinde etkin olmayan bir hesap varmı bilmiyorsanız eğer bunu öğrenmek için doğru yerdesiniz demektir 🙂
Etkin Olmayan Hesaplar Ne Gibi Sorunlar Yaratır ?
Hesaplar çeşitli nedenlerle etkisiz hale gelebilir. Kullanmadığınız cihazlar/uygulamalar için unutulmuş hesaplar veya ayrılan çalışanlara/yüklenicilere ait olabilirler. Test hesapları veya artık geçmişte kalmış kısa süreli kullanım için oluşturulmuş hesaplar da olabilirler. Nedeni ne olursa olsun, bu hesaplar genellikle posta kutularına, SharePoint sitelerine, OneDrive dosyalarına veya ulaşılması istenmeyen uygulamalara erişime neden olabilir. Daha kötüsü, bu etkisiz hesapların zayıf kimlik bilgileri olabilir veya hesaplar üzerinde çoklu kimlik doğrulama (MFA) etkinleştirilmemiş olabilir. Bu, onları kimlik bilgisi doldurma saldırıları için açık bir davet haline getirir.
Entra ID, bu hesapları sizin için bulmak veya kaldırmak için herhangi bir yerel mekanizmaya sahip değildir ve siz işlem yapmadığınız sürece hareketsiz hesapların sonsuza dek kalmasına izin verir. Etkin olmayan hesapları elbette elle tek tek bulabilir veya silebilirsiniz. Fakat bundan daha akıllıca bir yöntem mevcut. PowerShell ile bu hesapları bulabilir, devre dışı bırakabilir ve tekrarlayan bir tarama ayarlayabilirsiniz hem de efor sarfetmeden.
Hazırsanız başlayalım.
Adım 1 : Hazırlanma
Entra ID üzerinde kullanıcı hesapları ile ilgili işlem yapabilmemiz için ilk olarak Microsoft Graph Powershell modülünü ihtiyacımız olacak. Eğer kurulu değil ise aşağıdaki betiği çalıştırarak kurabilirsiniz.
Install-Module -Name Microsoft.Graph -Scope CurrentUser
Eğer modül kurulumunu tamamladıysak şimdi gerekli yetkileri tanımlayıp Entra ID ye bağlanalım.
Connect-MgGraph -Scopes "User.ReadWrite.All", "Directory.Read.All", "AuditLog.Read.All", "User.EnableDisableAccount.All”
Bu betiği çalıştırdıktan sonra bir oturum açma işlemi tetiklenecektir. Kiracınız üzerinde yönetici yetkisine sahip bir hesapla oturum açmanız gerekmektedir.
Adım 2 : Etkin Olmayan Hesapları Bulma
Entra ID, her kullanıcı için lastSignInDateTime özelliğini izler ve bu da bize son kimlik doğrulama zamanını gösterir. Bu verileri almak ve örneğin 60 gündür oturum açmamış olan kullanıcıları filtrelemek için Get-MgUser’ı kullanacağız. Neden 60? Bu tatilcileri veya izinleri hesaba katacak kadar uzun, riski düşük tutacak kadar kısa bir örnek zaman dilimidir. Kuruluşunuzun farklı ihtiyaçları varsa bunu lütfen kendinize göre ayarlayın.
60 gündür oturum açmayan kullanıcıların listesini görüntüleyebilmek için gereken kod parçacığı:
$cutoffDate = (Get-Date).AddDays(-60)
$inactiveUsers = Get-MgUser -All -Filter "usertype eq 'member'" -Property DisplayName,UserPrincipalName,SignInActivity |
Where-Object { $_.SignInActivity.LastSignInDateTime -lt $cutoffDate -or $_.SignInActivity.LastSignInDateTime -eq $null }
Bu betik, tüm kullanıcıları tarar, kullanıcı tam adı (UPN) ve oturum açma etkinliklerini çeker, ardından son oturum açma tarihi 60 günden eski olanlar veya hiç oturum açmamış olanlar için filtreler. Karşınıza çıkan tabloda inaktif hesapların kime ait olduğunu hızlıca görebilirsiniz.
$inactiveUsers | Select-Object DisplayName, UserPrincipalName, @{Name="LastSignIn";Expression={$_.SignInActivity.LastSignInDateTime}} | Format-Table
Adım 3 : Hesapları Devre Dışı Bırakma
Bu hesapları bulmak başladığımız temizlik operasyonunun sadece yarısıdır. Şimdi tehditleri etkisiz hale getirelim. Bu örnekte bulduğumuz inaktif kullanıcıların oturum açmasını engelleyerek devam edeceğiz.
Hesapları neden silmiyoruz? Bunun için bir çok neden var, posta kutusu ve OneDrive saklama, Office 365 lisans yönetimi ve denetim, altta yatan hesap nesnesini olduğu gibi tutmanızı gerektirebilir. Oturum açmayı engellemek, birisi “o posta kutusuna ihtiyacım var!” dediğinde erişimi geri yüklemeyi kolaylaştırır.
$inactiveUsers’ı devre dışı bırakmak istediğiniz kullanıcı kümesiyle yükledikten sonra, sadece Update-MgUser’ı çağırmanız yeterlidir.
$params = @{ AccountEnabled = "false" }
foreach ($user in $inactiveUsers) {
Update-MgUser -UserId $user.Id -BodyParameter $params
Write-Host "Disabled account: $($user.UserPrincipalName)"
}
Bu betiği çalıştırdığımızda, kullanıcı listemizde döngüye girer, AccountEnabled’ı $false olarak ayarlar ve eylemi onaylar ardından bize küçük bir onay mesajı gösterir ve kullanıcının oturum açma sistemini kilitler.
Adım 4 : Hariç tutma
Evet etkin olmayan kullanıcıları devre dışı bıraktık. Fakat ya belirli isme sahip hesapları bu işlemin dışında tutmak istersek? Örneğin servis hesapları. veya “svc” ile başlayan hesapları hariç tutmak isterseniz aşağıdaki betiği çalıştırabilirsiniz.
$exceptions = @("svc-*")
$inactiveUsers = $inactiveUsers | Where-Object { $_.UserPrincipalName -notlike $exceptions[0]}
Adım 5 : Doğrulama ve Kontrol
Evet işlemlerimizi tamamladık. Sırada kontrol var. Entra ID portalında Kullanıcılar > Tüm Kullanıcılar altında yeni devre dışı bırakılan hesaplardan bir kaç tanesini rastgele kontrol edebilir ve işlemin başarılı olup olmadığını anlayabilirsiniz.
Etkin olmayan hesapları belirli aralıklarla kontrol etmek gerekir bunları göz ardı etmek uzun vadede bir risktir. Artık PowerShell ile Microsoft 365 kiracınızı güvende tutmak için tekrarlanabilir ve daha düşük eforlu bir yolunuz var. Bu makalede, kendi ihtiyaçlarınıza göre özelleştirebileceğiniz açıklayıcı bir örnek oluşturma amaçlanmıştır. Örneğin, betiği düzenli aralıklarla çalıştırmayı otomatikleştirebilir, raporlama ekleyebilir, kontrolden muaf tutmak istediğiniz belirli grupları filtreleyebilir vb. kısıtlamalar tanımlayabilirsiniz.
Saygılarımla.