Microsoft 365 Hesaplarına Kullanıcı Erişimini Engelleyin


İnsanların Bağlantısını Durdurmak İçin Çoklu Teknikler Mevcuttur

20 Şubat 2024'te güncellendi

Entra ID koşullu erişim politikalarını kontrol etmek için PowerShell'in kullanılmasıyla ilgili yeni bir makale, kullanıcıların Office 365'e erişimini engellemek için kullanılan teknikler hakkında düşünmeye başlamamı sağladı. Dört yıl önce, bir Fransız yasasından ilham alan bir Petri.com makalesinde sorunu ele almıştım. insanların hafta sonu bağlantılarını kesmelerine izin verin. Fransa dışındaki yerlerde, Kovid-19 salgınının birçok insanı evden çalışmaya zorlamasıyla kişisel zaman ile çalışma zamanı arasındaki boşluğu koruma ihtiyacı daha da belirgin hale geldi. Bazıları daha fazla çalıştı, bazıları daha az çalıştı ve kişisel zaman ile çalışma zamanı arasındaki çizgi bulanıklaştı. Artık zamanın ilerlemesi ve teknolojideki gelişmeler bir araya gelerek sorunun yeniden ele alınmasını mantıklı hale getiriyor.

Güncelleme: Microsoft, tüm kiracılarda parola değişiklikleri veya hesap engellemeleri gibi kritik olaylar için sürekli erişim değerlendirmesini (CAE) uygulamaya koydu. CAE'nin net etkisi, kullanıcının bir hesaba erişimini engellemenin çok daha hızlı (neredeyse anında) sonuç vermesidir.

E-posta Bağlantılarını Geçici veya Kalıcı Olarak Durdurma

Kullanıcılara verilen hizmetin devre dışı bırakılması meselesi sadece insanların hafta sonu veya tatilde çalışmasını durdurmakla ilgili değil. Bu aynı zamanda insanların bir şirketten ayrılması durumunda da geçerlidir. Yıllar geçtikçe, başlangıçta e-posta bağlantısı için farklı teknikler geliştirildi çünkü sorunun ilk ortaya çıktığı yer burasıydı.

Exchange Online, posta kutuları için zengin bir bağlantı protokolleri kümesini desteklediğinden, Set-CASMailbox cmdlet'ini çalıştırarak tek tek protokolleri devre dışı bırakabilirsiniz. Bu örnekte, hem Exchange ActiveSync (EAS) hem de Outlook mobile tarafından kullanılan Microsoft senkronizasyon teknolojisi için bir posta kutusunun mobil bağlantısını devre dışı bırakıyoruz:

Set-CASMailbox -Identity Ken.Bowers@Office365itpros.com -ActiveSyncEnabled:$False
Set-CASMailbox -Identity Ken.Bowers@Office365itpros.com -OutlookMobileEnabled:$False

Neden her iki protokolü de devre dışı bırakmalısınız? Outlook mobile, posta kutularına erişim yetkisi vermek gibi birçok gelişmiş özelliği etkinleştirmek için Microsoft senkronizasyon teknolojisini kullanır, ancak iOS ve Android işletim sistemlerinde bulunan posta uygulamaları gibi diğer istemciler, Exchange Online ile temel e-posta bağlantısı için EAS'yi kullanır. Her ikisini de devre dışı bırakmazsanız, kullanıcının posta kutusuna farklı bir uygulamayla hâlâ bağlanabileceği bir durum yaratırsınız. Aslında, tamlık sağlamak adına, mobil aygıtın bir posta kutusuna bağlanma olasılığını ortadan kaldırmak için IMAP4 ve POP3 protokollerini de devre dışı bırakmalısınız.

Protokolleri devre dışı bırakmaya odaklanmanın zayıf tarafı, bazı bilgi sızıntılarının hala meydana gelebilmesidir. Outlook mobile örneğini ele alalım. İstemcilerin mesaj göndermesini ve cihaza mesaj indirmesini durdurmak için Microsoft senkronizasyon teknolojisini devre dışı bırakabilirsiniz, ancak hem iOS hem de Android, kullanıcılara yeni mesajların geldiğini bildirmek için hizmetleri kullanır. Bildirimler, kullanıcıların mesajın tamamını okumaları gerekip gerekmediğine karar vermelerine olanak tanıyan yeni mesajlarla ilgili parçacıklar içerir. Senkronizasyon protokolünü devre dışı bıraktıktan sonra bu bildirimler gelmeye devam eder.

