為不支援 Windows 整合式驗證 (WIA) 的裝置設定內部網路表單型驗證

根據預設,在 Windows Server 的 Active Directory 同盟服務 (AD FS) 中會針對驗證要求啟用 Windows 整合式驗證 (WIA),而這些驗證要求會在組織內部網路內由於使用瀏覽器進行驗證的任何應用程式而發生。 例如,應用程式可以是使用 WS 同盟或 SAML 通訊協定的瀏覽器型,以及使用 OAuth 通訊協定的豐富應用程式。 WIA 可讓使用者順暢地登入應用程式,而不需要手動輸入其認證。 不過,某些裝置和瀏覽器無法支援 WIA,因此來自這些裝置的驗證要求會失敗。 此外,某些與 NTLM 交涉的瀏覽器體驗並不理想。 建議的方法是回到這類裝置和瀏覽器的表單型驗證。

Windows Server 2016 和 Windows Server 2012 R2 中的 AD FS 可讓系統管理員設定支援表單型驗證後援的使用者代理程式清單。 後援可透過兩個組態進行:

  • Set-ADFSProperties commandlet 的 WIASupportedUserAgentStrings 屬性
  • Set-AdfsGlobalAuthenticationPolicy commandlet 的 WindowsIntegratedFallbackEnabled 屬性

WIASupportedUserAgentStrings 會定義支援 WIA 的使用者代理程式。 AD FS 會在瀏覽器或瀏覽器控制項中執行登入時,分析使用者代理程式字串。 如果使用者代理程式字串的元件不符合在 WIASupportedUserAgentStrings 屬性中所設定使用者代理程式字串的任何元件,則 AD FS 會回復為提供表單型驗證,前提是 WindowsIntegratedFallbackEnabled 旗標設定為 True。

根據預設,新的 AD FS 安裝已建立一組符合的使用者代理程式字串。 不過,這些可能基於瀏覽器和裝置的變更而過期。 特別是,Windows 裝置具有類似的使用者代理程式字串,其在權杖中有輕微的變化。 下列 Windows PowerShell 範例為今日市場上支援無縫 WIA 的目前裝置集提供最佳指引:

Set-AdfsProperties -WIASupportedUserAgents @("MSIE 6.0", "MSIE 7.0; Windows NT", "MSIE 8.0", "MSIE 9.0", "MSIE 10.0; Windows NT 6", "Windows NT 6.3; Trident/7.0", "Windows NT 6.3; Win64; x64; Trident/7.0", "Windows NT 6.3; WOW64; Trident/7.0", "Windows NT 6.2; Trident/7.0", "Windows NT 6.2; Win64; x64; Trident/7.0", "Windows NT 6.2; WOW64; Trident/7.0", "Windows NT 6.1; Trident/7.0", "Windows NT 6.1; Win64; x64; Trident/7.0", "Windows NT 6.1; WOW64; Trident/7.0", "MSIPC", "Windows Rights Management Client")

上述命令將確保 AD FS 只涵蓋下列 WIA 使用案例:

使用者代理程式 使用案例
MSIE 6.0 IE 6.0
MSIE 7.0;Windows NT IE 7,內部網路區域中的 IE。 「Windows NT」片段是由桌面作業系統傳送的。
MSIE 8.0 IE 8.0 (沒有裝置傳送此項目,因此需要更具體)
MSIE 9.0 IE 9.0 (沒有裝置傳送此項目,因此無需更具體)
MSIE 10.0;Windows NT 6 Windows XP 和更新版桌面作業系統的的 IE 10.0

Windows Phone 8.0 裝置 (已將喜好設定為行動裝置) 會被排除,因為其會傳送

使用者代理程式:Mozilla/5.0 (相容;MSIE 10.0;Windows Phone 8.0;Trident/6.0;IEMobile/10.0;ARM;Touch;NOKIA;Lumia 920)
Windows NT 6.3;Trident/7.0

Windows NT 6.3;Win64;x64;Trident/7.0

Windows NT 6.3;WOW64;Trident/7.0
Windows 8.1 桌面作業系統,不同平台
Windows NT 6.2;Trident/7.0

Windows NT 6.2;Win64;x64;Trident/7.0

Windows NT 6.2;WOW64;Trident/7.0
Windows 8 桌面作業系統,不同平台
Windows NT 6.1;Trident/7.0

Windows NT 6.1;Win64;x64;Trident/7.0

Windows NT 6.1;WOW64;Trident/7.0
Windows 7 桌面作業系統,不同平台
[MSIPC] Microsoft Information Protection and Control 用戶端
Windows Rights Management 用戶端 Windows Rights Management 用戶端

若要為 WIASupportedUserAgents 字串中所提及的使用者代理程式啟用回復到表單型驗證,請將 WindowsIntegratedFallbackEnabled 旗標設定為 true

Set-AdfsGlobalAuthenticationPolicy -WindowsIntegratedFallbackEnabled $true

另請確定已針對內部網路啟用表單型驗證。

設定適用於 Chrome 的 WIA

您可以將 Chrome 或其他使用者代理程式新增至支援 WIA 的 AD FS 組態。 這可讓您順暢地登入應用程式,而不需要在存取受 AD FS 保護的資源時手動輸入認證。 請遵循下列步驟在 Chrome 上啟用 WIA:

在 AD FS 組態中,新增適用於 Windows 平台上 Chrome 的使用者代理程式字串:

Set-AdfsProperties -WIASupportedUserAgents (Get-ADFSProperties | Select -ExpandProperty WIASupportedUserAgents) + "Mozilla/5.0 (Windows NT)"

同樣地,針對 Apple macOS 上的 Chrome,將下列使用者代理程式字串新增至 AD FS 組態:

Set-AdfsProperties -WIASupportedUserAgents (Get-ADFSProperties | Select -ExpandProperty WIASupportedUserAgents) + "Mozilla/5.0 (Macintosh; Intel Mac OS X)"

確認 Chrome 的使用者代理程式字串現在已在 AD FS 屬性中設定:

Get-AdfsProperties | Select -ExpandProperty WIASupportedUserAgents

configure auth

注意

隨著新的瀏覽器和裝置發行,建議您協調這些使用者代理程式的功能,並據以更新 AD FS 組態,以在使用上述瀏覽器和裝置時最佳化使用者的驗證體驗。 更具體來說,建議您在將新的裝置或瀏覽器類型新增至 WIA 的支援矩陣時,重新評估 AD FS 中的 WIASupportedUserAgents 設定。