為Exchange Server配置Kerberos身份驗證

Jacki

如果您在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,則不必創建一個新的。

  1. 開始Active Directory用戶和計算機
  2. 組織部門交換服務器計算機對象的位置
  3. 右鍵單擊並選擇特性
  1. 單擊屬性編輯器選項卡
  2. 按兩下傑出名稱屬性
  3. 複製
  1. 啟動交換管理外殼作為管理員
  2. 創建一個名稱的廣告計算機對象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"
  1. 填寫廣告計算機對象的新密碼
  2. 啟用AES 256加密以支持Kerberos
Set-ADComputer "EXCH2019ASA" -add @{"msDS-SupportedEncryptionTypes"="28"}
  1. 驗證廣告計算機對象成功創建了
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腳本文件夾的腳本。

  1. 運行Exchange Management Shell作為管理員
  2. 將目錄更改為“ Exchange Server腳本”文件夾
cd $exscripts
  1. 將ASA憑據部署到運行客戶端訪問服務的第一個交換服務器
.RollAlternateServiceAccountPassword.ps1 -ToSpecificServer "EX01-2019.exoip.local" -GenerateNewPasswordFor exoipEXCH2019ASA$
  1. 當您被問到是否要更改替代服務帳戶的密碼時,請輸入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)

  1. 啟動命令提示
  2. 將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
  1. 將自動發現的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客戶身份驗證

  1. 啟動交換管理外殼作為管理員
  2. 啟用Kerberos身份驗證,以適用於所有在任何位置客戶端的Outlook Altherlook客戶驗證,以啟用您要啟用Kerberos Authentication的所有交換服務器
Get-OutlookAnywhere -Server "EX01-2019" | Set-OutlookAnywhere -InternalClientAuthenticationMethod Negotiate
  1. 驗證它已成功設置
Get-OutlookAnywhere -Server "EX01-2019" | Format-Table InternalClientAuthenticationMethod

出現輸出。

InternalClientAuthenticationMethod
----------------------------------
                         Negotiate
  1. 通過HTTP客戶端啟用MAPI的Kerberos身份驗證,用於您要啟用Kerberos身份驗證的所有交換服務器
Get-MapiVirtualDirectory -Server "EX01-2019" | Set-MapiVirtualDirectory -IISAuthenticationMethods Ntlm,Negotiate
  1. 驗證它已成功設置
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憑據後,驗證客戶端可以成功驗證。

  1. 開始前景在客戶機器上
  2. 開始命令提示在客戶機器上
  3. 在下面運行命令
klist
  1. 驗證服務器中是否出現兩張門票http/mail.exoip.comhttp/autodiscover.exoip.com

就是這樣!

結論

您學會瞭如何為Exchange Server配置Kerberos身份驗證。 Kerberos比NTLM更安全,並且在客戶,交換服務器和您的域控制器上添加了較低的開銷。在運行Exchange Server的所有組織中進行配置至關重要。

您喜歡這篇文章嗎?您可能還喜歡逐步創建DAG Exchange服務器。不要忘記關注我們並分享這篇文章。