Site icon Baki ÇUBUK

Windows Server 2025 ile Hibrit Kimlik, Bölüm 3: Security Defaults’tan Conditional Access’e Geçiş

Merhaba

İlk iki bölümde on-premises Active Directory ortamımızı kurduk ve Microsoft Entra Connect Sync ile kullanıcılarımızı Entra ID’ye senkronize ettik. Kullanıcılarımız artık on-premises parolalarıyla buluta oturum açabiliyor. Bu bölümde tenant’ın güvenlik tarafına geçiyoruz: yeni tenant’larda varsayılan olarak açık gelen Security Defaults’u kapatıp yerine break-glass hesapları ve Conditional Access politikalarıyla daha esnek, denetlenebilir ve istisnaları belgelenmiş bir yapı kuracağız.

Security Defaults ve Conditional Access Farkı

Security Defaults, Microsoft’un her tenant için ücretsiz sunduğu temel koruma paketi. Açık olduğunda tüm kullanıcıların MFA’ya kaydolmasını istiyor, yöneticilerden her oturumda MFA talep ediyor ve legacy authentication (eski kimlik doğrulama) protokollerini engelliyor. Küçük ortamlar için iyi bir başlangıç noktası, ancak iki önemli sınırı var: hiçbir kullanıcı ya da hesap için istisna tanımlanamıyor ve koşula bağlı kurallar (konum, cihaz durumu, uygulama, risk seviyesi) yazılamıyor.

Conditional Access ise “kim, neye, hangi koşulda erişirse ne olsun” sorularını tek tek tanımlayabildiğimiz politika motoru. Microsoft Entra ID P1 lisansı gerektiriyor ve Security Defaults ile aynı anda kullanılamıyor; Conditional Access politikalarını etkinleştirebilmek için önce Security Defaults’un kapatılması gerekiyor.

Özellik Security Defaults Conditional Access
Lisans Tüm tenant’larda ücretsiz Microsoft Entra ID P1 veya üzeri
MFA zorunluluğu Tüm kullanıcılar, sabit kurallarla Kullanıcı, grup, uygulama ve koşula göre
İstisna tanımlama Mümkün değil Kullanıcı, grup ve rol bazında
Legacy authentication engelleme Var Ayrı politika ile
Rapor modu (Report-only) Yok Var
Konum, cihaz ve risk koşulları Yok Var

Senkronizasyon Hesabı ve MFA: Eski ve Güncel Durum

Eski Entra Connect kurulumlarında Security Defaults’tan Conditional Access’e geçişin en sık gerekçesi, senkronizasyon hesabını MFA’dan hariç tutma ihtiyacıydı. Bu sürümlerde Entra Connect, Entra ID’ye Sync_SUNUCUADI_... adıyla oluşturulan bir kullanıcı hesabıyla bağlanıyordu ve MFA isteyen politikalar bu hesabın senkronizasyonunu engelleyebiliyordu.

Güncel sürümde durum farklı. Bölüm 2’de doğruladığımız gibi Entra Connect artık Entra ID’ye kullanıcı hesabıyla değil, sertifikalı bir uygulama kimliğiyle (application-based authentication) bağlanıyor. Kullanıcılara yönelik Conditional Access politikaları bu uygulama kimliğine uygulanmadığı için senkronizasyon için ayrı bir istisna tanımlamamız gerekmiyor. Yani güncel sürümde Security Defaults’tan Conditional Access’e geçişin gerekçesi senkronizasyon değil, istisnaları ve kuralları kendimizin yönetebilmesi.

Not: Ortamınızdaki Entra Connect hala eski hesap tabanlı yöntemle çalışıyorsa (Get-ADSyncEntraConnectorCredential çıktısında ConnectorIdentityType değeri ServiceAccount ise), MFA isteyen politikalarda Directory Synchronization Accounts rolünü hariç tutmanız gerekiyor. Microsoft’un Conditional Access şablonları bu rolü varsayılan olarak hariç tutuyor. Kalıcı çözüm ise sunucuyu güncelleyip application-based authentication’a geçmek.

Adım 1: Break-glass Hesaplarını Oluşturma

Conditional Access ile çalışırken yapılabilecek en tehlikeli hata, yanlış yapılandırılmış bir politika yüzünden tenant’a erişimi tamamen kaybetmek. Break-glass (acil durum erişim) hesapları tam olarak bu senaryo için var: normal yönetim hesapları kilitlendiğinde, MFA altyapısında bir sorun yaşandığında ya da hatalı bir politika tüm yöneticileri dışarıda bıraktığında tenant’a girmemizi sağlayan son kapı.

Microsoft’un önerileri doğrultusunda iki adet break-glass hesabı oluşturuyoruz ve şu kurallara uyuyoruz:

İki hesabı da aynı adımlarla oluşturuyoruz. Aşağıda bg-admin01 için ekranları tek tek gösteriyorum; bg-admin02 için aynı adımları yalnızca hesap adını değiştirerek tekrarlıyoruz. Kendi tenant’ınızda pwqv yerine tenant’ınızın başlangıç alan adını kullanın. Hesap adlarının tahmin edilmesini zorlaştırmak için üretim ortamında daha az belirgin adlar tercih edebilirsiniz.

Yeni Kullanıcı Oluşturmayı Başlatma

Entra admin center’da Entra ID > Users > All users sayfasını açıp üst menüdeki New user açılır listesinden Create new user seçeneğine tıklıyoruz. Aynı listedeki Invite external user seçeneği başka bir tenant’tan misafir (B2B) kullanıcı davet etmek içindir; break-glass hesabı tenant’ın kendi üyesi olmalı, bu yüzden Create new user ile devam ediyoruz.

Basics Sekmesi

Basics sekmesinde hesabın temel kimlik bilgilerini giriyoruz:

Basics sekmesinde gerekli yapılandırmayı tamamladıktan sonra Next:Properties seçeneğine tıklayarak devam ediyoruz.

