Microsoft 365: Parola Sona Erme Bildirimi E-postası


Parola süre sonu bildirimleri, kuruluşunuzun Microsoft 365 hesaplarının güvenliğinin korunmasında önemli bir rol oynar. Kullanıcıların yaklaşan şifre son kullanma tarihlerinden haberdar olmalarını sağlamak, hesap kilitlenmelerini önlemeye yardımcı olabilir ve kullanıcıları güçlü, benzersiz şifreler oluşturmaya teşvik edebilir. Bu kılavuzda, Office 365 parolalarının süresi dolmak üzereyken kullanıcılara otomatik olarak e-posta bildirimleri gönderen bir Microsoft Graph PowerShell betiğinin nasıl oluşturulacağını göstereceğiz.

Şifre Sona Erme Bildirimi E-postası nedir?

Parola sona erme bildirimi e-postası, parolanın süresi dolmak üzereyken kullanıcıya gönderilen bir mesajdır. E-posta genellikle şifrenin son kullanma tarihi hakkında bilgi ve şifrenin nasıl değiştirileceğine ilişkin talimatlar içerir. Şifre süre sonu bildirimi e-postaları, kullanıcılarının şifrelerini düzenli olarak değiştirmesini ve hesaplarını güvende tutmasını sağlamak isteyen kuruluşlar için önemli bir araçtır.

Microsoft 365'te Parola Sona Erme Bildirimi E-postaları Nasıl Gönderilir?

Parola sona erme bildirimleri artık Microsoft 365 yönetim merkezinde desteklenmediğinden (Belki de Microsoft, parola sona erme süresinin devre dışı bırakılmasını önerdiğinden!), Windows PowerShell komut dosyası tabanlı bir çözüm uygulamamız gerekir. Office 365 parolasının sona erme bildirimlerine yönelik bir Microsoft Graph PowerShell betiği oluşturmak için şu adımları izleyin:

Önkoşullar: Microsoft Graph PowerShell Modülünü yükleyin. Bilgisayarınızda Microsoft Graph PowerShell modülünün kurulu olması gerekir. Şunu kullanın: Microsoft.Graph Kurulum Modülü.

Parolasının süresi dolan tüm kullanıcılara bir E-posta hatırlatıcısı göndermek için bu PowerShell betiğini kullanın:


# Connect to Microsoft Graph
Connect-MgGraph -Scopes "User.Read.All", "Mail.Send"

# Set the notification threshold - days before password expires
$NotificationThreshold = 7
$PasswordExpiryThreshold = 90 #By default 90 days Password expiry

# Get all users
$AllUsers = Get-MgUser -All -Property Id, DisplayName, UserPrincipalName,Mail,UserType, AccountEnabled,PasswordPolicies,lastPasswordChangeDateTime

