ADFS中的自定义身份验证适配器作为主要步骤

时间:2017-03-22 13:44:26

标签: .net authentication single-sign-on adfs multi-factor

我们的设置涉及使用ADFS作为其访问控制服务器的第三方Web应用程序。这种方法运作良好一段时间。

现在我们需要在ADFS中安装自定义身份验证策略,以便将身份验证过程委派给另一个自定义的内部构建服务器并使用自定义动态规则。

根据我们的理解,这是一般ADFS身份验证管道的鸟瞰图:

enter image description here

基本上,使用自定义的辅助步骤来增强身份验证过程非常容易,但是不可能跳过Primary身份验证子流程。

我们确实设法实现了Multi Factor Authentication Adapter(基本上是一个订阅ADFS约定的.NET程序集)并成功安装在ADFS中: enter image description here

不幸的是,我们的情况要求我们自定义第一步,并对各种情况采取不同的反应。例如:

  • 可能托管自定义登录表单,该表单使用AD验证凭据
  • 可能对定制的非ADFS OAuth访问令牌做出反应

让最终用户被迫从一开始就提供凭证是一个交易破坏者。

有没有人知道如何实现这一目标?

我们在ADFS上使用Windows Server 2012 R2。此版本的ADFS不需要预安装IIS

我们发现了一篇关于ADFS 2.0的有趣文章,该文章比我们使用的版本要长IIS。本文提供了一个示例,说明如何更改登录页面中的主要身份验证步骤:

https://social.technet.microsoft.com/wiki/contents/articles/1600.ad-fs-2-0-how-to-change-the-local-authentication-type.aspx

我们无法在ADFS上复制该示例。

2 个答案:

答案 0 :(得分:2)

根据@maweeras,您不能使用ADFS 3.0及更高版本。

ADFS 2.1及更低版本在IIS上运行,因此您可以访问该网站并可以对代码进行更改。

这导致人们引入ADFS受到指责的各种安全漏洞,因此被锁定。

根据建议,联邦,例如使用开源的identityserver并在那里进行更改。

答案 1 :(得分:1)

根据ADFS Release Notes,此功能已在Windows 2019的ADFS中实现。

外部身份验证提供者为主要身份-客户现在可以将第三方身份验证产品用作首要因素,而不必将密码作为首要因素。如果外部身份验证提供者可以证明2个因素,则可以要求MFA。