為Exchange Server配置Kerberos身份驗證
如果您在Outlook和Exchange Server中遇到頻繁的身份驗證提示或性能緩慢,則可以使Kerberos身份驗證可以解決。此外,與NTLM身份驗證相比,Kerberos提供了更強的安全性和更好的性能。在本文中,您將學習如何為Exchange Server配置Kerberos身份驗證。
Kerberos身份驗證是Exchange Server使用的安全有效協議,用於驗證用戶身份,而無需重複密碼提示。它在基於票證的系統上運行,用戶可以在該系統中進行一次驗證,並收到票務票務(TGT)。然後,該TGT用於請求服務票以訪問Exchange Server服務,例如Outlook和基於Web的應用程序。
通過在Exchange Server中實現Kerberos身份驗證,組織可以實現更安全,無縫和有效的身份驗證過程,同時降低對NTLM或基本身份驗證方法的依賴性。
筆記:默認情況下,不啟用Exchange Server的Kerberos身份驗證。它需要在安裝後進行額外的設置,包括創建替代服務帳戶(ASA)和服務主名(SPN)的正確配置。
許多管理員忽略了這種配置,可能會缺少Kerberos提供的安全性和效率優勢。
如何在Exchange Server中配置Kerberos身份驗證
Microsoft建議使用記錄而不是CNAME記錄。這樣可以確保客戶端正確地根據共享名稱發布Kerberos票務請求,而不是服務器FQDN。
在我們的組織中,我們有以下用於Exchange Server設置的內部DNS:
- mail.exoip.com對於HTTP和Outlook的MAPI在任何地方
- autodiscover.exoip.com用於自動發現服務
這就是它在DNS中的外觀mail.exoip.com。
有關的:配置混合現代身份驗證以交換本地
這就是它在DNS中的外觀autodiscover.exoip.com。
基於上面的FQDN,我們必須將以下SPN與ASA證書相關聯:
- http/mail.exoip.com
- http/autodiscover.exoip.com
我們將瀏覽以下步驟,並為Exchange Server設置Kerberos身份驗證。
步驟1:創建替代服務帳戶(ASA)
所有運行客戶端訪問服務的交換服務器共享相同名稱空間和URL必須使用相同的替代服務帳戶憑據或(ASA憑據)。通常,為每個版本的交換版擁有一個森林的單個帳戶就足夠了。
筆記:您可以從Exchange Server 2013及更高版本中共享相同的ASA憑據。因此,如果您想從Exchange Server 2016遷移到Exchange Server 2019,則不必創建一個新的。
- 開始Active Directory用戶和計算機
- 去組織部門交換服務器計算機對象的位置
- 右鍵單擊並選擇特性
- 單擊屬性編輯器選項卡
- 按兩下傑出名稱屬性
- 複製值
- 啟動交換管理外殼作為管理員
- 創建一個名稱的廣告計算機對象Exch2019asa並使用您在上一步中復制的-Path參數的OU值
New-ADComputer -Name "EXCH2019ASA" -AccountPassword (Read-Host "Enter new password" -AsSecureString) -Description "Alternate Service Account credentials for Exchange" -Enabled:$True -SamAccountName "EXCH2019ASA" -Path "OU=Exchange Servers,OU=Servers,OU=Company,DC=exoip,DC=local"
- 填寫廣告計算機對象的新密碼
- 啟用AES 256加密以支持Kerberos
Set-ADComputer "EXCH2019ASA" -add @{"msDS-SupportedEncryptionTypes"="28"}
- 驗證廣告計算機對象成功創建了
Get-ADComputer "EXCH2019ASA"
出現輸出。
DistinguishedName : CN=EXCH2019ASA,OU=Exchange Servers,OU=Servers,OU=Company,DC=exoip,DC=local
DNSHostName :
Enabled : True
Name : EXCH2019ASA
ObjectClass : computer
ObjectGUID : 0779280f-c25b-431c-b37e-1bfc020ec72a
SamAccountName : EXCH2019ASA$
SID : S-1-5-21-813775357-375391071-1622867542-1150
UserPrincipalName :
您還可以在Active Directory用戶和計算機中找到AD計算機對象。
步驟2。複製所有域控制器的更改
創建帳戶後,將更改重複到所有AD DS域控制器。
repadmin /syncall /ADPe
步驟3。部署ASA憑證到第一交換服務器
部署ASA憑據的唯一支持的方法是使用RollalTernateServiceCountPassword.ps1來自Exchange Server腳本文件夾的腳本。
- 運行Exchange Management Shell作為管理員
- 將目錄更改為“ Exchange Server腳本”文件夾
cd $exscripts
- 將ASA憑據部署到運行客戶端訪問服務的第一個交換服務器
.RollAlternateServiceAccountPassword.ps1 -ToSpecificServer "EX01-2019.exoip.local" -GenerateNewPasswordFor exoipEXCH2019ASA$
- 當您被問到是否要更改替代服務帳戶的密碼時,請輸入y然後按進入
步驟4。部署ASA憑證到其他Exchange Server
如果您在組織中運行多個Exchange服務器,請在下面運行命令。
筆記:為所有交換服務器執行此操作。只需替換Exchange Server(EX02-2019)目標。
.RollAlternateServiceAccountPassword.ps1 -ToSpecificServer "EX02-2019.exoip.local" -CopyFrom "EX01-2019.exoip.local"
步驟5。驗證ASA憑據的部署
檢查Exchange服務器上的ASA憑據設置。
Get-ClientAccessServer "EX01-2019" -IncludeAlternateServiceAccountCredentialStatus | Format-List Name, AlternateServiceAccountConfiguration
出現輸出。
Name : EX01-2019
AlternateServiceAccountConfiguration : Latest: 3/4/2025 6:07:57 PM, exoipEXCH2019ASA$
Previous: <Not set>
步驟6。驗證SPN尚未與帳戶關聯
在將SPN與ASA憑據關聯之前,您必須驗證目標SPN與森林中的另一個帳戶尚未關聯。 ASA憑證必須是與這些SPN相關的森林中唯一的說法。
啟動命令提示符並運行下面的命令。
setspn -F -Q http/mail.exoip.com
setspn -F -Q http/autodiscover.exoip.com
命令應返回找不到這樣的SPN如下所示。
Checking forest DC=exoip,DC=local
No such SPN found.
如果返回某些內容,則已經與SPN關聯了另一個帳戶。
步驟7。與ASA憑據的副服務主名(SPN)
- 啟動命令提示
- 將MAPI通過HTTP和Outlook與ASA憑據關聯
setspn -S http/mail.exoip.com exoipEXCH2019ASA$
出現輸出。
Checking domain DC=exoip,DC=local
Registering ServicePrincipalNames for CN=EXCH2019ASA,OU=Exchange Servers,OU=Servers,OU=Company,DC=exoip,DC=local
http/mail.exoip.com
Updated object
- 將自動發現的SPN與ASA憑據關聯
setspn -S http/autodiscover.exoip.com exoipEXCH2019ASA$
出現輸出。
Checking domain DC=exoip,DC=local
Registering ServicePrincipalNames for CN=EXCH2019ASA,OU=Exchange Servers,OU=Servers,OU=Company,DC=exoip,DC=local
http/autodiscover.exoip.com
Updated object
步驟8。驗證您將SPN與ASA憑據關聯
啟動命令提示符並運行下面的命令。您只需要一次運行此命令。
setspn -L exoipEXCH2019ASA$
步驟9。啟用kerberos的Outlook客戶身份驗證
- 啟動交換管理外殼作為管理員
- 啟用Kerberos身份驗證,以適用於所有在任何位置客戶端的Outlook Altherlook客戶驗證,以啟用您要啟用Kerberos Authentication的所有交換服務器
Get-OutlookAnywhere -Server "EX01-2019" | Set-OutlookAnywhere -InternalClientAuthenticationMethod Negotiate
- 驗證它已成功設置
Get-OutlookAnywhere -Server "EX01-2019" | Format-Table InternalClientAuthenticationMethod
出現輸出。
InternalClientAuthenticationMethod
----------------------------------
Negotiate
- 通過HTTP客戶端啟用MAPI的Kerberos身份驗證,用於您要啟用Kerberos身份驗證的所有交換服務器
Get-MapiVirtualDirectory -Server "EX01-2019" | Set-MapiVirtualDirectory -IISAuthenticationMethods Ntlm,Negotiate
- 驗證它已成功設置
Get-MapiVirtualDirectory -Server "EX01-2019" | Format-List IISAuthenticationMethods
出現輸出。
IISAuthenticationMethods : {Ntlm, Negotiate}
在與在線交換的混合環境中,或者如果您在內部使用OAuth。
$mapidir = Get-MapiVirtualDirectory -Server "EX01-2019"
$mapidir | Set-MapiVirtualDirectory -IISAuthenticationMethods ($mapidir.IISAuthenticationMethods +='Negotiate')
步驟10。重新啟動交換服務器服務
重新啟動Microsoft Exchange Service主機服務和MS Exchange AutoDiscover應用程序池加快過程。在所有交換服務器上執行此操作。
Restart-Service MSExchangeServiceHost
Restart-WebAppPool -Name MSExchangeAutodiscoverAppPool
如果需要,您也可以重新啟動所有交換服務器。
步驟11。驗證Exchange客戶端Kerberos身份驗證
成功配置Kerberos和ASA憑據後,驗證客戶端可以成功驗證。
- 開始前景在客戶機器上
- 開始命令提示在客戶機器上
- 在下面運行命令
klist
- 驗證服務器中是否出現兩張門票http/mail.exoip.com和http/autodiscover.exoip.com
就是這樣!
結論
您學會瞭如何為Exchange Server配置Kerberos身份驗證。 Kerberos比NTLM更安全,並且在客戶,交換服務器和您的域控制器上添加了較低的開銷。在運行Exchange Server的所有組織中進行配置至關重要。
您喜歡這篇文章嗎?您可能還喜歡逐步創建DAG Exchange服務器。不要忘記關注我們並分享這篇文章。