Uyarı: Otomatik üretilen parola yalnızca bu ekranda görünür. Create’e basmadan önce parola alanının yanındaki kopyalama simgesiyle parolayı alıp güvenli bir yere kaydedin. Kaydetmeyi unutursanız hesabın parolasını sıfırlamanız gerekir. Bu parola geçicidir; ilk oturum açmada yeni, uzun ve güçlü bir parola belirleyip onu da iki ayrı güvenli noktada saklıyoruz.

Properties Sekmesi

Properties sekmesinde iş unvanı, departman, şirket adı ve Usage location (kullanım konumu) gibi alanlar bulunur. Break-glass hesabı bir kişiye bağlı olmadığı için bu alanları boş bırakıp Next: Assignments ile ilerliyoruz. Usage location yalnızca hesaba lisans atanacaksa gerekir; break-glass hesaplarının yönetim portallarına erişmesi için lisans zorunlu değil.

Assignments Sekmesi ve Rol Ataması

Assignments sekmesinde hesabı gruplara ekleyebilir ya da rol atayabiliriz. Rol atamasını oluşturma sırasında yapmak, hesabın bir an bile yetkisiz ve yarım yapılandırılmış kalmasını önler. Add role bağlantısına tıklıyoruz.

Açılan Directory roles panelinde arama kutusuna global yazıyor, listeden Global Administrator rolünü işaretleyip Select ile onaylıyoruz. Listede Global Reader gibi benzer adlı roller de çıkar; seçimin Global Administrator olduğundan emin olun.

Panel kapandığında Assignments listesinde Role türünde Global Administrator satırı görünür. Grup üyeliğini burada eklemiyoruz; CA-Exclude-BreakGlass grubunu iki hesap da hazır olduktan sonra oluşturacağız. Next: Review + create ile devam ediyoruz.

Review + create

Son ekranda User principal name, Display name, User type (Member) ve atanan rolü Global Administrator kontrol ediyoruz. Parolayı hala kaydetmediyseniz Previous ile Basics sekmesine dönüp şimdi kaydedin. Her şey doğruysa Create ile hesabı oluşturuyoruz.

Aynı adımları bg-admin02@pwqv.onmicrosoft.com için tekrarlıyoruz. İki hesabın Global Administrator ataması Entra ID > Roles & admins > Global Administrator > Assignments sayfasında Active olarak listelenmelidir.

Ardından bu iki hesabı içeren bir güvenlik grubu oluşturuyoruz. Tüm Conditional Access politikalarında istisnayı tek tek kullanıcılarla değil bu grupla tanımlayacağız; böylece istisnalar tek bir yerden yönetilecek ve belgelenmiş olacak.

CA-Exclude-BreakGlass Grubunu Oluşturma

İki hesap da hazır olduğuna göre onları içeren bir güvenlik grubu oluşturuyoruz. Tüm Conditional Access politikalarında istisnayı tek tek kullanıcılarla değil bu grupla tanımlayacağız. Böylece istisnalar tek bir yerden yönetilir ve belgelenmiş olur; ileride bir break-glass hesabını değiştirmek gerekirse politikalara dokunmadan yalnızca grup üyeliğini güncelleriz.

Entra ID > Groups > All groups sayfasında üst menüden New group‘a tıklıyoruz. Tenant’ta henüz bulut grubu olmadığı için liste boş. Bu ekranda Unable to complete due to service connection error gibi bir uyarı görürseniz listenin yüklenmesi sırasında yaşanan geçici bir hatadır; Refresh ile yeniden deneyebilir ya da doğrudan New group ile devam edebilirsiniz.

New Group formunda şu alanları dolduruyoruz:

İpucu: Formda Microsoft Entra roles can be assigned to the group seçeneği görünüyorsa production (üretim) ortamında bunu Yes yapmayı düşünün. Rol atanabilir (role-assignable) grupların üyeliğini yalnızca Privileged Role Administrator ve Global Administrator değiştirebilir; böylece User Administrator ya da Groups Administrator rolündeki biri kendini istisna grubuna ekleyemez. Bu seçenek yalnızca grup oluşturulurken belirlenir, sonradan değiştirilemez.

Members başlığının altındaki No members selected bağlantısına tıklıyoruz.

Add members panelinde arama kutusuna bg yazıyoruz. Listede bg-admin01 ve bg-admin02 kullanıcıları çıkıyor; ikisini de işaretliyoruz. Sağdaki Selected (2) listesinde iki hesabın UPN’lerini kontrol edip Select ile paneli kapatıyoruz.

Forma döndüğümüzde Members alanında 2 members selected yazıyor. Create ile grubu oluşturuyoruz.

Grup birkaç saniye içinde All groups listesinde görünür. Arama kutusuna ca yazdığımızda CA-Exclude-BreakGlass grubunu Group type altında Security ve Membership type altında Assigned olarak görüyoruz. Grubun Object Id değerini not almak faydalı; politikaları ileride PowerShell ya da Microsoft Graph ile yönetirseniz istisna grubunu bu kimlikle referans vereceksiniz.

Her iki hesapla ayrı ayrı oturum açıp FIDO2 güvenlik anahtarı ya da passkey kaydını tamamlıyor ve hesapların sorunsuz çalıştığını test ediyoruz. Break-glass hesaplarının oturum açma etkinliklerinin izlenmesi de en az hesapların kendisi kadar önemli: bu hesaplarla yapılan her oturum açma bir alarm üretmeli. Log Analytics’e aktarılan sign-in loglarında bu hesaplar için bir uyarı kuralı tanımlamak bunun en pratik yolu.

Adım 2: Security Defaults’u Kapatma

