【问题标题】:ADFS - Windows integrated OR Forms authenticationADFS - Windows 集成 OR 表单身份验证
【发布时间】:2012-07-13 12:01:42
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: c# .net adfs


    【解决方案1】:

    一般来说,没有程序化的方式来检测用户是否在域中或不是来自网站。因为当您的站点配置了 Windows 身份验证(并禁用匿名)时,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 服务器执行此操作,除非您进行一些 hack(即不支持)在同一个 ADFS 服务器上绑定到外部 IP 的人造网站,并且该网站重定向到“/adfs/ ls/forms"

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

    马蒂亚斯

    【讨论】:

    • 谢谢,这似乎是要走的路。当我们在实施中确认这一点时,我会将其标记为答案。为单个服务器分配多个 IP 地址相对容易,因此我们将尝试这样做。
    【解决方案2】:

    你可能会觉得很有趣,根据浏览器通知的用户代理字符串,直接进行表单认证或集成认证:https://blogs.ncl.ac.uk/isg/?p=296

    【讨论】:

      猜你喜欢
      • 2021-02-10
      • 2012-11-08
      • 1970-01-01
      • 1970-01-01
      • 2013-10-30
      • 1970-01-01
      • 2012-03-15
      • 2016-05-11
      • 2023-03-22
      相关资源
      最近更新 更多