ADFS - Windows集成的OR Forms身份验证

Bas*_*Bas 3 .net c# adfs

我正在配置ADFS服务器,并正在尝试为我们的依赖方应用程序实现用户友好的登录.

目前,据我所知,有两个相关选项:

  • Windows身份验证:这可以作为单点登录提供程序使用,但如果用户当前不在正确的Windows域中,则会提供用户不友好的弹出窗口.
  • 表单身份验证:无论用户来自何处,都将始终要求登录方法.

我的问题是,是否有可能满足这些要求:

  • 如果用户使用Windows帐户登录,请提供SSO
  • 否则,显示表单登录页面并让用户输入他的Windows凭据.

wol*_*ski 7

一般来说,没有编程方法来检测用户是否在网站上.由于您的站点配置了Windows Auth(并禁用匿名),因此如果您不在域中,则会向浏览器发送ntlm质询并弹出凭据提示.

https://serverfault.com/questions/380302/can-i-detect-authenticated-domain-users-in-iis-asp-net-without-prompting-every

您实现这一目标的方式是使用DNS,这是ADFS通过引入代理角色所建议的.您将内部DNS解析login.yourcompany.com为启用了Windows身份验证的内部ADFS,并且外部DNS解析login.yourcompany.com为已启用表单身份验证的代理ADFS角色.因此,您需要在DMZ上托管另一台服务器,以便网络/域外的用户可以访问它.

使用单个ADFS服务器无法执行此操作,除非您在同一ADFS服务器上绑定到外部IP并且该网站具有重定向到"/ adfs/ls/forms"的某个人工网站(即不受支持) "

有关代理及其设置的更多信息 http://blogs.technet.com/b/askds/archive/2012/01/05/understanding-the-ad-fs-2-0-proxy.aspx

马蒂亚斯