Security Defaults ile Conditional Access aynı anda kullanılamaz; Conditional Access politikalarını etkinleştirebilmek için önce Security Defaults’u kapatmamız gerekiyor. Security Defaults’u kapattığımız an ile Conditional Access politikalarının devreye girdiği an arasında kullanıcılar için MFA zorunluluğu ve legacy authentication engeli ortadan kalkar. Bu yüzden bu adımı tamamladıktan sonra ara vermeden Adım 3 ve Adım 4’e geçiyoruz. Üretim ortamında bu işi kullanıcı trafiğinin düşük olduğu bir bakım penceresinde, politikaların tasarımı önceden yazılı olarak hazırlanmış şekilde yapmak gerekir.

Not: Microsoft’un Azure portal, Entra admin center ve Intune admin center gibi yönetim portalları için uyguladığı zorunlu MFA, Security Defaults kapatıldığında da geçerli kalır. Kapattığımız şey kullanıcıların genelini kapsayan korumadır; yönetim portallarına MFA’sız giriş yine mümkün olmaz.

Security Defaults Ayarına Ulaşma

Entra admin center’da Entra ID > Overview sayfasını açıp Properties sekmesine geçiyoruz. Sayfanın en altındaki Security defaults bölümünde Your organization is protected by security defaults. ifadesi, tenant’ın şu anda Security Defaults ile korunduğunu gösteriyor. Hemen altındaki Manage security defaults bağlantısına tıklıyoruz.

Sağda açılan Security defaults panelinde değerin Enabled olduğunu ve Your organization is currently using security defaults. mesajını görüyoruz. Panel, MFA’nın hesap ele geçirme saldırılarının yüzde 99,9‘unu durdurabileceğini ve Security Defaults açıkken ele geçirme oranında yüzde 80‘lik bir düşüş görüldüğünü hatırlatıyor.

Disabled Seçimi ve Kapatma Gerekçeleri

Açılır listeden Disabled seçtiğimizde panel turuncu bir uyarıyla With security defaults disabled, your organization is vulnerable to common identity-related attacks. diyor ve altında zorunlu bir Reason for disabling (kapatma gerekçesi) bölümü açılıyor. Burada seçilen gerekçe Microsoft’a geri bildirim olarak gider; hangi seçeneği işaretlersek işaretleyelim Security Defaults aynı şekilde kapanır, tenant’ta başka bir ayar değişmez.

Yine de seçenekler, kuruluşların Security Defaults’u neden kapattığını ve her durumda aslında neyin yapılması gerektiğini iyi özetliyor:

Gerekçe Ne Anlama Gelir Önerilen Yaklaşım
My organization is planning to use Conditional Access Kuruluş, sabit kurallar yerine kendi Conditional Access politikalarına geçiyor Entra ID P1 veya P2 lisansı varsa doğru tercih budur; Security Defaults’un sağladığı korumaların tamamı Conditional Access politikalarıyla karşılanmalı
Too many multifactor authentication sign-up requests Kullanıcılar Microsoft Authenticator kaydı için sürekli uyarı alıyor. Security Defaults, kaydı olmayan kullanıcıya 14 gün içinde kaydı tamamlamasını zorunlu kılar Kapatmak yerine kullanıcıları bilgilendirip kaydı toplu olarak tamamlatmak. Kayıt bittiğinde uyarılar da biter
My organization is unable to use apps/devices Security Defaults legacy authentication’ı engellediği için eski e-posta istemcileri, SMTP ile tarama yapan yazıcılar ya da basic authentication kullanan uygulamalar çalışmıyor Bu uygulamaları modern authentication’a taşımak. Security Defaults’u bu yüzden kapatmak, legacy authentication kapısını tüm tenant için yeniden açmak anlamına gelir
Too many sign-in multifactor authentication challenges Kullanıcılar sık MFA istemlerinden şikayet ediyor Security Defaults’ta istem sıklığı ayarlanamaz. P1 lisansı varsa Conditional Access ile sign-in frequency ve güvenilir cihaz koşulları tanımlanarak istem sayısı azaltılır
Other Listede olmayan bir gerekçe Açıklama alanına gerekçe yazılır. İç denetim açısından kapatma kararının ayrıca kayıt altına alınması iyi olur

Gerekçelerin dördünden üçü aslında Security Defaults’un işini yaptığını gösteren şikayetler. Lisansı Security Defaults ile sınırlı olan bir kuruluşta bu nedenlerle kapatma yapmak, kullanıcıları MFA’sız bırakır ve Conditional Access ile bir alternatif kurulmadıkça önerilmez.

Gerekçeyi Seçip Kaydetme

Bizim senaryomuz tam olarak ilk seçeneğe uyuyor: My organization is planning to use Conditional Access seçeneğini işaretliyoruz. Bu seçenekte panel ek bir uyarı gösteriyor: Once you disabled security defaults, your organization will not be protected until you create Conditional Access policies to protect your identities. Yani Security Defaults kapandığı andan itibaren koruma, bizim oluşturacağımız politikalara bağlı. Save ile kaydediyoruz.

Save‘e bastığımızda panelin üst kısmında son bir onay kutusu açılıyor: Disable security defaults başlığı altında Disabling security defaults will leave your organization vulnerable to common attacks. uyarısı yer alıyor. Portal, kararın bilinçli verildiğinden emin olmak için bu onayı ayrıca istiyor. Disable ile onaylıyoruz.

İşlem birkaç saniye içinde tamamlanıyor ve sağ üstte Successfully disabled security defaults policy. bildirimi görünüyor. Portal bizi doğrudan Conditional Access | Overview sayfasına yönlendiriyor; Microsoft da bir sonraki adımın politika oluşturmak olduğunu bu şekilde hatırlatıyor.

Conditional Access sayfasının sol menüsü bu bölümde kullanacağımız alanları bir arada gösteriyor:

Security Defaults artık kapalı. Vakit kaybetmeden Microsoft-managed policies’e geçiyoruz.

Adım 3: Policies Sayfası ve Microsoft-managed Policies