# Iterate through each user
ForEach ($User in $AllUsers) 
{
    # Skip disabled accounts and users with Password never Expire flag
    If (!$User.AccountEnabled -or $User.PasswordPolicies -contains "xDisablePasswordExpiration" -or $User.userType -eq "Guest") {
        continue
    }

    # Get user's password Expiry Date
    $PasswordExpiryDate = $User.lastPasswordChangeDateTime.AddDays($PasswordExpiryThreshold)

    # Calculate the remaining days
    $RemainingDays = ($PasswordExpiryDate - (Get-Date)).Days

    # Check if the remaining days are within the notification threshold
    If ($RemainingDays -le $NotificationThreshold) {
        # Send an email notification to the user
        $EmailBody = "
            Hello $($User.DisplayName),
            <br/><br/>
            Your Office 365 password will expire in $remainingDays days. Please change your password before it expires to avoid any disruption in accessing your account.
            <br/><br/>
            To change your password, follow these steps:<br/>
            <ol>
            <li>Sign in to Office 365 (https://www.office.com)</li>
            <li>Click on your profile picture in the top right corner.</li>
            <li>Select 'View account'.</li>
            <li> Click 'Password'.</li>
            <li> Follow the instructions to change your password.</li>
            </ol>
            <br/>
            Thank you,<br/>
            IT Support Team
        "

    $MailParams = @{
	    Message = @{
		    Subject = "Your Office 365 password will expire soon"
            Importance = "High"
		    Body = @{
			    ContentType = "html"
			    Content = $EmailBody
		    }
		    ToRecipients = @(
			    @{
				    EmailAddress = @{
					    Address = $User.Mail
				    }
                }
		    )
	    }
    }
    # Send the email using Microsoft Graph
    Send-MgUserMail -UserId $User.Mail -BodyParameter $MailParams
    }
}

Bu komut dosyası, oturum açma kimlik bilgilerini isteyecek ve kuruluşunuzdaki tüm kullanıcılar arasında yineleme yapacak, parola son kullanma tarihini hesaplayacak ve parolalarının süresi belirtilen eşik içinde (bizim durumumuzda 7 gün) dolacak kullanıcılara bir e-posta bildirimi gönderecektir. Bildirimler gönderildiğinde şifrenin süresinin dolmasından önceki gün sayısını ayarlamak için $NotificationThreshold değişkenini değiştirebilirsiniz.

İşte eylemdeki komut dosyası:

Şifre Sona Erme Hatırlatma E-postalarını Otomatikleştirin

Katılımsız otomatikleştirilmiş bir senaryo için şu adımları izleyin:

1. Adım: Uygulama Kimliği Oluşturun ve İzinleri Verin

Microsoft Graph'a bağlanmak için Azure AD'de bir uygulama kimliği oluşturun: Microsoft Graph PowerShell modülüne nasıl bağlanılır? Uygulama Kimliğine “Kullanıcı.Tümünü Oku” ve “Posta.Gönder” izinlerini verdiğinizden emin olun.

Adım 2: Bu PowerShell Betiğindeki Parametreleri Güncelleyin

Uygulama Kimliğiyle hazır olduğunuzda bu PowerShell betiğinin parametreler bölümünü güncelleyin. Bu komut dosyası şu şekilde çalışır:

  • Verilen Uygulama Kimliğini ve sertifika parmak izini kullanarak Microsoft Graph'a bağlanır
  • Tüm kullanıcıların parola son kullanma tarihini kontrol eder - Parolanın hiçbir zaman süresi dolmayan, parolanın süresi zaten dolmuş olan kullanıcıları, konuk kullanıcıları vb. hariç tutar.
  • Şifrelerinin süresi belirli bir eşik dahilinde (komut dosyasında olduğu gibi 15 gün!) dolan kullanıcılara, belirli bir E-posta Kimliğinden bir E-posta gönderir (E-postanın önceden oluşturulduğundan emin olun. Örneğin, bizim durumumuzda: $SenderID=“Yardım Masası@) Crescent.com”).
  • İletiyi bir günlük dosyasına kaydeder.

#Parameters
$TenantID = "c1c2b123-4240-4775-a19a-6351b30cx2f6"
$ClientID = "3c1541f7-9565-4abe-b398-f47ac91c2c06" #App ID
$CertThumbPrint = "63FDDD207DE01C0EB34C35647D086D3C1520FA7"
#Path for Log File
$LogFilePath = "C:\Scripts\PasswordExpiry.Log"
$SenderID = "Helpdesk@Crescent.com"
#Notification threshold - days before password expires
$NotificationThreshold = 15
$PasswordExpiryThreshold = 90 #By default 90 days Password expiry

#Function to Add Content to a Log File
Function Write-Log {
 
  [CmdletBinding()]
   
  Param ([Parameter(Mandatory=$true)][string]$Message)  

  Process{
        #Add Message to Log File with timestamp
        "$([datetime]::Now) : $Message" | Out-File -FilePath $LogFilePath -append;
   
        #Write the log message to the screen
        Write-host $([datetime]::Now) $Message
    }
}

#Connect to Microsoft Graph using App
Connect-MgGraph -ClientID $ClientID -TenantId $TenantID -CertificateThumbprint $CertThumbPrint

#Ensure the Parent Folder for Log File
$FolderPath= Split-Path $LogFilePath
If(!(Test-Path -path $FolderPath)) {  
    New-Item -ItemType directory -Path $FolderPath | Out-Null
}

