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

时间:2012-07-13 12:01:43

标签: c# .net adfs

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

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

  • Windows身份验证:这适用于单点登录提供程序,但如果用户当前不在正确的Windows域中,则会提供用户不友好的弹出窗口。
  • 表单身份验证:无论用户来自何处,都会要求提供登录方式。

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

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

2 个答案:

答案 0 :(得分: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到内部ADFS,该ADFS启用了Windows身份验证,外部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

的Matias

答案 1 :(得分:0)

您可能会觉得有趣,根据浏览器提供的用户代理字符串指示表单身份验证或集成身份验证:https://blogs.ncl.ac.uk/isg/?p=296