Conditional Access menüsünden Policies sayfasına geçiyoruz. Lab tenant’ımızda liste boş: sayfa bize Conditional Access’in ne olduğunu iki örnekle anlatan bir tablo ve Create your first policy diye başlayan üç adımlık bir başlangıç rehberi gösteriyor. Yani tenant’ta henüz hiçbir politika yok; Security Defaults kapandığı için şu anda kullanıcıları koruyan bir kural da yok.

Üst menüdeki seçenekler bu bölüm boyunca kullanacağımız araçlar:

Microsoft-managed Policies Hakkında

Microsoft, bazı tenant’larda kendisi Conditional Access politikaları oluşturuyor. Bu politikalar listede Microsoft-managed olarak işaretlenir ve genellikle yöneticiler için MFA, per-user MFA kullanan kullanıcılar için MFA ya da riskli oturum açmalarda yeniden kimlik doğrulama gibi senaryoları kapsar. Microsoft bunları önce Report-only modunda oluşturur ve yöneticilere bildirim gönderir; yönetici bir işlem yapmazsa belirli bir süre sonunda politikalar otomatik olarak On durumuna geçer.

Bizim tenant’ımız Security Defaults ile korunduğu için Microsoft-managed policies oluşturulmamış, bu yüzden liste boş geliyor. Sizin tenant’ınızda bu politikalar görünüyorsa silinemediklerini bilmek gerekiyor; yalnızca durumlarını (On, Off, Report-only) ve hariç tutulan kullanıcıları değiştirebilirsiniz. Böyle bir durumda her Microsoft-managed policy‘yi açıp Users > Exclude > Users and groups altına CA-Exclude-BreakGlass grubunu ekleyin. Aksi halde bu politikalar ileride On durumuna geçtiğinde break-glass hesaplarını da kapsar.

İpucu: Microsoft-managed policies tenant’a ileride de eklenebilir. Conditional Access > Policies listesini dönemsel olarak kontrol etmek ve Microsoft’tan gelen new managed policy bildirimlerini takip etmek, break-glass istisnasının atlanmasını önler.

Adım 4: Kendi Conditional Access Politikalarımızı Oluşturma

Security Defaults’un sağladığı korumayı şimdi kendi politikalarımızla yeniden kuruyoruz. Kurumun adlandırma standardına uyan ve istisnaları belgelenmiş politikalar, Microsoft’un hazır kurallarına göre uzun vadede çok daha kolay yönetiliyor. Lab’ımızda üç temel politika oluşturuyoruz. Her politikayı önce Report-only (Yalnızca rapor) modunda oluşturuyor, etkisini doğruladıktan sonra On (Açık) konumuna alıyoruz.

Politika Kullanıcılar Hedef kaynaklar Koşul Erişim denetimi İlk durum
CA001-BlockLegacyAuth Tüm kullanıcılar, CA-Exclude-BreakGlass hariç Tüm kaynaklar Client apps: Exchange ActiveSync ve Other clients Block access Report-only
CA002-RequireMFA-AllUsers Tüm kullanıcılar, CA-Exclude-BreakGlass hariç Tüm kaynaklar Yok Require multifactor authentication Report-only
CA003-RequirePhishingResistantMFA-Admins Yönetici rolleri, CA-Exclude-BreakGlass hariç Tüm kaynaklar Yok Require authentication strength: Phishing-resistant MFA Report-only

Üç politikanın oluşturma ekranları büyük ölçüde aynı: Name, Users, Target resources, Conditions, Grant ve Enable policy. Bu yüzden CA001‘i tüm ekranlarıyla adım adım anlatıyor, CA002 ve CA003‘te yalnızca farklı olan ayarları gösteriyoruz.

CA001: Legacy Authentication’ı Engelleme

Legacy authentication, POP, IMAP, SMTP AUTH ve eski Office istemcilerinin kullandığı temel kimlik doğrulama gibi MFA’yı desteklemeyen protokolleri kapsıyor. Bu protokoller açık kaldığı sürece MFA politikalarımız atlatılabilir; parola püskürtme (password spray) saldırılarının büyük kısmı da bu kanallardan geliyor. Security Defaults bu protokolleri zaten engelliyordu; CA001 ile aynı korumayı Conditional Access tarafında yeniden kuruyoruz.

Yeni Politikayı Başlatma

Conditional Access | Overview sayfasındaki Create new policy ya da Policies sayfasındaki New policy ile boş bir politika açıyoruz.

Name alanına CA001-BlockLegacyAuth yazıyoruz. Politika adlarında numara, eylem ve kapsamı içeren bir standart kullanmak, politika sayısı arttığında listeyi okunur tutar ve Sign-in logs incelenirken hangi politikanın ne yaptığını adından anlamayı sağlar. Ardından Assignments altındaki Users bölümünde 0 users and groups selected bağlantısına tıklıyoruz.

Users: Include ve Exclude

Sağda açılan bölümde What does this policy apply to? değeri Users and groups olarak kalıyor. Include sekmesinde üç seçenek var:

All users seçiyoruz.

Bu seçimle birlikte portal turuncu bir Don’t lock yourself out! uyarısı gösteriyor: politika tüm kullanıcıları etkileyeceği için önce küçük bir kullanıcı grubunda denenmesini öneriyor. Biz bu riski iki şekilde yönetiyoruz: politikayı Report-only modunda oluşturuyoruz ve break-glass hesaplarını hariç tutuyoruz.

Exclude sekmesine geçiyoruz. Burada Guest or external users, Directory roles ve Users and groups seçenekleri bulunuyor.

Users and groups kutusunu işaretliyoruz.

Açılan Select excluded users and groups panelinde arama kutusuna ca yazıp CA-Exclude-BreakGlass grubunu işaretliyor ve Select ile onaylıyoruz. Panelin başlığında excluded ifadesinin geçtiğine dikkat edin; grubu doğru sekmeye eklediğimizi buradan da teyit edebiliyoruz.