# Get all users
$AllUsers = Get-MgUser -All -Property Id, DisplayName, UserPrincipalName,Mail,UserType, AccountEnabled,PasswordPolicies,lastPasswordChangeDateTime

# Iterate through each user
ForEach ($User in $AllUsers) 
{
    # Skip disabled accounts and users with Password never Expire flag
    If (!$User.AccountEnabled -or $User.PasswordPolicies -contains "DisablePasswordExpiration" -or $User.userType -eq "Guest") {
        continue
    }

    # Get user's password Expiry Date
    $PasswordExpiryDate = $User.lastPasswordChangeDateTime.AddDays($PasswordExpiryThreshold)

    # Calculate the remaining days
    $RemainingDays = ($PasswordExpiryDate - (Get-Date)).Days

    # Check if the remaining days are within the notification threshold
    If ($RemainingDays -le $NotificationThreshold -and $RemainingDays -ge 0) {
        # Send an email notification to the user
        $EmailBody = "
            Hello $($User.DisplayName),
            <br/><br/>
            Your Office 365 password will expire in $remainingDays days. Please change your password before it expires to avoid any disruption in accessing your account.
            <br/><br/>
            To change your password, follow these steps:<br/>
            <ol>
            <li>Sign in to Office 365 (https://www.office.com)</li>
            <li>Click on your profile picture in the top right corner.</li>
            <li>Select 'View account'.</li>
            <li> Click 'Password'.</li>
            <li> Follow the instructions to change your password.</li>
            </ol>
            <br/>
            Thank you,<br/>
            IT Support Team
        "

    $MailParams = @{
	    Message = @{
		    Subject = "Your Office 365 password will expire soon"
            Importance = "High"
		    Body = @{
			    ContentType = "html"
			    Content = $EmailBody
		    }
		    ToRecipients = @(
			    @{
				    EmailAddress = @{
					    Address = $User.Mail
				    }
                }
		    )
	    }
    }
    # Send the email using Microsoft Graph
    Send-MgUserMail -UserId $SenderID -BodyParameter $MailParams
    
    #Write to Log File
    Write-Log "Password Expiration Notification sent to user $($User.Mail) - Password Expires on $PasswordExpiryDate"
    }
}

Bu komut dosyası büyük bir üretkenlik tasarrufu sağlayabilir. Çünkü uygun bildirimler olmazsa kullanıcılar, parolalarının süresi dolduğunda hazırlıksız yakalanabilir ve bu da hesapların kilitlenmesine ve üretkenlikte kesintilere yol açabilir. Bu e-postalar, kullanıcılara şifrelerinin süresinin dolmak üzere olduğunu ve herhangi bir kesintiyi önlemek için şifrelerini değiştirmeleri gerektiğini bildirecektir.

3. Adım: PowerShell Betiğini Zamanlayın

Office 365 kullanıcılarınıza parola sona erme bildirimi e-postaları göndermek için otomatik bir sistem oluşturabilirsiniz: Windows Görev Zamanlayıcı'yı kullanarak PowerShell Komut Dosyasını Zamanlama'yı kullanın veya Azure Runbook ile PowerShell Yürütmesini Otomatikleştirin.

Adım adım talimatlarımızı izleyerek kullanıcıların şifrelerinin son kullanma tarihleri hakkında bilgi sahibi olmalarına ve Office 365 hesaplarına güvenli erişim sağlamalarına yardımcı olabilirsiniz.

Şifre Sona Erme Bildirimi E-postaları için En İyi Uygulamalar

Kuruluşların şifre geçerlilik süresi sona erme bildirimi e-postalarını uygularken takip etmesi gereken bazı en iyi uygulamalar şunlardır:

  1. Kullanıcıların, şifrelerinin sona erme tarihinden çok önce bildirim e-postaları aldığından emin olun. Bu onlara işlerini aksatmadan şifrelerini değiştirmeleri için yeterli zaman verecektir.
  2. Parolaların nasıl değiştirileceğine ilişkin net talimatlar sağlayın. Kullanıcıların şifrelerini değiştirmek için kullanabilecekleri kaynaklara bağlantılar ekleyin.
  3. Kullanıcıları, tahmin edilmesi veya kırılması zor, güçlü, karmaşık şifreler oluşturmaya teşvik edin.
  4. Kullanıcı hesaplarına ekstra bir güvenlik katmanı eklemek için çok faktörlü kimlik doğrulamayı uygulamayı düşünün.
  5. Güncel olduğundan ve sektördeki en iyi uygulamalarla uyumlu olduğundan emin olmak için şifre politikanızı düzenli olarak gözden geçirin.

Çözüm:

Office 365 parola sona erme bildirimleri için Microsoft Graph PowerShell betiğiyle, kullanıcılara parolalarının süresi dolmadan önce güncelleştirmelerini hatırlatma sürecini otomatikleştirebilirsiniz. Bu proaktif yaklaşım, kullanıcıların şifrelerinin son kullanma tarihleri hakkında bilgi sahibi olmalarına yardımcı olur, hesap kilitlenme riskini azaltır ve kuruluşunuz için güvenli bir ortam sağlar. Bu Microsoft Graph PowerShell çözümünün uygulanması, kuruluşunuzun güvenliğini artırabilir ve Office 365 kaynaklarına sorunsuz erişimi sürdürürken tüm kullanıcılar için güvenli bir ortam sağlayabilir.

Sıkça Sorulan Sorular:

Office 365 hesap şifresini hiçbir zaman sona ermeyecek şekilde nasıl ayarlayabilirim?

Office 365 kullanıcı hesaplarında parolanın geçerliliği hiçbir zaman sona ermeyecek şekilde ayarlamak için Azure Active Directory PowerShell veya Microsoft Graph API PowerShell cmdlet'lerini kullanabilirsiniz. Kuruluşunuz için parola geçerlilik süresinin sona ermesini, Office 365 Yönetim Merkezi'ndeki parola geçerlilik süresi ilkesi yoluyla da devre dışı bırakabilirsiniz (Ayarlar >> ardından “Kuruluş ayarları” >> “Güvenlik ve Gizlilik” >> Parola Sona Erme Politikasını Seçin >> yanındaki kutuyu işaretleyin) "Kullanıcı parolalarını hiçbir zaman sona ermeyecek şekilde ayarlayın").
Daha fazla bilgi: Office 365'te parola süresinin dolmasını devre dışı bırakma

