AD FS 在 Windows Server 2016 進行驗證期間忽略 “prompt=login” 參數

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

摘要

如果您使用非密碼驗證 (,例如 ID 提供者 (IdP) 伺服器上) 的 PIV 卡,且要求包含以 login 為值的提示參數,則驗證失敗。

原因

發生此問題的原因是預設提示同盟行為是在同盟期間將 prompt=login 參數轉換為 wauth=password&wfresh=0 。

關於修正

Active Directory 同盟服務 (AD FS) 現在支援下列選項,以控制在同盟期間應如何處理 prompt=login 參數。 您可以使用 set-ADFSProperties cmdlet,為所有同盟伺服器全域設定這些選項,但只有在伺服器陣列以 混合模式執行時才可以設定。 當 FBL) 的伺服器陣列行為層級提高至 Windows Server 2016 時,全域設定會自動移轉至個別宣告提供者 (。 您可以使用 get-ADFSProperties cmdlet 來檢視這些檔案。

備註 當伺服器陣列以非混合模式執行時,也可以使用 Add-AdfsClaimsProviderTrust cmdlet,在個別宣告提供者上設定這些選項。

  • 無。 請勿同盟 prompt=login 要求和錯誤。

  • FallbackToProtocolSpecificParameters (預設) 。 在同盟期間將 prompt=login 轉換為 wfresh=0 和 wauth=forms 。 如果原始要求中有 “wauth”,將會予以保留。

    可以使用 PromptLoginFallbackAuthenticationType 參數來覆寫預設的 “wauth” 值。 例如,下列命令會在同盟期間將 prompt=login 轉換為 wfresh=0 和 wauth=urn:ietf:rfc:2246。
    Set-AdfsProperties -PromptLoginFederation FallbackToProtocolSpecificParameters -PromptLoginFallbackAuthenticationType urn:ietf:rfc:2246

  • ForwardPromptAndHintsOverWsFederation。 轉發 prompt 參數,就像在同盟期間一樣。

  • 已停用。 在同盟期間捨棄要求中的 提示 參數。

下列是 set-ADFSProperties Cmdlet 的範例:

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

如何取得此更新

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

先決條件

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

登錄資訊

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

重新啟動需求

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

更新取代資訊

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

狀態

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

參考資料

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