Exclude sekmesinde 1 group ve CA-Exclude-BreakGlass görünüyor; sol taraftaki Users özeti de All users included and specific users excluded olarak değişiyor.

Dikkat: Include ve Exclude sekmelerini karıştırmak Conditional Access’te en sık yapılan ve en tehlikeli hatadır. Break-glass grubu yanlışlıkla Include’a eklenirse politika yalnızca acil durum hesaplarına uygulanır. Bu politika bir Block access politikasıysa, tenant’a son erişim kapısı olan hesaplar kilitlenir ve korunması gereken diğer tüm kullanıcılar politika dışında kalır. Kaydetmeden önce Users özetinde “All users included and specific users excluded” ifadesini mutlaka kontrol edin.

Target Resources

Target resources bölümünde Include sekmesinde şu seçenekler bulunuyor:

All resources seçiyoruz.

Portal bu seçimde Don’t lock yourself out! This policy impacts the Azure portal. uyarısı veriyor, çünkü politika yönetim portallarını da kapsıyor. CA001 yalnızca legacy authentication istemcilerini hedeflediği ve portallar modern authentication kullandığı için bu politika yönetim erişimimizi etkilemez; yine de uyarı her politikada ciddiye alınmalı.

Conditions: Client Apps

Conditions bölümünde 0 conditions selected bağlantısına tıkladığımızda politikanın hangi durumlarda devreye gireceğini belirleyen koşullar listeleniyor:

User risk ve Sign-in risk (Entra ID Protection risk seviyeleri, P2 gerektirir), Insider risk (Microsoft Purview Insider Risk Management), Device platforms (Windows, iOS, Android gibi işletim sistemleri), Locations (Named locations ile tanımlı konumlar), Client apps, Filter for devices ve Authentication flows (device code flow gibi akışlar).

CA001 için yalnızca Client apps koşulunu kullanıyoruz; altındaki Not configured bağlantısına tıklıyoruz.

Client apps panelinde Configure değerini Yes yapıyoruz. Panel istemcileri iki başlık altında gruplandırıyor:

Yalnızca Exchange ActiveSync clients ve Other clients kutularını işaretli bırakıp Done ile paneli kapatıyoruz.

Uyarı: Configure Yes yapıldığında dört kutunun tamamı işaretli gelebilir. Browser ve Mobile apps and desktop clients da işaretli kalırsa Block access politikası legacy authentication’ı değil, tüm oturum açmaları engeller. Done’a basmadan önce modern authentication kutularının boş olduğundan emin olun.

Conditions özeti 1 condition selected, Client apps değeri 2 included olarak görünüyor.

Grant: Block Access

Access controls altındaki Grant bölümünde 0 controls selected bağlantısına tıklıyoruz. Grant paneli iki ana seçenek sunuyor: Block access erişimi tamamen engeller, Grant access ise erişime izin verir ama altındaki koşulları şart koşar.

Grant access altındaki kontroller şunlar:

Birden fazla kontrol seçildiğinde For multiple controls altında hepsinin mi Require all the selected controls yoksa birinin mi Require one of the selected controls yeterli olacağı belirlenir.

CA001 için Block access seçip Select ile onaylıyoruz. Legacy authentication istemcileri MFA desteklemediğinden bu istemciler için MFA iste demenin anlamı yok; tek doğru kontrol engellemek.

Enable Policy ve Create

Özette Users, Target resources, Conditions ve Grant değerlerini son kez kontrol ediyoruz. Enable policy bölümünü Report-only olarak kalıyor. Create‘e bastığımızda portal ikinci bir Don’t lock yourself out! uyarısı gösterebiliyor ve oturum açmış yönetici hesabının politikadan etkileneceğini hatırlatıp iki seçenek sunuyor:

Bu politika için ikinci seçeneği tercih ediyoruz. Yönetici hesabımız modern authentication kullandığı için CA001‘den etkilenmiyor. Ayrıca istisnaları yalnızca CA-Exclude-BreakGlass grubu üzerinden, belgelenmiş şekilde yönetmek istiyoruz. Her politikaya tek tek eklenen kullanıcı istisnaları zamanla kimsenin hatırlamadığı açıklara dönüşür.

I understand that my account will be impacted by this policy. Proceed anyway seçeneğini işaretleyip Create ile politikayı oluşturuyoruz.

Politika kaydedildiğinde sağ üstte Successfully created ‘CA001-BlockLegacyAuth‘ bildirimi görünüyor ve portal Conditional Access | Overview sayfasına dönüyor. CA001 artık Policies listesinde Report-only durumunda yer alıyor.

CA002: Tüm Kullanıcılar İçin MFA

CA001‘deki adımları CA002-RequireMFA-AllUsers adıyla tekrarlıyoruz: Users > Include altında All users, Exclude altında CA-Exclude-BreakGlass, Target resources altında All resources. Bu politikada Conditions bölümüne dokunmuyoruz; MFA tüm istemci türleri için istenecek.

Farklı olan tek adım Grant bölümü: Grant access seçip Require multifactor authentication kutusunu işaretliyor ve Select ile onaylıyoruz. Enable policy bölümünü Report-only bırakıyoruz; Create sırasında Don’t lock yourself out uyarısı yine çıkarsa CA001‘de olduğu gibi I understand that my account will be impacted by this policy. Proceed anyway seçeneğiyle devam ediyoruz.

Require multifactor authentication işaretlendiğinde panel iki bilgi notu gösteriyor. İlki, bunun yerine daha yeni olan Require authentication strength kontrolünün denenmesini öneriyor. İkincisi, iki kontrolün aynı politikada birlikte kullanılamayacağını hatırlatıyor; bu yüzden Require authentication strength kutusu gri görünüyor. Require multifactor authentication, kullanıcının kayıtlı herhangi bir MFA yöntemini kabul eder ve yerleşik Multifactor authentication strength ile aynı sonucu verir. Tüm kullanıcılar için bu yeterli; yöntemleri daraltmak istediğimiz yönetici hesapları için CA003‘te authentication strength kullanacağız.