Office 365 şifre süresinin dolduğuna dair e-postalar gönderir mi?

Parola süre sonu bildirimleri artık Microsoft 365'te desteklenmiyor! Bu nedenle, kullanıcılara Parola Sona Erme E-postaları göndermek için geçici çözümünüzü ayarlamanız gerekir.

Office 365'te varsayılan şifrenin geçerlilik süresi nedir?

Son şifre değiştirme tarihinden itibaren 90 gün (Varsayılan olarak devre dışıdır). Ancak Genel Yönetici, parolanın geçerlilik süresini kuruluşun güvenlik gereksinimlerini karşılayacak şekilde Office 365 Yönetim Merkezi veya PowerShell aracılığıyla yapılandırabilir.

O365 şifresinin süresi dolduğunda ne olur?

Geçerli bir Office 365 parolasının süresi dolduğunda, kullanıcıdan bir sonraki oturum açışında bu parolayı değiştirmesi istenir. Kullanıcı, fiili sona erme tarihinden sonra istemi dikkate almazsa ve parolasını değiştirmezse, şu ana kadar hesapları kilitlenir: şifrelerini sıfırlarlar (ve yönetici düzeyindeki teknik destek şifrenin kilidini açabilir). Ancak Outlook gibi Microsoft Office uygulamaları, parolanın önbellekteki süresi dolana kadar çalışmaya devam edebilir.

Şifrenin süresinin dolması artık önerilmiyor mu?

Evet! Parolanın süresinin dolması artık bir güvenlik önlemi olarak önerilmemektedir; çünkü bu, yarardan çok zarar getirir. Parolaların her 90 günde bir değiştirilmesi, zayıf/eski parolaların bir bilgisayar korsanı/dolandırıcılar/siber suçlular tarafından üç aya kadar kullanılabilir hale gelmesine neden olabilir ve güçlü parolalar kullanmak ve çok faktörlü kimlik doğrulama kullanmak çok daha iyidir.

İlgili makaleler