Gerçekte, mobil cihazları kontrol etme konusunda ciddiyseniz, gerektiğinde cihazdaki kurumsal verileri uzaktan silmenize olanak tanıyan Intune gibi bir mobil cihaz yönetimi (MDM) çözümü dağıtmanız gerekir.

Office 365'e Erişimi Durdurma

Hafta sonu vakit çalan tek uygulama e-posta değil. Teams, Planner, Yammer, SharePoint Online ve OneDrive for Business, eğer insanlar izin verirse, saat harcar. Erişimi engellemenin klasik yöntemi birinin hesabını engellemektir. Bu, hesabı seçip Oturum açmayı engelle seçeneğini belirleyerek Microsoft 365 yönetim merkezi aracılığıyla yapılabilir (Şekil 1).

Hesabın engellenmesi AccountEnabled özelliğini False olarak ayarlar. Bir hesap devre dışı bırakıldığında kullanıcı hesabında oturum açamaz:

Uygulamalardan Oturum Kapatmayı Zorlama

Bir hesabın oturum açmasının engellenmesi aynı zamanda hesabın RefreshTokensValidFromDateTime özelliğini de eylemin gerçekleştiği tarih ve saate ayarlar. Bunun etkisi, bir kullanıcı için uygulamalara verilen yenileme belirteçlerini ve tarayıcılardaki oturum çerezlerine verilen belirteçleri geçersiz kılmak ve kullanıcıyı, uygulamaları kullanmaya devam etmek için yeniden kimlik doğrulamaya zorlamaktır. Microsoft 365 yönetim merkezi, bir kullanıcının tüm oturumlarındaki oturumunu kapatma seçeneğini içerir; böylece bunu bir hesabı engellemeden yapabilirsiniz.

Ayrıca Revoke-MgUserSignInSession cmdlet'ini çalıştırarak PowerShell'li bir hesapta oturum kapatmayı da zorlayabilirsiniz:

$RevokeStatus = Revoke-MgUserSignInSession -UserId $User.Id

Bir hesaba ilişkin oturum açma işlemlerinin sıfırlanması, RefreshTokensValidFromDateTime öğesini geçerli tarih ve saate ve AccountEnabled öğesini True değerine ayarlar. Kullanıcı artık oturum açabilir. Bu gerçekleştiğinde tarayıcılar ve uygulamalar yeni geçerli jetonlar alır. Kullanıcının tüm uygulamalarda oturum açabilmesi 15 dakika kadar sürebilir.

PowerShell ile Hesapları Engelleme

Update-MgUser cmdlet'i bir kullanıcı hesabına erişimi engeller:

Update-MgUser -UserId 'Ken.Bowers@office365itpros.com' -AccountEnabled:$False

Önerilen yaklaşım, hesabı engellemek için Update-MgUser komutunu çalıştırmak ve ardından hesabın tüm uygulamalar için zorunlu oturum kapatmayla engellendiğinden emin olmak için Revoke-MgUserSignInSession komutunu çalıştırmaktır.

Hafta Sonu Bloğunun Uygulanması

İnsanların Microsoft 365 ile olan bağlantısının şu veya bu nedenle nasıl kesileceği konusuna geri dönelim. Bunun yalnızca belirli bir ülkede çalışanlar gibi belirli bir kullanıcı kategorisi için olmasını istediğimizi varsayalım. Bu kişiler bir grubun üyesiyse, bağlantıyı kesme sürecini yürütmek için bu grubu kullanabiliriz. Bu örnekte, bir dağıtım listesi bağlantısı kesilecek hesapları tanımlar:

[Array]$Accounts = Get-DistributionGroupMember -Identity "BlockWeekend" | Select WindowsLiveID, ExternalDirectoryObjectId

ForEach ($Account in $Accounts) {
   Write-Host "Turning Off Office 365 Access for" $Account.WindowsLiveID
   Update-MgUser -UserId $Account.ExternalDirectoryObjectId -AccountEnabled:$False
   $RevokeStatus = Revoke-MgUserSignInSession -UserId $Account.ExternalDirectoryObjectId  }