Select ile paneli kapattığımızda Grant özeti 1 control selected olarak görünüyor. Create sırasında çıkan Don’t lock yourself out uyarısında yine I understand that my account will be impacted by this policy. Proceed anyway seçeneğiyle devam ediyoruz.

Politika kaydedildiğinde Successfully created ‘CA002-RequireMFA-AllUsers’ bildirimi görünüyor ve portal Policies sayfasına dönüyor. Bildirim anında liste henüz yenilenmemiş olabilir ve yalnızca CA001 görünebilir; Refresh ile CA002 de listeye gelir.

CA003: Yöneticiler İçin Phishing-resistant MFA

Yönetici hesapları saldırganların birincil hedefi olduğu için bu hesaplardan standart MFA’nın ötesinde, kimlik avına dayanıklı bir doğrulama istiyoruz. Yeni bir politika oluşturup Name alanına CA003-RequirePhishingResistantMFA-Admins yazıyoruz.

Bu politikada kapsam tüm kullanıcılar değil, yönetici rolleri. Users > Include altında Select users and groups seçiyoruz. Seçim yapılana kadar sol tarafta Select users and groups must be configured hatası görünür; alt seçeneklerden en az birinin işaretlenmesi gerekiyor. Directory roles kutusunu işaretliyoruz.

Directory roles altında açılan listeden şu sekiz rolü seçiyoruz: Global Administrator, Privileged Role Administrator, Security Administrator, Conditional Access Administrator, Exchange Administrator, SharePoint Administrator, User Administrator ve Hybrid Identity Administrator. Liste 8 selected olarak görünüyor ve hata kayboluyor. Rol tabanlı hedeflemenin avantajı, bir kullanıcıya bu rollerden biri atandığı anda politikanın otomatik olarak devreye girmesi; ayrıca bir grup yönetmeye gerek kalmıyor.

Not: Directory roles hedeflemesi yalnızca kalıcı (active) rol atamalarını değerlendirir. Privileged Identity Management kullanıyorsanız eligible atamalar, rol etkinleştirilene kadar bu politikanın kapsamına girmez. Microsoft’un yönetici MFA şablonu bu sekiz rolden daha fazlasını içerir; üretim ortamında şablondaki rol listesini temel almak iyi bir başlangıçtır.

Break-glass hesapları Global Administrator rolüne sahip olduğu için bu politikanın kapsamına giriyor. Bu yüzden Exclude sekmesinde Users and groups altında yine CA-Exclude-BreakGlass grubunu ekliyoruz. Users özeti Specific users included and specific users excluded olarak değişiyor.

Target resources bölümünde CA001 ve CA002‘de olduğu gibi All resources seçiyoruz; Conditions bölümüne dokunmuyoruz.

Grant bölümünde Grant access seçip Require authentication strength kutusunu işaretliyoruz. Bu kutu işaretlendiğinde Require multifactor authentication gri hale geliyor; CA002‘de gördüğümüz gibi iki kontrol birlikte kullanılamıyor. Kutunun altındaki açılır listede Microsoft’un yerleşik üç authentication strength tanımı bulunuyor:

Authentication strengths sayfasından kendi tanımlarınızı da oluşturabilirsiniz, ancak çoğu senaryo için yerleşik üç tanım yeterli.

Listeden Phishing-resistant MFA seçiyoruz. Panel, harici (B2B) kullanıcılar için kimlik avına dayanıklı doğrulama isteniyorsa cross-tenant access ayarlarında diğer Entra tenant’larından gelen MFA iddialarının kabul edilmesi gerektiğini hatırlatıyor. Bizim politikamız yalnızca kendi tenant’ımızdaki yönetici rollerini hedeflediği için bu not bizi etkilemiyor. Select ile onaylıyoruz.


Özette Users bölümü Specific users included and specific users excluded, Target resources bölümü All resources, Grant bölümü 1 control selected ve Enable policy bölümü Report-only olarak görünüyor. Create ile politikayı kaydediyoruz.

Politika kaydedildiğinde Successfully created ‘CA003-RequirePhishingResistantMFA-Admins’ bildirimi görünüyor. CA002‘de olduğu gibi liste bildirim anında henüz güncellenmemiş olabilir.

Refresh ile listeyi yenilediğimizde User created policies kartında 3 politika görünüyor. CA001, CA002 ve CA003‘ün üçü de Created by sütununda USER, State sütununda Report-only olarak listeleniyor. Microsoft-managed policies kartı ise 0 olarak kalıyor. Artık politikalarımız hazır; hiçbir kullanıcıyı etkilemeden ne yapacaklarını What If ve sign-in logları ile doğrulayabiliriz.

Uyarı: CA003’ü On konumuna almadan önce politika kapsamındaki tüm yönetici hesaplarının bir FIDO2 anahtarı, passkey ya da Windows Hello for Business gibi kimlik avına dayanıklı bir yöntem kaydettiğinden emin olun. Aksi halde bu hesaplar oturum açamaz. Lab’da Global Administrator yetkili yönetici hesabınız için de bir passkey kaydetmeniz gerekecek.

Adım 5: What If ile Politikaları Test Etme

Politikaları açmadan önce hangi senaryoda hangi politikanın devreye gireceğini What If aracıyla simüle ediyoruz. What If gerçek bir oturum açma gerçekleştirmez; seçtiğimiz kullanıcı, uygulama ve koşullara göre politikaları değerlendirip hangisinin uygulanacağını ve hangisinin neden uygulanmayacağını listeler. Report-only durumundaki politikaları da değerlendirdiği için politikaları açmadan test etmenin en hızlı yolu.

What If Aracını Açma

