如何設定 Exchange Server 內部部署以使用混合式新式驗證

本文適用於 Microsoft 365 企業版和 Office 365 企業版。

混合式新式驗證 (HMA) 是一種身分識別管理方法,可提供更安全的使用者驗證和授權,並適用於 Exchange Server 內部部署混合式部署。

啟用混合式新式驗證

開啟 HMA 需要您的環境符合下列條件:

  1. 開始之前,請確定您符合必要條件。

  2. 由於 商務用 Skype 和 Exchange 有許多必要條件,因此請在混合式新式驗證概觀中檢閱這些必要條件,以及搭配內部部署 商務用 Skype 和 Exchange 伺服器使用它們的必要條件。 在開始本文中的任何步驟之前,請先執行此動作。 要插入之連結信箱的需求。

  3. 在 Microsoft Entra ID 中將內部部署 Web 服務 URL 新增為服務主體名稱 (SPN) 。 如果 Exchange 內部部署與多個租使用者混合,則必須在與 Exchange 內部部署混合的所有租使用者 Microsoft Entra ID 中,將這些內部部署 Web 服務 URL 新增為 SPN。

  4. 確定已針對 HMA 啟用所有虛擬目錄

  5. 檢查 EvoSTS Auth Server 物件

  6. 確定 Exchange Server OAuth 憑證有效

  7. 確定所有使用者身分識別都已與 Microsoft Entra ID 同步處理

  8. 在 Exchange 內部部署中啟用 HMA。

注意事項

您的 Office 版本是否支援MA? 請參閱 Office 2013 和 Office 2016 用戶端應用程式的新式驗證運作方式

警告

不支援透過 Microsoft Entra 應用程式 Proxy 發佈 Outlook Web App 和 Exchange 控制台。

在 Microsoft Entra ID 中將內部部署 Web 服務 URL 新增為 SPN

執行命令,將內部部署 Web 服務 URL 指派為 Microsoft Entra SPN。 在驗證和授權期間,用戶端機器和裝置會使用SPN。 所有可能用來從內部部署連線到 Microsoft Entra ID的URL都必須在 Microsoft Entra ID (中註冊,包括內部和外部命名空間) 。

  1. 首先,在您的 Microsoft Exchange Server 上執行下列命令:

    Get-MapiVirtualDirectory -ADPropertiesOnly | fl server,*url*
    Get-WebServicesVirtualDirectory -ADPropertiesOnly | fl server,*url*
    Get-ClientAccessService | fl Name, AutodiscoverServiceInternalUri
    Get-OABVirtualDirectory -ADPropertiesOnly | fl server,*url*
    Get-AutodiscoverVirtualDirectory -ADPropertiesOnly | fl server,*url*
    Get-OutlookAnywhere -ADPropertiesOnly | fl server,*hostname*
    

    請確定用戶端可能連線到的 URL 在 Microsoft Entra ID 中列為 HTTPS 服務主體名稱。 如果 Exchange 內部部署與多個租使用者混合,這些 HTTPS SPN 應該新增至與 Exchange 內部部署混合的所有租使用者 Microsoft Entra ID。

  2. 安裝 Microsoft Graph PowerShell 模組:

    Install-Module Microsoft.Graph -Scope AllUsers
    
  3. 接下來,使用這些指示連線到 Microsoft Entra ID。 若要同意必要的許可權,請執行下列命令:

    Connect-MgGraph -Scopes Application.Read.All, Application.ReadWrite.All
    
  4. 針對您的 Exchange 相關 URL,輸入下列命令:

    Get-MgServicePrincipal -Filter "AppId eq '00000002-0000-0ff1-ce00-000000000000'" | select -ExpandProperty ServicePrincipalNames
    

    記下 (和螢幕快照,以供稍後比較) 此命令的輸出,其中應包含 https://*autodiscover.yourdomain.com*https://*mail.yourdomain.com* URL,但大部分是由開頭為 00000002-0000-0ff1-ce00-000000000000/的 SPN 所組成。 如果您的內部部署 URL 遺 https:// 失,則應該將這些特定記錄新增至此清單。

  5. 如果您在此清單中看不到內部和外部 MAPI/HTTPEWSActiveSyncOABAutodiscover 記錄,則必須新增它們。 使用下列命令來新增所有遺漏的 URL:

    重要事項

    在我們的範例中,將新增的 URL 是 mail.corp.contoso.comowa.contoso.com。 請確定它們已由您環境中設定的 URL 取代。

    $x = Get-MgServicePrincipal -Filter "AppId eq '00000002-0000-0ff1-ce00-000000000000'"
    $ServicePrincipalUpdate = @(
    "https://mail.corp.contoso.com/","https://owa.contoso.com/"
    )
    Update-MgServicePrincipal -ServicePrincipalId $x.Id -ServicePrincipalNames $ServicePrincipalUpdate
    
  6. 再次執行步驟 2 中的 Get-MsolServicePrincipal 命令,並查看輸出,以確認已新增您的新記錄。 將之前的清單/螢幕快照與新的SPN清單進行比較。 您也可以為記錄擷取新清單的螢幕快照。 如果您成功,您會在清單中看到兩個新的URL。 依我們的範例,SPN 清單現在包含特定 URL https://mail.corp.contoso.comhttps://owa.contoso.com

