{"id":124,"title":"Microsoft Entra ID'de MFA Durumunu Kontrol Etme","content":"\u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA), g\u00fcn\u00fcm\u00fcz\u00fcn siber g\u00fcvenlik ortam\u0131nda kritik \u00f6neme sahip bir g\u00fcvenlik katman\u0131d\u0131r. Microsoft Entra ID (eski ad\u0131yla Azure AD) kullanan organizasyonlarda, hangi kullan\u0131c\u0131lar\u0131n MFA korumas\u0131na sahip oldu\u011funu ve kimlerin bu korumadan yoksun oldu\u011funu bilmek, g\u00fcvenlik y\u00f6neticileri i\u00e7in son derece \u00f6nemlidir. Bu kapsaml\u0131 rehber, Microsoft Entra ID'de MFA durumunu \u00e7e\u015fitli y\u00f6ntemlerle nas\u0131l kontrol edebilece\u011finizi ve raporlayabilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klamaktad\u0131r. <h2>\u0130\u00e7indekiler<\/h2> <ol> <li>Giri\u015f ve MFA'n\u0131n \u00d6nemi<\/li> <li>Microsoft Entra ID'de MFA Durumu Kontrol Y\u00f6ntemleri <ul> <li>Portal \u00dczerinden Kontrol<\/li> <li>PowerShell ile MFA Durumu Kontrol\u00fc<\/li> <li>Microsoft Graph API ile Sorgulama<\/li> <\/ul> <\/li> <li>MFA Raporlar\u0131 Olu\u015fturma <ul> <li>Temel MFA Durumu Raporu<\/li> <li>Detayl\u0131 MFA Raporu<\/li> <li>Ko\u015fullu Eri\u015fim Tabanl\u0131 MFA Raporu<\/li> <\/ul> <\/li> <li>MFA Durumunu De\u011ferlendirme ve Analiz<\/li> <li>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/li> <li>\u0130yi Uygulama \u00d6rnekleri ve \u00d6neriler<\/li> <li>Sonu\u00e7<\/li> <\/ol> <h2>Giri\u015f ve MFA'n\u0131n \u00d6nemi<\/h2> \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA), kullan\u0131c\u0131n\u0131n kimli\u011fini do\u011frulamak i\u00e7in en az iki farkl\u0131 do\u011frulama y\u00f6ntemi gerektiren bir g\u00fcvenlik s\u00fcreci olup, genellikle \"bildi\u011finiz bir \u015fey\" (parola), \"sahip oldu\u011funuz bir \u015fey\" (mobil cihaz veya g\u00fcvenlik anahtar\u0131) ve \"oldu\u011funuz bir \u015fey\" (biyometrik) kategorilerinden gelen fakt\u00f6rleri birle\u015ftirir. <h3>MFA Neden Bu Kadar \u00d6nemlidir?<\/h3> Microsoft'un ara\u015ft\u0131rmalar\u0131na g\u00f6re, MFA kullan\u0131m\u0131 hesap ele ge\u00e7irme sald\u0131r\u0131lar\u0131n\u0131 <strong>%99.9 oran\u0131nda<\/strong> azaltabilmektedir. Bu, siber sald\u0131r\u0131lara kar\u015f\u0131 en etkili savunma mekanizmalar\u0131ndan biridir. \u00d6zellikle: <ul> <li>Kimlik bilgisi h\u0131rs\u0131zl\u0131\u011f\u0131 sald\u0131r\u0131lar\u0131na kar\u015f\u0131 koruma sa\u011flar<\/li> <li>Veri ihlali riskini azalt\u0131r<\/li> <li>Fidye yaz\u0131l\u0131m\u0131 ve di\u011fer zararl\u0131 yaz\u0131l\u0131m sald\u0131r\u0131lar\u0131n\u0131 engellemeye yard\u0131mc\u0131 olur<\/li> <li>D\u00fczenleyici gereksinimlere uyumu destekler (GDPR, HIPAA, vb.)<\/li> <\/ul> <h3>Microsoft Entra ID'de MFA Yap\u0131land\u0131rma T\u00fcrleri<\/h3> Microsoft Entra ID'de MFA'y\u0131 \u00fc\u00e7 farkl\u0131 \u015fekilde yap\u0131land\u0131rabilirsiniz: <ol> <li><strong>Kullan\u0131c\u0131 Ba\u015f\u0131na MFA<\/strong>: Her kullan\u0131c\u0131ya do\u011frudan uygulanan, eski y\u00f6ntem<\/li> <li><strong>Ko\u015fullu Eri\u015fim Politikas\u0131 Tabanl\u0131 MFA<\/strong>: Belirli ko\u015fullara g\u00f6re MFA gerektirmenize olanak tan\u0131yan modern yakla\u015f\u0131m<\/li> <li><strong>G\u00fcvenlik Varsay\u0131lanlar\u0131<\/strong>: T\u00fcm kullan\u0131c\u0131lar i\u00e7in MFA gerektiren otomatik bir politika<\/li> <\/ol> Bu rehberde, her bir yap\u0131land\u0131rma t\u00fcr\u00fcn\u00fcn MFA durumunu nas\u0131l kontrol edece\u011fimizi inceleyece\u011fiz. <h2>Microsoft Entra ID'de MFA Durumu Kontrol Y\u00f6ntemleri<\/h2> <h3>Portal \u00dczerinden Kontrol<\/h3> <h4>1. Kullan\u0131c\u0131 Ba\u015f\u0131na MFA Durumunu Kontrol Etme<\/h4> Bu y\u00f6ntem, kullan\u0131c\u0131 ba\u015f\u0131na yap\u0131land\u0131r\u0131lan eski MFA y\u00f6nteminin durumunu kontrol etmek i\u00e7in kullan\u0131l\u0131r: <ol> <li><a href=\"https:\/\/entra.microsoft.com\/\">Microsoft Entra Y\u00f6netim Merkezi<\/a>'ne gidin ve y\u00f6netici olarak oturum a\u00e7\u0131n<\/li> <li>Sol men\u00fcden <strong>Kimlik<\/strong> &gt; <strong>Kullan\u0131c\u0131lar<\/strong> &gt; <strong>T\u00fcm kullan\u0131c\u0131lar<\/strong> se\u00e7ene\u011fine t\u0131klay\u0131n<\/li> <li>\u00dcst men\u00fcden <strong>\u00c7ok fakt\u00f6rl\u00fc kimlik do\u011frulama<\/strong>'ya t\u0131klay\u0131n (Bu se\u00e7enek g\u00f6r\u00fcnm\u00fcyorsa, sa\u011f \u00fcst k\u00f6\u015fedeki \"Eski portal g\u00f6r\u00fcn\u00fcm\u00fc\" se\u00e7ene\u011fine t\u0131klay\u0131n)<\/li> <li>A\u00e7\u0131lan sayfada t\u00fcm kullan\u0131c\u0131lar\u0131n MFA durumunu g\u00f6receksiniz: <ul> <li><strong>Devre D\u0131\u015f\u0131<\/strong>: MFA yap\u0131land\u0131r\u0131lmam\u0131\u015f<\/li> <li><strong>Etkin<\/strong>: MFA yap\u0131land\u0131r\u0131lm\u0131\u015f ama hen\u00fcz kaydedilmemi\u015f<\/li> <li><strong>Zorunlu<\/strong>: MFA tam olarak yap\u0131land\u0131r\u0131lm\u0131\u015f ve kullan\u0131mda<\/li> <\/ul> <\/li> <\/ol> <h4>2. Ko\u015fullu Eri\u015fim Tabanl\u0131 MFA'y\u0131 Kontrol Etme<\/h4> Ko\u015fullu eri\u015fim politikalar\u0131 arac\u0131l\u0131\u011f\u0131yla uygulanan MFA durumunu kontrol etmek i\u00e7in: <ol> <li><a href=\"https:\/\/entra.microsoft.com\/\">Microsoft Entra Y\u00f6netim Merkezi<\/a>'ne gidin<\/li> <li>Sol men\u00fcden <strong>Koruma<\/strong> &gt; <strong>Ko\u015fullu Eri\u015fim<\/strong> &gt; <strong>Politikalar<\/strong>'a t\u0131klay\u0131n<\/li> <li>Mevcut politikalar\u0131n\u0131z\u0131 g\u00f6zden ge\u00e7irin ve MFA gerektiren politikalar\u0131 inceleyin<\/li> <li>Her politika i\u00e7in <strong>Kullan\u0131c\u0131lar ve gruplar<\/strong> b\u00f6l\u00fcm\u00fcnde kimler i\u00e7in MFA yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131n\u0131 g\u00f6rebilirsiniz<\/li> <\/ol> <h4>3. G\u00fcvenlik Varsay\u0131lanlar\u0131n\u0131 Kontrol Etme<\/h4> G\u00fcvenlik varsay\u0131lanlar\u0131n\u0131n durumunu kontrol etmek i\u00e7in: <ol> <li><a href=\"https:\/\/entra.microsoft.com\/\">Microsoft Entra Y\u00f6netim Merkezi<\/a>'ne gidin<\/li> <li>Sol men\u00fcden <strong>Koruma<\/strong> &gt; <strong>G\u00fcvenlik varsay\u0131lanlar\u0131<\/strong>'na t\u0131klay\u0131n<\/li> <li>G\u00fcvenlik varsay\u0131lanlar\u0131n\u0131n <strong>Etkin<\/strong>, <strong>Devre d\u0131\u015f\u0131<\/strong> veya <strong>Yaln\u0131zca raporlama modunda<\/strong> olup olmad\u0131\u011f\u0131n\u0131 kontrol edin<\/li> <\/ol> <h3>PowerShell ile MFA Durumu Kontrol\u00fc<\/h3> PowerShell kullanarak MFA durumunu kontrol etmek, \u00f6zellikle b\u00fcy\u00fck kurulu\u015flarda daha verimli ve otomatize edilebilir bir y\u00f6ntemdir. <h4>1. Temel MFA Durumu Kontrol\u00fc<\/h4> A\u015fa\u011f\u0131daki PowerShell beti\u011fi, t\u00fcm kullan\u0131c\u0131lar\u0131n temel MFA durumunu kontrol eder: <pre><code ><\/code><\/pre> <pre  data-enlighter-language=\"python\"># MSOnline mod\u00fcl\u00fcn\u00fc y\u00fckleyin (e\u011fer y\u00fckl\u00fc de\u011filse) if (-not (Get-Module -ListAvailable -Name MSOnline)) { Install-Module -Name MSOnline -Force -AllowClobber } # Microsoft Entra ID'ye ba\u011flan\u0131n Connect-MsolService # T\u00fcm kullan\u0131c\u0131lar\u0131n MFA durumunu al\u0131n $users = Get-MsolUser -All | Select-Object DisplayName, UserPrincipalName, @{ Name = \"MFA Durumu\"; Expression = { if ($_.StrongAuthenticationRequirements.State -ne $null) { $_.StrongAuthenticationRequirements.State } else { \"Devre D\u0131\u015f\u0131\" } } } # Sonu\u00e7lar\u0131 g\u00f6r\u00fcnt\u00fcleyin $users | Format-Table -AutoSize # CSV olarak d\u0131\u015fa aktar\u0131n $users | Export-Csv -Path \"MFA_Durumu_$(Get-Date -Format 'yyyyMMdd').csv\" -NoTypeInformation -Encoding UTF8<\/pre> <pre><code ><\/code><\/pre> &nbsp; <pre><code ><\/code><\/pre> <h4>2. Detayl\u0131 MFA Durumu ve Kay\u0131t Bilgileri<\/h4> Daha detayl\u0131 bir MFA durumu raporu i\u00e7in, kullan\u0131c\u0131lar\u0131n kay\u0131tl\u0131 kimlik do\u011frulama y\u00f6ntemlerini de kontrol edebilirsiniz: <pre><code ><\/code><\/pre> <pre  data-enlighter-language=\"python\"># Microsoft.Graph.Identity.SignIns mod\u00fcl\u00fcn\u00fc y\u00fckleyin if (-not (Get-Module -ListAvailable -Name Microsoft.Graph.Identity.SignIns)) { Install-Module Microsoft.Graph.Identity.SignIns -Force } # Microsoft Graph'e ba\u011flan\u0131n Connect-MgGraph -Scopes \"User.Read.All\", \"UserAuthenticationMethod.Read.All\" # T\u00fcm kullan\u0131c\u0131lar\u0131 al\u0131n $users = Get-MgUser -All -Property DisplayName, UserPrincipalName, Id $userAuthMethods = @() foreach ($user in $users) { # Kullan\u0131c\u0131n\u0131n kimlik do\u011frulama y\u00f6ntemlerini al $authMethods = Get-MgUserAuthenticationMethod -UserId $user.Id # MFA y\u00f6ntemlerini say $authenticatorApp = ($authMethods | Where-Object { $_.AdditionalProperties -eq \"#microsoft.graph.microsoftAuthenticatorAuthenticationMethod\" }).Count $phoneAuth = ($authMethods | Where-Object { $_.AdditionalProperties -eq \"#microsoft.graph.phoneAuthenticationMethod\" }).Count $fido2Key = ($authMethods | Where-Object { $_.AdditionalProperties -eq \"#microsoft.graph.fido2AuthenticationMethod\" }).Count $softwareTotp = ($authMethods | Where-Object { $_.AdditionalProperties -eq \"#microsoft.graph.softwareOathAuthenticationMethod\" }).Count # MFA durumunu belirle $mfaStatus = if (($authenticatorApp + $phoneAuth + $fido2Key + $softwareTotp) -gt 0) { \"Etkin\" } else { \"Devre D\u0131\u015f\u0131\" } # Sonu\u00e7 nesnesini olu\u015ftur $userAuthMethods += @{ DisplayName = $user.DisplayName UserPrincipalName = $user.UserPrincipalName MFADurumu = $mfaStatus MicrosoftAuthenticator = $authenticatorApp -gt 0 TelefonDo\u011frulama = $phoneAuth -gt 0 FIDO2G\u00fcvenlikAnahtar\u0131 = $fido2Key -gt 0 Yaz\u0131l\u0131mTOTP = $softwareTotp -gt 0 Kay\u0131tl\u0131Y\u00f6ntemSay\u0131s\u0131 = ($authenticatorApp + $phoneAuth + $fido2Key + $softwareTotp) } } # Sonu\u00e7lar\u0131 g\u00f6r\u00fcnt\u00fcle $userAuthMethods | Format-Table -AutoSize # CSV olarak d\u0131\u015fa aktar $userAuthMethods | Export-Csv -Path \"Detayl\u0131_MFA_Raporu_$(Get-Date -Format 'yyyyMMdd').csv\" -NoTypeInformation -Encoding UTF8<\/pre> <pre><code ><\/code><\/pre> &nbsp; <pre><code ><\/code><\/pre> <h3>Microsoft Graph API ile Sorgulama<\/h3> Microsoft Graph API, programatik olarak MFA durumunu sorgulamak i\u00e7in kullan\u0131labilir. Bu, \u00f6zellikle \u00f6zel dashboard veya raporlama ara\u00e7lar\u0131 olu\u015fturmak istiyorsan\u0131z faydal\u0131d\u0131r. Temel bir Graph API sorgusu \u00f6rne\u011fi: <pre><code >GET https:\/\/graph.microsoft.com\/v1.0\/users?$select=displayName,userPrincipalName,id <\/code><\/pre> Ard\u0131ndan her kullan\u0131c\u0131 i\u00e7in kimlik do\u011frulama y\u00f6ntemlerini sorgulayabilirsiniz: <pre><code >GET https:\/\/graph.microsoft.com\/v1.0\/users\/{userId}\/authentication\/methods <\/code><\/pre> <h2>MFA Raporlar\u0131 Olu\u015fturma<\/h2> <h3>Temel MFA Durumu Raporu<\/h3> A\u015fa\u011f\u0131daki PowerShell beti\u011fi, t\u00fcm kullan\u0131c\u0131lar\u0131n MFA durumunu i\u00e7eren temel bir rapor olu\u015fturur: <pre><code ><\/code><\/pre> <pre  data-enlighter-language=\"python\"># Gerekli mod\u00fclleri i\u00e7e aktar Import-Module MSOnline # Ba\u011flan Connect-MsolService # MFA durumunu al $report = @() Get-MsolUser -All | ForEach-Object { $user = $_ $mfaMethods = $user.StrongAuthenticationMethods $mfaEnabled = $user.StrongAuthenticationRequirements.Count -gt 0 $defaultMethod = ($mfaMethods | Where-Object { $_.IsDefault -eq $true }).MethodType $report += @{ Kullan\u0131c\u0131 = $user.DisplayName UPN = $user.UserPrincipalName MFADurumu = if ($mfaEnabled) { \"Etkin\" } else { \"Devre D\u0131\u015f\u0131\" } Varsay\u0131lanY\u00f6ntem = if ($defaultMethod) { $defaultMethod } else { \"Yok\" } Kay\u0131tl\u0131Y\u00f6ntemSay\u0131s\u0131 = $mfaMethods.Count SonGiri\u015fTarihi = $user.LastPasswordChangeTimestamp } } # Sonu\u00e7lar\u0131 g\u00f6r\u00fcnt\u00fcle ve d\u0131\u015fa aktar $report | Format-Table -AutoSize $report | Export-Csv -Path \"MFA_Durum_Raporu.csv\" -NoTypeInformation -Encoding UTF8<\/pre> <pre><code ><\/code><\/pre> &nbsp; <pre><code ><\/code><\/pre> <h3>Detayl\u0131 MFA Raporu<\/h3> Daha kapsaml\u0131 bir MFA raporu i\u00e7in, a\u015fa\u011f\u0131daki daha geli\u015fmi\u015f beti\u011fi kullanabilirsiniz: <pre><code ><\/code><\/pre> <pre  data-enlighter-language=\"python\"># Microsoft Graph mod\u00fcllerini i\u00e7e aktar Import-Module Microsoft.Graph.Authentication Import-Module Microsoft.Graph.Identity.SignIns Import-Module Microsoft.Graph.Users # Microsoft Graph'e ba\u011flan Connect-MgGraph -Scopes \"User.Read.All\", \"UserAuthenticationMethod.Read.All\", \"Directory.Read.All\" # Kullan\u0131c\u0131lar\u0131 al $users = Get-MgUser -All -Property DisplayName, UserPrincipalName, Id, AccountEnabled, AssignedLicenses $detailedReport = @() foreach ($user in $users) { # Yaln\u0131zca etkin hesaplar i\u00e7in if ($user.AccountEnabled) { # Kullan\u0131c\u0131n\u0131n kimlik do\u011frulama y\u00f6ntemlerini al $authMethods = Get-MgUserAuthenticationMethod -UserId $user.Id # Kay\u0131tl\u0131 y\u00f6ntemleri belirle $methodTypes = @() $mfaCapable = $false foreach ($method in $authMethods) { $oDataType = $method.AdditionalProperties switch ($oDataType) { \"#microsoft.graph.microsoftAuthenticatorAuthenticationMethod\" { $methodTypes += \"Microsoft Authenticator\" $mfaCapable = $true } \"#microsoft.graph.phoneAuthenticationMethod\" { $methodTypes += \"Telefon\" $mfaCapable = $true } \"#microsoft.graph.passwordAuthenticationMethod\" { $methodTypes += \"Parola\" } \"#microsoft.graph.fido2AuthenticationMethod\" { $methodTypes += \"FIDO2 G\u00fcvenlik Anahtar\u0131\" $mfaCapable = $true } \"#microsoft.graph.softwareOathAuthenticationMethod\" { $methodTypes += \"Yaz\u0131l\u0131m TOTP\" $mfaCapable = $true } \"#microsoft.graph.windowsHelloForBusinessAuthenticationMethod\" { $methodTypes += \"Windows Hello for Business\" $mfaCapable = $true } \"#microsoft.graph.emailAuthenticationMethod\" { $methodTypes += \"E-posta\" $mfaCapable = $true } } } # Y\u00f6ntemler i\u00e7in konsolide edilmi\u015f bir dize olu\u015ftur $methodsString = if ($methodTypes.Count -gt 0) { $methodTypes -join \", \" } else { \"Yok\" } # Kullan\u0131c\u0131 t\u00fcr\u00fcn\u00fc belirle $isMember = $null -ne ($user.AssignedLicenses) -and $user.AssignedLicenses.Count -gt 0 # Rapor nesnesini olu\u015ftur $detailedReport += @{ DisplayName = $user.DisplayName UserPrincipalName = $user.UserPrincipalName MFADurumu = if ($mfaCapable) { \"Etkin\" } else { \"Devre D\u0131\u015f\u0131\" } Kay\u0131tl\u0131Y\u00f6ntemler = $methodsString Y\u00f6ntemSay\u0131s\u0131 = $methodTypes.Count Kullan\u0131c\u0131T\u00fcr\u00fc = if ($isMember) { \"Lisansl\u0131 Kullan\u0131c\u0131\" } else { \"Misafir\/Lisanss\u0131z\" } } } } # Sonu\u00e7lar\u0131 g\u00f6r\u00fcnt\u00fcle $detailedReport | Format-Table -AutoSize # CSV olarak d\u0131\u015fa aktar $detailedReport | Export-Csv -Path \"Detayl\u0131_MFA_Raporu_$(Get-Date -Format 'yyyyMMdd').csv\" -NoTypeInformation -Encoding UTF8<\/pre> <pre><code ><\/code><\/pre> &nbsp; <pre><code ><\/code><\/pre> <h3>Ko\u015fullu Eri\u015fim Tabanl\u0131 MFA Raporu<\/h3> Ko\u015fullu eri\u015fim tabanl\u0131 MFA konfig\u00fcrasyonlar\u0131 i\u00e7in a\u015fa\u011f\u0131daki beti\u011fi kullanabilirsiniz: <pre><code ><\/code><\/pre> <pre  data-enlighter-language=\"python\"># Microsoft Graph mod\u00fcllerini i\u00e7e aktar Import-Module Microsoft.Graph.Authentication Import-Module Microsoft.Graph.Identity.SignIns # Microsoft Graph'e ba\u011flan Connect-MgGraph -Scopes \"Policy.Read.All\", \"Directory.Read.All\" # Ko\u015fullu eri\u015fim politikalar\u0131n\u0131 al $policies = Get-MgIdentityConditionalAccessPolicy # MFA gerektiren politikalar\u0131 filtrele $mfaPolicies = $policies | Where-Object { $_.State -eq \"enabled\" -and ($_.GrantControls.BuiltInControls -contains \"mfa\" -or $_.GrantControls.TermsOfUse -ne $null -or $_.GrantControls.AuthenticationStrength.Id -ne $null) } $caReport = @() foreach ($policy in $mfaPolicies) { # Politika kapsam\u0131ndaki kullan\u0131c\u0131lar\u0131 belirle $includeUsers = if ($policy.Conditions.Users.IncludeUsers -contains \"All\") { \"T\u00fcm kullan\u0131c\u0131lar\" } elseif ($policy.Conditions.Users.IncludeUsers.Count -gt 0) { \"Se\u00e7ili kullan\u0131c\u0131lar: $($policy.Conditions.Users.IncludeUsers.Count)\" } elseif ($policy.Conditions.Users.IncludeGroups.Count -gt 0) { \"Se\u00e7ili gruplar: $($policy.Conditions.Users.IncludeGroups.Count)\" } elseif ($policy.Conditions.Users.IncludeRoles.Count -gt 0) { \"Se\u00e7ili roller: $($policy.Conditions.Users.IncludeRoles.Count)\" } else { \"Belirtilmemi\u015f\" } # Hari\u00e7 tutulan kullan\u0131c\u0131lar\u0131 belirle $excludeUsers = if ($policy.Conditions.Users.ExcludeUsers.Count -gt 0 -or $policy.Conditions.Users.ExcludeGroups.Count -gt 0 -or $policy.Conditions.Users.ExcludeRoles.Count -gt 0) { \"Evet\" } else { \"Hay\u0131r\" } # Do\u011frulama t\u00fcr\u00fcn\u00fc belirle $authType = if ($policy.GrantControls.BuiltInControls -contains \"mfa\") { \"Standart MFA\" } elseif ($policy.GrantControls.AuthenticationStrength.Id -ne $null) { \"Kimlik Do\u011frulama G\u00fcc\u00fc\" } else { \"Di\u011fer\" } # Rapor nesnesini olu\u015ftur $caReport += @{ PolitikaAd\u0131 = $policy.DisplayName PolitikaDurumu = $policy.State DahilKullan\u0131c\u0131lar = $includeUsers Hari\u00e7TutulanKullan\u0131c\u0131lar = $excludeUsers MFAT\u00fcr\u00fc = $authType UygulamalarKapsam\u0131 = if ($policy.Conditions.Applications.IncludeApplications -contains \"All\") { \"T\u00fcm uygulamalar\" } else { \"Se\u00e7ili uygulamalar\" } Olu\u015fturmaTarihi = $policy.CreatedDateTime SonG\u00fcncellemeTarihi = $policy.ModifiedDateTime } } # Sonu\u00e7lar\u0131 g\u00f6r\u00fcnt\u00fcle $caReport | Format-Table -AutoSize # CSV olarak d\u0131\u015fa aktar $caReport | Export-Csv -Path \"Ko\u015fullu_Eri\u015fim_MFA_Raporu_$(Get-Date -Format 'yyyyMMdd').csv\" -NoTypeInformation -Encoding UTF8<\/pre> <pre><code ><\/code><\/pre> &nbsp; <pre><code ><\/code><\/pre> <h2>MFA Durumunu De\u011ferlendirme ve Analiz<\/h2> MFA raporlar\u0131n\u0131z\u0131 olu\u015fturduktan sonra, organizasyonunuzun g\u00fcvenlik durumunu de\u011ferlendirmek i\u00e7in \u015fu analizleri yapabilirsiniz: <h3>1. MFA Benimseme Oran\u0131<\/h3> Toplam kullan\u0131c\u0131 say\u0131n\u0131z\u0131n y\u00fczde ka\u00e7\u0131n\u0131n MFA kullanmaya ba\u015flad\u0131\u011f\u0131n\u0131 hesaplay\u0131n: <pre><code ><\/code><\/pre> <pre  data-enlighter-language=\"python\">$totalUsers = $detailedReport.Count $mfaEnabledUsers = ($detailedReport | Where-Object { $_.MFADurumu -eq \"Etkin\" }).Count $mfaAdoptionRate = ::Round(($mfaEnabledUsers \/ $totalUsers) * 100, 2) Write-Host \"MFA Benimseme Oran\u0131: $mfaAdoptionRate%\" Write-Host \"Toplam Kullan\u0131c\u0131: $totalUsers\" Write-Host \"MFA Etkinle\u015ftirilmi\u015f Kullan\u0131c\u0131: $mfaEnabledUsers\" Write-Host \"MFA Etkinle\u015ftirilmemi\u015f Kullan\u0131c\u0131: $($totalUsers - $mfaEnabledUsers)\"<\/pre> <pre><code ><\/code><\/pre> &nbsp; <pre><code ><\/code><\/pre> <h3>2. MFA Y\u00f6ntem Da\u011f\u0131l\u0131m\u0131<\/h3> Kullan\u0131c\u0131lar\u0131n hangi MFA y\u00f6ntemlerini tercih etti\u011fini analiz edin: <pre><code ><\/code><\/pre> <pre  data-enlighter-language=\"python\">$authenticatorUsers = ($detailedReport | Where-Object { $_.Kay\u0131tl\u0131Y\u00f6ntemler -like \"*Microsoft Authenticator*\" }).Count $phoneUsers = ($detailedReport | Where-Object { $_.Kay\u0131tl\u0131Y\u00f6ntemler -like \"*Telefon*\" }).Count $fido2Users = ($detailedReport | Where-Object { $_.Kay\u0131tl\u0131Y\u00f6ntemler -like \"*FIDO2*\" }).Count $windowsHelloUsers = ($detailedReport | Where-Object { $_.Kay\u0131tl\u0131Y\u00f6ntemler -like \"*Windows Hello*\" }).Count Write-Host \"Microsoft Authenticator Kullan\u0131c\u0131lar\u0131: $authenticatorUsers\" Write-Host \"Telefon Do\u011frulama Kullan\u0131c\u0131lar\u0131: $phoneUsers\" Write-Host \"FIDO2 G\u00fcvenlik Anahtar\u0131 Kullan\u0131c\u0131lar\u0131: $fido2Users\" Write-Host \"Windows Hello for Business Kullan\u0131c\u0131lar\u0131: $windowsHelloUsers\"<\/pre> <pre><code ><\/code><\/pre> &nbsp; <pre><code ><\/code><\/pre> <h3>3. Departman Bazl\u0131 MFA Uyum Analizi<\/h3> Departmanlar (veya i\u015f birimleri) aras\u0131nda MFA uyum oranlar\u0131n\u0131 kar\u015f\u0131la\u015ft\u0131r\u0131n: <pre><code ><\/code><\/pre> <pre  data-enlighter-language=\"python\"># Departman bilgisini i\u00e7eren kullan\u0131c\u0131 listesi $departmentUsers = Get-MgUser -All -Property DisplayName, UserPrincipalName, Department, Id # Departman bazl\u0131 analiz $departmentReport = @() $departments = $departmentUsers | Select-Object -ExpandProperty Department -Unique | Where-Object { $_ -ne $null -and $_ -ne \"\" } foreach ($dept in $departments) { $deptUsers = $departmentUsers | Where-Object { $_.Department -eq $dept } $deptUserCount = $deptUsers.Count $deptMfaUsers = 0 foreach ($user in $deptUsers) { $mfaStatus = $detailedReport | Where-Object { $_.UserPrincipalName -eq $user.UserPrincipalName } | Select-Object -ExpandProperty MFADurumu if ($mfaStatus -eq \"Etkin\") { $deptMfaUsers++ } } $deptMfaRate = if ($deptUserCount -gt 0) { ::Round(($deptMfaUsers \/ $deptUserCount) * 100, 2) } else { 0 } $departmentReport += @{ Departman = $dept ToplamKullan\u0131c\u0131 = $deptUserCount MFAEtkinKullan\u0131c\u0131 = $deptMfaUsers MFAUyumOran\u0131 = \"$deptMfaRate%\" } } # Sonu\u00e7lar\u0131 g\u00f6r\u00fcnt\u00fcle $departmentReport | Sort-Object -Property MFAUyumOran\u0131 -Descending | Format-Table -AutoSize # CSV olarak d\u0131\u015fa aktar $departmentReport | Export-Csv -Path \"Departman_MFA_Raporu_$(Get-Date -Format 'yyyyMMdd').csv\" -NoTypeInformation -Encoding UTF8<\/pre> <pre><code ><\/code><\/pre> &nbsp; <pre><code ><\/code><\/pre> <h2>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h2> <h3>Sorun 1: MFA Durumu Raporlar\u0131 Do\u011fru G\u00f6r\u00fcnm\u00fcyor<\/h3> <strong>Belirtiler<\/strong>: Ko\u015fullu eri\u015fim politikalar\u0131 ile MFA uygulanan kullan\u0131c\u0131lar, raporlarda \"Devre D\u0131\u015f\u0131\" olarak g\u00f6r\u00fcn\u00fcyor. <strong>\u00c7\u00f6z\u00fcm<\/strong>: <ul> <li>Kullan\u0131c\u0131 ba\u015f\u0131na MFA yap\u0131land\u0131rmas\u0131 ve ko\u015fullu eri\u015fim tabanl\u0131 MFA farkl\u0131 sistemlerde takip edilir<\/li> <li>Her iki y\u00f6ntemi de raporlar\u0131n\u0131zda dikkate al\u0131n<\/li> <li>Kullan\u0131c\u0131 ba\u015f\u0131na MFA durumunu PowerShell ile kontrol ederken, ko\u015fullu eri\u015fim politikalar\u0131n\u0131 da ayr\u0131ca kontrol edin<\/li> <\/ul> <h3>Sorun 2: PowerShell Komutlar\u0131 \u0130zin Hatas\u0131 Veriyor<\/h3> <strong>Belirtiler<\/strong>: PowerShell betikleri \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda \"Yeterli izniniz yok\" hatas\u0131 al\u0131n\u0131yor. <strong>\u00c7\u00f6z\u00fcm<\/strong>: <ul> <li>Global Y\u00f6netici veya G\u00fcvenlik Y\u00f6neticisi rol\u00fcne sahip bir hesapla oturum a\u00e7\u0131n<\/li> <li>Microsoft Graph API izinlerini do\u011fru \u015fekilde isteyin: <pre><code >Connect-MgGraph -Scopes \"User.Read.All\", \"UserAuthenticationMethod.Read.All\", \"Directory.Read.All\", \"Policy.Read.All\" <\/code><\/pre> <\/li> <li>Uygulaman\u0131z i\u00e7in gerekli API izinlerini Azure Portal'dan atay\u0131n<\/li> <\/ul> <h3>Sorun 3: Baz\u0131 Kullan\u0131c\u0131lar MFA'y\u0131 Kaydettikleri Halde Raporlarda G\u00f6r\u00fcnm\u00fcyor<\/h3> <strong>Belirtiler<\/strong>: Baz\u0131 kullan\u0131c\u0131lar MFA kay\u0131t i\u015flemini tamamlad\u0131klar\u0131n\u0131 bildiriyor, ancak raporlarda hala MFA's\u0131z g\u00f6r\u00fcn\u00fcyorlar. <strong>\u00c7\u00f6z\u00fcm<\/strong>: <ul> <li>MFA kay\u0131t durumunun g\u00fcncelle\u015ftirilmesi bazen 24 saate kadar s\u00fcrebilir<\/li> <li>Kullan\u0131c\u0131n\u0131n kay\u0131t i\u015flemini do\u011fru tamamlad\u0131\u011f\u0131ndan emin olun<\/li> <li>Azure AD'nin \u00f6nbelle\u011fi nedeniyle raporlar\u0131n gecikmeli olabilece\u011fini hesaba kat\u0131n<\/li> <li>Kullan\u0131c\u0131n\u0131n kayd\u0131n\u0131n onaylanmas\u0131 i\u00e7in oturum a\u00e7ma kay\u0131tlar\u0131n\u0131 kontrol edin<\/li> <\/ul> <h2>\u0130yi Uygulama \u00d6rnekleri ve \u00d6neriler<\/h2> <h3>1. MFA Denetim ve Uyum Stratejisi<\/h3> Organizasyonunuzda MFA'y\u0131 etkin bir \u015fekilde y\u00f6netmek i\u00e7in bir denetim ve uyum stratejisi olu\u015fturun: <ul> <li>Haftal\u0131k veya ayl\u0131k MFA durum raporlar\u0131 olu\u015fturun<\/li> <li>MFA kullanmayan kullan\u0131c\u0131lar\u0131 d\u00fczenli olarak izleyin<\/li> <li>Departman y\u00f6neticilerine MFA uyum raporlar\u0131 g\u00f6nderin<\/li> <li>MFA kullanmayan kullan\u0131c\u0131lar i\u00e7in otomatik e-posta hat\u0131rlat\u0131c\u0131lar ayarlay\u0131n<\/li> <li>\u00a0Y\u00fcksek ayr\u0131cal\u0131kl\u0131 hesaplar\u0131 kontrol et<\/li> <\/ul> <h3> Microsoft Power BI kullanarak etkile\u015fimli bir MFA izleme paneli olu\u015fturabilirsiniz:<\/h3> 1. Yukar\u0131daki PowerShell betiklerini kullanarak d\u00fczenli olarak CSV raporlar\u0131 olu\u015fturun 2. Power BI Desktop'\u0131 a\u00e7\u0131n ve \"Veri Al\" &gt; \"Metin\/CSV\" se\u00e7ene\u011fini kullanarak CSV dosyas\u0131n\u0131 i\u00e7e aktar\u0131n 3. A\u015fa\u011f\u0131daki g\u00f6rselleri i\u00e7eren bir dashboard olu\u015fturun: - MFA benimseme oran\u0131n\u0131 g\u00f6steren bir g\u00f6sterge (gauge) - Departman bazl\u0131 MFA uyumunu g\u00f6steren bir \u00e7ubuk grafik - MFA y\u00f6ntem da\u011f\u0131l\u0131m\u0131n\u0131 g\u00f6steren bir pasta grafik - MFA etkin olmayan kullan\u0131c\u0131lar\u0131 g\u00f6steren bir tablo - Zamana g\u00f6re MFA benimseme e\u011filimini g\u00f6steren bir \u00e7izgi grafik 4. Power BI raporunu programl\u0131 olarak yenilemek i\u00e7in Power BI Gateway yap\u0131land\u0131r\u0131n 5. Raporu Power BI Service'de yay\u0131nlay\u0131n ve payla\u015f\u0131n ### 4. MFA G\u00fcvenlik A\u00e7\u0131klar\u0131 ve Risk De\u011ferlendirmesi MFA yap\u0131land\u0131rman\u0131zdaki potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 tan\u0131mlamak i\u00e7in: 1. Y\u00fcksek ayr\u0131cal\u0131kl\u0131 hesaplar\u0131n MFA durumunu \u00f6ncelikli olarak izleyin: &nbsp; <pre  data-enlighter-language=\"generic\">$adminRoles = @( \"Global Administrator\", \"Privileged Role Administrator\", \"User Administrator\", \"SharePoint Administrator\", \"Exchange Administrator\", \"Conditional Access Administrator\", \"Security Administrator\" ) # Rol \u00fcyelerini ve MFA durumlar\u0131n\u0131 al $privilegedUsers = @() foreach ($role in $adminRoles) { $roleUsers = Get-MgDirectoryRole -Filter \"DisplayName eq '$role'\" | Get-MgDirectoryRoleMember | Where-Object { $_.AdditionalProperties -eq \"#microsoft.graph.user\" } foreach ($user in $roleUsers) { $userId = $user.Id $userObj = Get-MgUser -UserId $userId # MFA durumunu kontrol et $authMethods = Get-MgUserAuthenticationMethod -UserId $userId $mfaEnabled = ($authMethods | Where-Object { $_.AdditionalProperties -ne \"#microsoft.graph.passwordAuthenticationMethod\" }).Count -gt 0 $privilegedUsers += @{ Kullan\u0131c\u0131Ad\u0131 = $userObj.DisplayName Kullan\u0131c\u0131PrincipalName = $userObj.UserPrincipalName Rol = $role MFADurumu = if ($mfaEnabled) { \"Etkin\" } else { \"Devre D\u0131\u015f\u0131\" } RiskSeviyesi = if ($mfaEnabled) { \"D\u00fc\u015f\u00fck\" } else { \"Y\u00fcksek\" } } } } # Sonu\u00e7lar\u0131 g\u00f6r\u00fcnt\u00fcle $privilegedUsers | Format-Table -AutoSize # CSV olarak d\u0131\u015fa aktar $privilegedUsers | Export-Csv -Path \"Yetkili_Kullan\u0131c\u0131lar_MFA_Raporu_$(Get-Date -Format 'yyyyMMdd').csv\" -NoTypeInformation -Encoding UTF8<\/pre> <h2>G\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 ve risk de\u011ferlendirme raporunu olu\u015fturun:<\/h2> <pre  data-enlighter-language=\"python\"># MFA g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 de\u011ferlendir $vulnReport = @{ Y\u00fcksekRiskliY\u00f6neticiler = ($privilegedUsers | Where-Object { $_.MFADurumu -eq \"Devre D\u0131\u015f\u0131\" }).Count ToplamY\u00f6neticiSay\u0131s\u0131 = $privilegedUsers.Count D\u00fc\u015f\u00fckG\u00fcvenlikliMFAY\u00f6ntemleri = ($detailedReport | Where-Object { $_.Kay\u0131tl\u0131Y\u00f6ntemler -like \"*SMS*\" -or $_.Kay\u0131tl\u0131Y\u00f6ntemler -like \"*Telefon*\" }).Count KonsolideRiskPuan\u0131 = 0 # Hesaplanacak } # Risk puan\u0131 hesapla (0-100 aras\u0131nda, 100 en riskli) $adminRiskWeight = 40 # Y\u00f6netici MFA eksikli\u011fi a\u011f\u0131rl\u0131\u011f\u0131 $userRiskWeight = 30 # Genel kullan\u0131c\u0131 MFA eksikli\u011fi a\u011f\u0131rl\u0131\u011f\u0131 $methodRiskWeight = 30 # D\u00fc\u015f\u00fck g\u00fcvenlikli MFA y\u00f6ntemi a\u011f\u0131rl\u0131\u011f\u0131 $adminRiskScore = if ($vulnReport.ToplamY\u00f6neticiSay\u0131s\u0131 -gt 0) { ($vulnReport.Y\u00fcksekRiskliY\u00f6neticiler \/ $vulnReport.ToplamY\u00f6neticiSay\u0131s\u0131) * $adminRiskWeight } else { 0 } $userRiskScore = if ($totalUsers -gt 0) { (($totalUsers - $mfaEnabledUsers) \/ $totalUsers) * $userRiskWeight } else { 0 } $methodRiskScore = if ($mfaEnabledUsers -gt 0) { ($vulnReport.D\u00fc\u015f\u00fckG\u00fcvenlikliMFAY\u00f6ntemleri \/ $mfaEnabledUsers) * $methodRiskWeight } else { 0 } $vulnReport.KonsolideRiskPuan\u0131 = ::Round($adminRiskScore + $userRiskScore + $methodRiskScore, 2) # Sonu\u00e7lar\u0131 g\u00f6r\u00fcnt\u00fcle $vulnReport | Format-Table -AutoSize # Risk de\u011ferlendirmesi \u00f6zeti $riskLevel = switch ($vulnReport.KonsolideRiskPuan\u0131) { {$_ -lt 20} { \"\u00c7ok D\u00fc\u015f\u00fck Risk\" } {$_ -lt 40} { \"D\u00fc\u015f\u00fck Risk\" } {$_ -lt 60} { \"Orta Risk\" } {$_ -lt 80} { \"Y\u00fcksek Risk\" } default { \"\u00c7ok Y\u00fcksek Risk\" } } Write-Host \"MFA Risk De\u011ferlendirmesi: $riskLevel ($($vulnReport.KonsolideRiskPuan\u0131)\/100)\" -ForegroundColor $( switch ($riskLevel) { \"\u00c7ok D\u00fc\u015f\u00fck Risk\" { \"Green\" } \"D\u00fc\u015f\u00fck Risk\" { \"DarkGreen\" } \"Orta Risk\" { \"Yellow\" } \"Y\u00fcksek Risk\" { \"Red\" } \"\u00c7ok Y\u00fcksek Risk\" { \"DarkRed\" } } )<\/pre> <pre><code ><\/code><\/pre> <pre><code ><\/code><\/pre> <h3>\u00a0Otomatik D\u00fczeltme ve Uyum Sa\u011flama<\/h3> <pre><code ><\/code><\/pre> MFA uyumunu otomatik olarak iyile\u015ftirmek i\u00e7in a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 uygulayabilirsiniz: <pre><code ><\/code><\/pre> <ol> <li>MFA etkinle\u015ftirmesi gereken kullan\u0131c\u0131lar i\u00e7in otomatik e-posta bildirim g\u00f6nderimi:<\/li> <\/ol> <pre><code ><\/code><\/pre> <pre><code ># MFA eksik kullan\u0131c\u0131lara bildirim g\u00f6nder $mfaMissingUsers = $detailedReport | Where-Object { $_.MFADurumu -eq \"Devre D\u0131\u015f\u0131\" } foreach ($user in $mfaMissingUsers) { $emailBody = @\" Say\u0131n $($user.DisplayName), \u015eirketimizin g\u00fcvenlik politikas\u0131 gere\u011fi, Microsoft 365 hesab\u0131n\u0131z i\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) etkinle\u015ftirmeniz gerekmektedir. MFA'y\u0131 etkinle\u015ftirmek i\u00e7in: 1. https:\/\/aka.ms\/mfasetup adresine gidin 2. Kurumsal hesab\u0131n\u0131zla oturum a\u00e7\u0131n 3. Ek g\u00fcvenlik do\u011frulama y\u00f6ntemlerinizi kurun Daha fazla bilgi i\u00e7in IT Yard\u0131m Masas\u0131 ile ileti\u015fime ge\u00e7ebilirsiniz. Sayg\u0131lar\u0131m\u0131zla, IT G\u00fcvenlik Ekibi \"@ # E-posta g\u00f6nderme kodunu burada uygulay\u0131n # Send-MailMessage vb. } <\/code><\/pre> <pre><code ><\/code><\/pre> <h2>Y\u00f6neticiler i\u00e7in PowerShell ile zorunlu MFA uygulama<\/h2> <div > <div ><\/div> <\/div> <pre  data-enlighter-language=\"python\"># Y\u00f6netici hesaplar\u0131 i\u00e7in MFA'y\u0131 zorunlu k\u0131l $adminUsers = $privilegedUsers | Where-Object { $_.MFADurumu -eq \"Devre D\u0131\u015f\u0131\" } foreach ($admin in $adminUsers) { # Kullan\u0131c\u0131 ba\u015f\u0131na MFA'y\u0131 etkinle\u015ftir $st = New-Object -TypeName Microsoft.Online.Administration.StrongAuthenticationRequirement $st.RelyingParty = \"*\" $st.State = \"Enabled\" $sta = @($st) Set-MsolUser -UserPrincipalName $admin.Kullan\u0131c\u0131PrincipalName -StrongAuthenticationRequirements $sta Write-Host \"$($admin.Kullan\u0131c\u0131Ad\u0131) ($($admin.Rol)) i\u00e7in MFA zorunlu k\u0131l\u0131nd\u0131\" -ForegroundColor Green }<\/pre> &nbsp; <pre><code ><\/code><\/pre> <p >Microsoft Entra ID MFA durumunu izlemek ve raporlamak, organizasyonunuzun g\u00fcvenlik duru\u015funu iyile\u015ftirmek i\u00e7in kritik bir uygulamad\u0131r. Bu rehberde a\u00e7\u0131klanan y\u00f6ntemler ve ara\u00e7larla:<\/p> <ol > <li >T\u00fcm kullan\u0131c\u0131lar\u0131n\u0131z\u0131n MFA durumunu kapsaml\u0131 bir \u015fekilde g\u00f6r\u00fcnt\u00fcleyebilirsiniz<\/li> <li >G\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 proaktif olarak tan\u0131mlayabilirsiniz<\/li> <li >Uyum durumunu \u00f6l\u00e7ebilir ve raporlayabilirsiniz<\/li> <li >G\u00fcvenlik duru\u015funuzu s\u00fcrekli olarak iyile\u015ftirebilirsiniz<\/li> <\/ol> <p >MFA'y\u0131 t\u00fcm kullan\u0131c\u0131lar\u0131n\u0131z i\u00e7in uygulad\u0131\u011f\u0131n\u0131zda, hesap ele ge\u00e7irme sald\u0131r\u0131lar\u0131na kar\u015f\u0131 \u00f6nemli bir koruma katman\u0131 eklemi\u015f olursunuz. D\u00fczenli denetimler ve raporlar, bu kritik g\u00fcvenlik kontrol\u00fcn\u00fcn organizasyonunuzda etkili bir \u015fekilde uyguland\u0131\u011f\u0131ndan emin olman\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/p> <p >Unutmay\u0131n ki, MFA tek ba\u015f\u0131na yeterli de\u011fildir - kimlik g\u00fcvenli\u011fini kapsaml\u0131 bir \u015fekilde ele alan bir yakla\u015f\u0131m\u0131n par\u00e7as\u0131 olmal\u0131d\u0131r. Ko\u015fullu eri\u015fim politikalar\u0131, risk tabanl\u0131 kimlik do\u011frulama ve en az ayr\u0131cal\u0131k ilkesi ile birlikte kullan\u0131ld\u0131\u011f\u0131nda, MFA modern bir g\u00fcvenlik stratejisinin g\u00fc\u00e7l\u00fc bir bile\u015feni haline gelir.<\/p> <hr \/> <p ><strong>\u00d6nemli Not<\/strong>: Bu rehberde sa\u011flanan PowerShell betikleri, kendi ortam\u0131n\u0131za uyarlanmas\u0131 gerekebilir. \u00dcretim ortam\u0131nda uygulamadan \u00f6nce test ortam\u0131nda denemeniz \u00f6nerilir.<\/p> <pre><code ><\/code><\/pre> <hr \/> <pre><code ><\/code><\/pre> <strong>\u00d6nemli Not<\/strong>: Bu rehberde sa\u011flanan PowerShell betikleri, kendi ortam\u0131n\u0131za uyarlanmas\u0131 gerekebilir. \u00dcretim ortam\u0131nda uygulamadan \u00f6nce test ortam\u0131nda denemeniz \u00f6nerilir. <pre><code ><\/code><\/pre>","excerpt":"\u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA), g\u00fcn\u00fcm\u00fcz\u00fcn siber g\u00fcvenlik ortam\u0131nda kritik \u00f6neme sahip bir g\u00fcvenlik katman\u0131d\u0131r. Microsoft Entra ID...","created_at":"2025-04-05 16:28:29","updated_at":"2026-09-08 03:28:02","category_id":6,"view_count":770,"reading_time":18,"status":"published","editor_choice":0,"is_editor_choice":0,"published_at":"2025-04-05 16:28:29","featured_image":"resimyok.jpg","slug":"microsoft-entra-idde-mfa-durumunu-kontrol-etme","category_name":"Sistem","category_slug":"sistem","category_color":"#3b82f6"}