Conditional Access | Policies sayfasının üst menüsündeki What if düğmesine tıklıyoruz.

What if sayfası üç bölümden oluşuyor:

Select identity type değeri Users olarak kalıyor. User altındaki Edit user bağlantısına tıklıyoruz.

Test Kullanıcısını Seçme

Users panelinde arama kutusuna nihat yazıyor, Bölüm 2’de on-premises AD’den senkronize ettiğimiz Nihat Cubuk (nihat.cubuk@bakicubuk.tech) kullanıcısını işaretleyip Select ile onaylıyoruz. Bu kullanıcı herhangi bir yönetici rolüne sahip olmayan standart bir hibrit kullanıcı, yani CA001 ve CA002‘nin kapsamında, CA003‘ün kapsamı dışında.

Hedef Uygulamayı Seçme

Target resource bölümünde Select target type değeri Cloud apps kalıyor ve Select cloud app bağlantısına tıklıyoruz. Politikalarımızda kullandığımız All resources seçeneği What If aracında bulunmuyor; burada tek tek uygulama seçiliyor. Politikalarımız tüm kaynakları hedeflediği için hangi uygulamayı seçersek seçelim kapsama giriyor.

Arama kutusuna office yazıp Office 365 Exchange Online uygulamasını seçiyoruz. Exchange Online’ın uygulama kimliği 00000002-0000-0ff1-ce00-000000000000 her Microsoft 365 tenant’ında aynıdır. Hem kullanıcının en sık eriştiği uygulama olduğu için hem de legacy authentication protokolleri (Exchange ActiveSync, POP, IMAP, SMTP AUTH) doğrudan Exchange Online’a bağlandığı için bu test için en anlamlı hedef.

İpucu: Arama kutusuna yalnızca exchange ya da teams yazarsanız listede ExchangeRevocationSync ya da Teams NRT DLP Service gibi arka planda çalışan servis uygulamaları çıkabilir. Bunlar kullanıcıların oturum açtığı uygulamalar değildir; test için Office 365 Exchange Online, Office 365 SharePoint Online ya da Office 365 gibi kullanıcıya dönük uygulamaları seçin.

Oturum Açma Koşulları ve Değerlendirme

Sign-in conditions altında Device platform için Windows, Client app için Browser seçiyoruz. Diğer alanları boş bırakıyoruz. Bu senaryo, Nihat Cubuk (nihat.cubuk@bakicubuk.tech) kullanıcısının Windows bir bilgisayarda tarayıcıdan Outlook web’e girmesini simüle ediyor. What if düğmesine basıyoruz.

Evaluation result bölümünde sonuç iki sekmede gösteriliyor. Üstteki Classic policies are not evaluated by this tool. notu, eski klasik politikaların What If tarafından değerlendirilmediğini hatırlatıyor; bizim tenant’ımızda klasik politika olmadığı için bu not bizi etkilemiyor.

Policies that will apply sekmesinde 1 policy found görünüyor: CA002-RequireMFA-AllUsers, Grant controls sütununda Require multifactor authentication ve State sütununda Report-only. Yani politika açık olsaydı Nihat Cubuk (nihat.cubuk@bakicubuk.tech) kullanıcısı tarayıcıdan oturum açarken MFA ile karşılaşacaktı.

Policies that will not apply sekmesinde ise diğer iki politika ve uygulanmama gerekçeleri listeleniyor:

Aynı testi Client app değerini Exchange ActiveSync clients ya da Other clients yaparak tekrarladığımızda CA001‘in Policies that will apply sekmesine geçtiğini görürüz. Böylece legacy authentication engelinin doğru istemcileri yakaladığını da doğrulamış oluruz.

Break-glass Hesabıyla Test

Son olarak aynı testi break-glass hesabıyla tekrarlıyoruz. Formdaki diğer değerleri (Office 365 Exchange Online, Windows, Browser) değiştirmeden Edit user ile Users panelini açıyor, arama kutusuna bg yazıp bg-admin01@pwqv.onmicrosoft.com hesabını seçiyoruz.

Bu hesap Global Administrator rolüne sahip olduğu için normalde CA002 ve CA003‘ün kapsamına girerdi. What if düğmesine bastığımızda Policies that will apply sekmesinde 0 policies found ve No policies görünüyor; yani bg-admin01 ile yapılan bir oturum açmaya hiçbir politikamız uygulanmıyor.

Policies that will not apply sekmesinde üç politika da listeleniyor ve üçünün de gerekçesi Users and groups. What If burada ayrıntıya girmiyor, ancak nihat.cubuk testinden farkı açık: Nihat Cubuk (nihat.cubuk@bakicubuk.tech) kullanıcısına CA002 uygulanıyordu, bg-admin01‘de ise All users kapsamında olmasına rağmen uygulanmıyor. Bunun tek nedeni, üç politikada da Exclude sekmesine eklediğimiz CA-Exclude-BreakGlass grubu. Has filter? sütunundaki No değeri, politikalarda cihaz filtresi kullanılmadığını gösteriyor.

Bu sonuç, bir politika hatası tüm yöneticileri dışarıda bıraksa bile break-glass hesaplarıyla tenant’a girebileceğimizi doğruluyor. İleride yeni bir politika eklediğinizde ya da mevcut bir politikayı değiştirdiğinizde bu testi tekrarlamayı alışkanlık haline getirin.

Report-only modundaki politikaların gerçek oturum açmalardaki etkisini de Entra ID > Sign-in logs altında bir oturum kaydına tıklayıp Report-only sekmesinden görebiliyoruz. Burada politika Report-only: Success ya da Report-only: Failure olarak işaretleniyor; yani politika açık olsaydı ne olacağını hiçbir kullanıcıyı etkilemeden görmüş oluyoruz.

Adım 6: Politikaları Etkinleştirme

