AD FS 在 Windows Server 2016 的認證過程中會忽略「prompt=login」參數

套用到
Windows Server 2016, all editions Windows Server 2016 Standard Windows Server 2016

摘要

若使用非密碼認證 (,如 IDP) 伺服器 (身份提供者) PIV 卡,且請求中包含以 login 為值的提示參數,認證會失敗。

原因

此問題發生於預設的提示程式聯盟行為是將 prompt=login 參數轉換為 wauth=password&wfresh=0

關於修正

Active Directory 同盟服務 (AD FS) 現在支援以下選項,以控制在聯邦期間如何處理 prompt=login 參數。 這些選項可透過 set-ADFSProperties 指令檔在所有聯邦伺服器上全域設定,但僅限於農場以 混合模式運行時。 當農場行為等級 (FBL) 提升至Windows Server 2016時,全域設定會自動遷移至個別理賠提供者。 可透過 get-ADFSProperties 指令碼查看。

當農場以非混合模式運行時,也可透過 Add-AdfsClaimsProviderTrust 指令檔,對個別理賠提供者設定這些選項。

  • 沒有。 不要將 prompt=login 請求和錯誤合併。

  • FallbackToProtocolSpecificParameters (預設) 。 在聯邦期間將 prompt=login 翻譯成 wfresh=0Wauth=forms 。 如果原始請求中存在「wauth」,則會保留。

    預設的「wauth」值可以透過使用 PromptLoginFallbackAuthenticationType 參數來覆寫。 例如,以下指令在聯邦期間將 prompt=login 轉換成 wfresh=0wauth=urn:ietf:rfc:2246
    Set-AdfsProperties -PromptLoginFederation FallbackToProtocolSpecificParameters -PromptLoginFallbackAuthenticationType urn:ietf:rfc:2246

  • ForwardPromptAndHintsOverWsFederation。 在聯邦期間,將 提示參數 轉發給它。

  • 殘障。 在聯邦過程中丟棄請求中的 提示 參數。

以下是 set-ADFSProperties 指令小程式的範例:

  • Set-AdfsProperties -PromptLoginFederation None
  • Set-AdfsProperties -PromptLoginFederation ForwardPromptAndHintsOverWsFederation

如何取得此更新

要新增選項,請安裝 2018 年 2 月更新的 KB 4077525

先決條件

要安裝此更新,您必須安裝 Windows Server 2016。
 

登錄資訊

若要套用此更新,您不必對登錄進行任何變更。
 

重新啟動需求

套用此更新之後,您必須重新啟動電腦。
 

更新取代資訊

這個更新不會取代任何先前發行的更新。

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

參考資料

了解 Microsoft 用來說明軟體更新的術語