Üyelik ülke veya şehir gibi özelliklere göre belirlendiğinden dinamik bir dağıtım listesi daha iyi bir seçim olabilir. Dinamik dağıtım listesinin kullanıcı kümesini getirmek için, üyeleri bulmak üzere listenin alıcı filtresini kullanırız:

$AccountFilter = (Get-DynamicDistributionGroup -Identity "French Country Users").RecipientFilter
[Array]$Accounts = Get-Recipient -RecipientPreviewFilter $AccountFilter | Select-Object WindowsLiveID, ExternalDirectoryObjectId

Elbette isterseniz grup üyelerinin ayrıntılarını almak için Get-MgGroupMember cmdlet'ini kullanabilirsiniz. Örneğin:

[array]$GroupId = (Get-MgGroup Filter "DisplayName eq 'BlockWeekend'").Id
[array]$GroupMembers = Get-MgGroupMember -GroupId $GroupId | Select-Object additionalProperties
$GroupMembers.displayName

Bu sözdizimi dağıtım listeleri, güvenlik grupları, Microsoft 365 grupları ve dinamik Microsoft 365 gruplarıyla çalışır. Dinamik dağıtım listeleriyle çalışmaz çünkü bu nesneler Entra ID'de mevcut değildir.

Kullanıcıların bağlantısını kesme görevi basittir. Her Cuma gecesi, erişimi devre dışı bırakmak için PowerShell betiğini çalıştırıyoruz ve Pazartesi sabahı süreci tersine çevirmek için başka bir betiği çalıştırıyoruz. En büyük dezavantajı, Teams'in engellenen hesapları ekip kadrolarından çıkarmak için (grup üyeliğini etkilemeden) işleme şeklidir. Microsoft durumu nasıl iyileştirebileceğini düşünürken siz de bu sorunla karşılaşabilirseniz, hesapları kısa süreliğine engellemek kuruluşunuz için işe yarayabilir.

Koşullu Erişim Politikası Kullanma

Koşullu erişim ilkeleri, kullanıcının istenen kaynağa bağlanıp bağlanamayacağına karar vermek için kimlik doğrulamasını başarıyla yaptıktan sonra çalıştırılır. Bir gruba üye olmak desteklenen koşullardan biridir; bu, bir grubun uygulamalara erişimini engelleyecek bir politika oluşturmanın kolay olduğu anlamına gelir. Hafta sonu erişimini engellemek istediğimiz için, kullanıcı kurumsal bir konumdaysa erişimin sorun olmadığını, evde veya başka bir yerdeyse erişimin sorun olmadığını söyleyen başka bir koşul ekleyebiliriz.

Şekil 3 böyle bir politikanın ana hatlarını göstermektedir. Engellenen Hafta Sonu dağıtım listesinde belirtilen herkes (bir güvenlik grubu veya Microsoft 365 grubu da kullanabilirsiniz), bir Office 365 uygulamasına erişmeye çalışırsa engellenir:

Bir kullanıcının bir uygulamaya erişme girişimi koşullu erişim politikası tarafından engellendiğinde, kullanıcıya oturum açma işleminin başarılı olduğu (kimlik doğrulamanın işe yaradığı) ancak kaynağa erişim izninin olmadığı söylenir:

Zaten bir uygulamaya bağlıysa ve uygulama erişim belirtecini yenilemeye çalışırsa koşullu erişim politikası belirtecin verilmesini engelleyecektir. Şekil 5, Teams'de bu durum gerçekleştiğinde kullanıcının ne gördüğünü göstermektedir (uygulama çok kibardır!):

PowerShell ile Koşullu Erişim Politikalarını Denetleme

Koşullu erişim politikaları, kuruluşların, kullanıcıların uygulamalara erişimi üzerinde ayrıntılı kontrol sahibi olmasına olanak tanır. Senaryomuzda hafta boyunca ücretsiz erişime izin vermek istiyoruz. Koşullu erişim politikasını çalışma haftası boyunca devre dışı bırakıp yalnızca hafta sonu için etkinleştirebiliriz. Bu, Entra yönetim merkezindeki politikayı düzenleyerek veya PowerShell ile kolayca yapılabilir. Örneğin, politikayı nasıl etkinleştireceğiniz aşağıda açıklanmıştır:

$Policy = Get-MgIdentityConditionalAccessPolicy -Filter "displayName eq 'Block Weekend Access'"

Update-MgIdentityConditionalAccessPolicy -ConditionalAccessPolicyId $Policy.Id -State 'Enabled'