What If sonuçları ve report-only kayıtları beklediğimiz gibi olduğunda politikaları On konumuna alıyoruz. Önce CA001 ve CA002‘yi açıyoruz. CA003‘ü ise politika kapsamındaki yönetici hesapları passkey, FIDO2 anahtarı ya da Windows Hello for Business gibi kimlik avına dayanıklı bir yöntem kaydettikten sonra açacağız; lab’da bu aşamada Report-only olarak bırakıyoruz.

Policies listesinde CA001-BlockLegacyAuth politikasına tıkladığımızda önce Policy details paneli açılıyor.

Bu panel politikanın özetini gösteriyor: State bölümü Report-only (policy is evaluated but not enforced), Users, agent or workload identites bölümü All users, Excluded identities bölümü 0 users, 1 group, 0 roles, Included resources bölümü All resources, Client apps bölümü Exchange active sync clients, Other clients ve Requirements for access bölümü Block access.

Panelin üst menüsünde View or Edit, Duplicate, Download JSON ve Delete seçenekleri bulunuyor. Download JSON, politikayı yedeklemek ya da Upload policy file ile başka bir tenant’a taşımak için kullanışlı. Policy impact sekmesi ise Report-only süresince politikanın gerçek oturum açmalarda nasıl sonuç vereceğini özetliyor.

Düzenleme için View or Edit‘e tıklıyoruz.

Politika düzenleme ekranında Enable policy değerini On yapıyoruz. Kaydetmeden önce portal, politika oluştururken gördüğümüz Don’t lock yourself out! uyarısını tekrar gösteriyor. Yine I understand that my account will be impacted by this policy. Proceed anyway seçeneğini işaretleyip Save ile kaydediyoruz.

Aynı adımları CA002-RequireMFA-AllUsers için de tekrarlıyoruz.

Not: CA002 açıldığı andan itibaren break-glass hesapları dışındaki tüm kullanıcılar, oturum açarken MFA ile karşılaşır. MFA yöntemi kayıtlı olmayan kullanıcılardan ilk oturum açmada kayıt istenir. Üretim ortamında bu değişikliği kullanıcılara önceden duyurmak, yardım masasına gelecek çağrıları azaltır.

Refresh ile listeyi yenilediğimizde CA001-BlockLegacyAuth ve CA002-RequireMFA-AllUsers polikitaları On, CA003-RequirePhishingResistantMFA-Admins polikitası ise Report-only olarak görünüyor. Artık legacy authentication engelleniyor ve break-glass hesapları dışındaki tüm kullanıcılar için MFA zorunlu. Security Defaults’un sağladığı iki temel korumayı Conditional Access ile yeniden kurmuş olduk.

Tenant’ınızda Microsoft-managed policies de varsa, kendi politikalarınız aynı korumayı sağladığında bunları kapatmak mümkün. Ancak bu politikalar Microsoft’un yeni tehditlere göre güncellediği bir koruma katmanı olduğundan, break-glass istisnasını ekledikten sonra açık bırakmak da makul bir tercih.

Adım 7: Senkronize Kullanıcıyla İlk Oturum Açma

Politikalar açıldıktan sonra senkronize kullanıcılarımızdan biriyle, örneğin Nihat Cubuk ile, bir tarayıcıdan myapplications.microsoft.com adresine oturum açıyoruz. Kullanıcı adı olarak on-premises UPN’i nihat.cubuk@bakicubuk.tech, parola olarak da on-premises Active Directory parolasını giriyoruz. Password Hash Synchronization sayesinde parola kabul ediliyor. Kullanıcının henüz kayıtlı bir MFA yöntemi olmadığı için CA002 politikası devreye giriyor ve Microsoft kullanıcıyı Let’s keep your account secure ekranına yönlendiriyor. Ekrandaki We’ll help you set up another way to verify it’s you. ifadesi, parolaya ek olarak ikinci bir doğrulama yöntemi kaydedileceğini anlatıyor. Eski arayüzde aynı adım More information required başlığıyla görünür.

Bu ekran iki şeyi birlikte doğruluyor. Birincisi, on-premises AD parolası Entra ID’de geçerli; yani Bölüm 2’de kurduğumuz Password Hash Synchronization çalışıyor. İkincisi, CA002 politikası On konumunda ve kullanıcıya MFA zorunluluğunu uyguluyor. Next ile Microsoft Authenticator kurulumuna geçiyoruz; kullanıcı telefonuna uygulamayı yükleyip ekrandaki QR kodu okutarak kaydı tamamlıyor.

Bu oturum açma henüz domain’e bağlı olmayan bir makineden yapıldığı için kullanıcı parolasını elle giriyor. Bölüm 4’te aynı kullanıcıyla W11CL01 üzerinden oturum açtığımızda parola sorulmadığını, yalnızca MFA istendiğini göreceğiz.

Özet ve Sonraki Bölüm

Bu bölümde Security Defaults’tan Conditional Access’e geçtik. İki break-glass hesabı oluşturup bunları tek bir istisna grubunda topladık, Security Defaults’u kapatıp Policies sayfasını ve Microsoft-managed policies’in nasıl ele alınacağını inceledik, ardından legacy authentication engelleme, tüm kullanıcılar için MFA ve yöneticiler için phishing-resistant MFA politikalarımızı report-only modunda oluşturup What If ile test ettik. Ardından CA001 ile CA002‘yi etkinleştirdik, CA003‘ü ise yönetici hesaplarına kimlik avına dayanıklı yöntem kaydı yapılana kadar Report-only bıraktık. Güncel Entra Connect sürümünün uygulama kimliğiyle çalışması sayesinde senkronizasyon için ayrı bir istisna tanımlamamıza gerek kalmadı.

Bölüm 4’te Seamless SSO için grup ilkesini yapılandıracak, W11CL01 üzerinden uçtan uca testi yapacak ve AZUREADSSOACC hesabını AES ile sıkılaştıracağız.

Exit mobile version