確認已正確設定虛擬目錄

現在,執行下列命令,確認 Outlook 可能使用的所有虛擬目錄在 Exchange 中正確啟用 OAuth:

Get-MapiVirtualDirectory | FL server,*url*,*auth*
Get-WebServicesVirtualDirectory | FL server,*url*,*oauth*
Get-OABVirtualDirectory | FL server,*url*,*oauth*
Get-AutoDiscoverVirtualDirectory | FL server,*oauth*

檢查輸出以確定每個 VDir 上都已啟用 OAuth ,它看起來像這樣 (,而要查看的重點是 『OAuth』) :

Get-MapiVirtualDirectory | fl server,*url*,*auth*

Server                        : EX1
InternalUrl                   : https://mail.contoso.com/mapi
ExternalUrl                   : https://mail.contoso.com/mapi
IISAuthenticationMethods      : {Ntlm, OAuth, Negotiate}
InternalAuthenticationMethods : {Ntlm, OAuth, Negotiate}
ExternalAuthenticationMethods : {Ntlm, OAuth, Negotiate}

如果有任何伺服器和四個虛擬目錄中的任何一個遺漏 OAuth,您必須先使用相關命令加以新增,再繼續 (Set-MapiVirtualDirectorySet-WebServicesVirtualDirectorySet-OABVirtualDirectorySet-AutodiscoverVirtualDirectory) 。

確認 EvoSTS 驗證伺服器物件存在

返回上一個命令的內部部署 Exchange 管理命令介面。 現在您可以驗證內部部署是否有 evoSTS 驗證提供者的專案:

Get-AuthServer | where {$_.Name -like "EvoSts*"} | ft name,enabled

您的輸出應該會顯示名稱為 EvoSts 且具有 GUID 的 AuthServer,且 「已啟用」狀態應該是 True。 如果沒有,您應該下載並執行最新版的混合式設定精靈。

注意事項

如果 Exchange 內部部署與 多個租使用者混合,您的輸出應該會針對與 Exchange 內部部署混合的每個租用戶顯示一個 [名稱 EvoSts - {GUID} ] 的 AuthServer,而所有這些 AuthServer 物件的 [ 已啟用 ] 狀態應該是 True

重要事項

如果您在環境中執行 Exchange 2010,將不會建立 EvoSTS 驗證提供者。

啟用 HMA

在內部部署的 Exchange 管理命令介面中執行下列命令,並將命令行中的 GUID> 取代<為您執行的最後一個命令輸出中的 GUID:

Set-AuthServer -Identity "EvoSTS - <GUID>" -IsDefaultAuthorizationEndpoint $true
Set-OrganizationConfig -OAuth2ClientProfileEnabled $true

注意事項

在舊版混合式設定精靈中,EvoSts AuthServer 只會命名為 EvoSTS,但未附加 GUID。 您不需要採取任何動作,只要移除命令的 GUID 部分,即可修改上述命令列以反映這一點:

Set-AuthServer -Identity EvoSTS -IsDefaultAuthorizationEndpoint $true

如果 Exchange 內部部署版本是 Exchange 2016 (CU18 或更新版本,) 或 Exchange 2019 (CU7 或更新版本) 且混合式是在 2020 年 9 月之後下載 HCW 設定,請在內部部署的 Exchange 管理命令介面中執行下列命令:

Set-AuthServer -Identity "EvoSTS - {GUID}" -DomainName "Tenant Domain" -IsDefaultAuthorizationEndpoint $true
Set-OrganizationConfig -OAuth2ClientProfileEnabled $true

注意事項