Hafta sonundan sonra politikayı devre dışı bırakmak için şunu çalıştırın:

Update-MgIdentityConditionalAccessPolicy -ConditionalAccessPolicyId $Policy.Id -State 'Disabled'

Koşullu Erişim Politikası Koşullarını Değiştirme

Ancak PowerShell aracılığıyla koşullu erişim politikalarıyla çalışmak için var olan olasılıkları göstermek istediğimizden, bazı kullanıcıların (bir grup tarafından tanımlanan) erişimini belirli konumlarla sınırlamak için hafta boyunca kullanıldığından politikanın her zaman etkin olduğunu varsayalım. Hafta sonu politikayı farklı bir grupla güncellememiz gerekiyor.

Koşullu erişim politikası tarafından engellenen kullanıcılar, politika koşulu olarak tanımlanır. Bir politikadan hangi kullanıcıların etkilendiğini görmek için koşullarını inceleyebiliriz. Burada politikaya tek bir grubun dahil olduğunu görüyoruz:

((Get-MgIdentityConditionalAccessPolicy -ConditionalAccessPolicyId $PolicyId).Conditions).Users | Format-List

IncludeUsers  : {}
ExcludeUsers  : {}
IncludeGroups : {468a9356-cf88-4189-bf85-40b096e3c37f}
ExcludeGroups : {}
IncludeRoles  : {}
ExcludeRoles  : {}

IncludeGroups koşulunda listelendiğinden bunun bireysel bir kullanıcı yerine bir grup olduğunu biliyoruz. Gruba benzersiz tanımlayıcı (GUID) tarafından başvurulur. Hangi grubun listelendiğini bulmak için Get-MgGroup cmdlet'ini çalıştırın:

Get-MgGroup -GroupId 468a9356-cf88-4189-bf85-40b096e3c37f

DisplayName                      Id                                   MailNickname Description GroupTypes
-----------                      --                                   ------------ ----------- ----------
Users Blocked for Weekend Access 468a9356-cf88-4189-bf85-40b096e3c37f BlockWeekend             {}

Bir politikada bir grubu diğerine geçirmek için, politikaya dahil edilecek grubun grup tanımlayıcısını belirten bir karma tablosu oluşturmamız ve ardından değişikliği yapmak için Update-MgConditionalAccessPolicy cmdlet'ini çağırmamız gerekir.

Koşullu erişim politikamızı güncellemeye yönelik bir kod örneğini burada bulabilirsiniz. Farklı bir grubun GUID'inin koşul kümesine yazıldığını görebilirsiniz:

# Update the policy with a new group
$UpdateSettings = @{
    Conditions = @{
        users = @{  
            includeGroups = @(
                "5c011293-7cc7-41c4-a0fc-3e3bb98db834"
            )
        }
    }
}
Update-MgIdentityConditionalAccessPolicy -BodyParameter $UpdateSettings -ConditionalAccessPolicyId $Policy.Id

Birkaç dakika içinde güncellenen koşullu erişim politikası etkinleşir ve engelleme uygulamaya konur.

Hafta sonu bittikten sonra süreci tersine çevirmek için politikayı orijinal grubun GUID'iyle güncelleyin. PowerShell ile koşullu erişim ilkelerini yönetme hakkında daha fazla bilgi için bu makaleye bakın.

Seçenekler ve Seçimler

Koşullu erişim politikaları Entra ID P1 lisanslarını gerektirir. Bu lisanslara zaten sahipseniz ve bu nedenle koşullu erişime yatırım yaptıysanız, hafta sonu erişimini kontrol etmek için yeni bir politika eklemek zor değildir. PowerShell ile politikaların kontrol edilebilmesi, erişimin otomatik olarak açılıp kapatılmasını otomatikleştirmeyi kolaylaştırır.

Öte yandan Entra ID P1 lisanslarınız yoksa yine de birkaç PowerShell satırıyla kullanıcı hesaplarını engelleyebilirsiniz. Erişimi engellemek istemiyorsanız ve insanlara sadece hafta sonu daha az çalışmaları gerektiğini hatırlatmak istemiyorsanız, dahili postaya "bağlantıyı kesme hakkı" sorumluluk reddi beyanlarını damgalamak için bir aktarım kuralı kullanma tekniği iyi bir yol olabilir.

Seçim güzel…

İlgili makaleler