如果 Exchange 內部部署與 多個租使用者混合,Exchange 內部部署中有多個 AuthServer 物件,且網域對應至每個租使用者。 使用 IsDefaultAuthorizationEndpoint Cmdlet) 任何一個 AuthServer 物件, (應將 IsDefaultAuthorizationEndpoint 旗標設定為 true。 此旗標無法針對所有 Authserver 物件設定為 true,即使其中一個 AuthServer 物件的 IsDefaultAuthorizationEndpoint 旗標設定為 true,也會啟用 HMA。

注意事項

針對 DomainName 參數,請使用租使用者網域值,其格式通常是 contoso.onmicrosoft.com

驗證

啟用 HMA 之後,用戶端的下一次登入將會使用新的驗證流程。 只要開啟 HMA 並不會觸發任何用戶端的重新驗證,而且 Exchange 可能需要一些時間才能挑選新的設定。

您也應該在您以滑鼠右鍵按兩下 Outlook 用戶端的圖示的同時按住 CTRL 鍵, (在 [Windows 通知] 匣中) 並選取 [ 連線狀態]。 針對代表 OAuth 中所使用之持有人令牌的 Bearer\*AuthN 類型,尋找用戶端的 SMTP 位址。

注意事項

需要使用 HMA 設定 商務用 Skype 嗎? 您將需要兩篇文章:一篇列出 支援的拓撲,另一篇說明 如何執行設定

啟用適用於 OWA 和 ECP 的混合式新式驗證

現在也可以針對 OWAECP啟用混合式新式驗證。 繼續之前,請確定 必要條件 已完成。

針對 和 啟用OWA混合式新式驗證之後,嘗試登入OWAECP的每位使用者和系統管理員都會先重新導向至 Microsoft Entra ID 驗證ECP頁面。 驗證成功之後,使用者會重新導向至 OWAECP

為 OWA 和 ECP 啟用混合式新式驗證的必要條件

若要啟用 和ECPOWA混合式新式驗證,所有使用者身分識別都必須與 Microsoft Entra ID 同步處理。 此外,還必須先建立內部部署 Exchange Server 與 Exchange Online 之間的 OAuth 設定,才能完成進一步的設定步驟。

已執行混合式設定精靈 (HCW) 設定混合式的客戶,將會備妥 OAuth 設定。 如果之前未設定 OAuth,則可以執行 HCW 或遵循設定 Exchange 與 Exchange Online 組織之間的 OAuth 驗證檔中所述的步驟來完成。

建議您先記錄 OwaVirtualDirectoryEcpVirtualDirectory 設定,再進行任何變更。 本檔可讓您在設定功能之後發生任何問題時還原原始設定。

重要事項

所有伺服器都必須至少安裝 Exchange Server 2019 CU14 更新。 他們也必須執行 Exchange Server 2019 CU14 2024 年 4 月 HU 或更新版本的更新。

為 OWA 和 ECP 啟用混合式新式驗證的步驟

  1. 查詢在OWA內部部署 Exchange Server 上設定的 和 ECP URL。 這很重要,因為它們必須新增為 Microsoft Entra ID的回復 URL:

    Get-OwaVirtualDirectory -ADPropertiesOnly | fl name, *url*
    Get-EcpVirtualDirectory -ADPropertiesOnly | fl name, *url*
    
  2. 如果尚未安裝 Microsoft Graph PowerShell 模組,請安裝:

    Install-Module Microsoft.Graph -Scope AllUsers
    
  3. 使用這些指示連線到 Microsoft Entra ID。 若要同意必要的許可權,請執行下列命令:

    Connect-Graph -Scopes User.Read, Application.ReadWrite.All
    
  4. 指定您的 OWAECP 網址:

    $replyUrlsToBeAdded = @(
    "https://YourDomain.contoso.com/owa","https://YourDomain.contoso.com/ecp"
    )
    
  5. 使用回覆網址更新您的應用程式:

    $servicePrincipal = Get-MgServicePrincipal -Filter "AppId eq '00000002-0000-0ff1-ce00-000000000000'"
    $servicePrincipal.ReplyUrls += $replyUrlsToBeAdded
    Update-MgServicePrincipal -ServicePrincipalId $servicePrincipal.Id -AppId "00000002-0000-0ff1-ce00-000000000000" -ReplyUrls $servicePrincipal.ReplyUrls
    
  6. 確認已成功新增回覆 URL:

    (Get-MgServicePrincipal -Filter "AppId eq '00000002-0000-0ff1-ce00-000000000000'").ReplyUrls
    
  7. 若要讓 Exchange Server 內部部署能夠執行混合式新式驗證,請遵循啟用 HMA 一節中所述的步驟。

  8. (選擇性) 只有在使用 下載網域 時才需要:

    Create 從提升許可權的 Exchange 管理命令介面 (EMS) 執行下列命令,以覆寫新的全域設定。 在一個 Exchange Server 上執行下列命令:

    New-SettingOverride -Name "OWA HMA Download Domain Support" -Component "OAuth" -Section "OAuthIdentityCacheFixForDownloadDomains" -Parameters ("Enabled=true") -Reason "Enable support for OWA HMA when Download Domains are in use"
    Get-ExchangeDiagnosticInfo -Process Microsoft.Exchange.Directory.TopologyService -Component VariantConfiguration -Argument Refresh
    Restart-Service -Name W3SVC, WAS -Force
    
  9. (選擇性) 只有在 Exchange 資源樹系拓撲 案例中才需要:

    將下列索引鍵新增至 <appSettings> 檔案的 <ExchangeInstallPath>\ClientAccess\Owa\web.config 節點。 在每個 Exchange Server 上執行此動作:

    <add key="OAuthHttpModule.ConvertToSidBasedIdentity" value="true"/>
    <add key="OAuthHttpModule.UseMasterAccountSid" value="true"/>
    

    Create 從提升許可權的 Exchange 管理命令介面 (EMS) 執行下列命令,以覆寫新的全域設定。 在一個 Exchange Server 上執行下列命令:

    New-SettingOverride -Name "OWA HMA AFRF Support" -Component "OAuth" -Section "OwaHMAFixForAfRfScenarios" -Parameters ("Enabled=true") -Reason "Enable support for OWA HMA in AFRF scenarios"
    Get-ExchangeDiagnosticInfo -Process Microsoft.Exchange.Directory.TopologyService -Component VariantConfiguration -Argument Refresh
    Restart-Service -Name W3SVC, WAS -Force
    
  10. 若要啟用 和 ECPOWA混合式新式驗證,您必須先停用這些虛擬目錄上的任何其他驗證方法。 針對每個 Exchange Server 上的每個OWAECP虛擬目錄執行下列命令:

    重要事項

    請務必依指定的順序執行這些命令。 否則,您會在執行命令時看到錯誤訊息。 執行這些命令之後,登入 OWAECP 將會停止運作,直到啟用這些虛擬目錄的 OAuth 驗證為止。

    此外,請確定所有帳戶都已同步處理,特別是用於系統管理以 Microsoft Entra ID的帳戶。 否則,登入將會停止運作,直到同步處理為止。 請注意,內建系統管理員等帳戶不會與 Microsoft Entra ID 同步處理,因此,一旦啟用 OWA 和 ECP 的 HMA 之後,就無法用於管理。 這是由於屬性所造成 isCriticalSystemObject ,某些帳戶的 屬性會設定 TRUE 為 。

    Get-OwaVirtualDirectory -Server <computername> | Set-OwaVirtualDirectory -AdfsAuthentication $false –BasicAuthentication $false –FormsAuthentication $false –DigestAuthentication $false
    Get-EcpVirtualDirectory -Server <computername> | Set-EcpVirtualDirectory -AdfsAuthentication $false –BasicAuthentication $false –FormsAuthentication $false –DigestAuthentication $false
    
  11. 為和 ECP 虛擬目錄啟用 OAuthOWA。 針對每個 Exchange Server 上的每個OWAECP虛擬目錄執行下列命令:

    重要事項

    請務必依指定的順序執行這些命令。 否則,您會在執行命令時看到錯誤訊息。

    Get-EcpVirtualDirectory -Server <computername> | Set-EcpVirtualDirectory -OAuthAuthentication $true
    Get-OwaVirtualDirectory -Server <computername> | Set-OwaVirtualDirectory -OAuthAuthentication $true
    

搭配 iOS 和 Android 版 Outlook 使用混合式新式驗證

如果您是使用 TCP 443 上 Exchange Server 的內部部署客戶,請允許來自下列 IP 範圍的網路流量:

52.125.128.0/20
52.127.96.0/23

這些IP位址範圍也記載於 Office 365 IP位址和URL Web 服務中未包含的其他端點

從 Office 365 專用/ITAR 轉換為 vNext 的新式驗證設定需求