【问题标题】:Hybrid Windows + Forms authentication in ASP.Net applications. Architectural advice sought pleaseASP.Net 应用程序中的混合 Windows + Forms 身份验证。请寻求建筑建议
【发布时间】:2016-06-23 20:07:56
【问题描述】:

我想为我们的 ASP.NET Web 应用程序实现混合 Windows 和 Forms 身份验证。我已经看到了几种方法的详细信息,其中一些在 Stackoverflow 上,从简单的重定向到看起来非常可怕的 OWIN 解决方案,老实说,我无法理解正在发生的事情!我真的可以使用一些架构建议!

目前,我们有几个 Web 应用程序(都在一个根域下)都使用表单身份验证。用户被重定向到单个身份验证应用程序,该应用程序验证他们的凭据并检查他们是否已被授予访问他们想要使用的应用程序的权限。 Web 服务器面向公众,托管在外部数据中心的 DMZ 中。

我希望登录到我们公司 AD 的用户能够访问这些应用程序,而无需通过表单身份验证。而非企业用户(例如客户)或未登录 AD 的企业用户(例如,在客户场所使用计算机的员工)被发送到表单以进行身份​​验证。

回顾我目前所读到的内容:

  • 简单重定向。

诸如https://msdn.microsoft.com/en-us/library/ms972958.aspxhttp://mvolo.com/iis-70-twolevel-authentication-with-forms-authentication-and-windows-authentication/ 之类的方法仍然使用表单身份验证。但是登录 URL 目标是一个使用 Windows 身份验证保护的 aspx 页面。域认证用户能够访问此页面,因此可以提升 Windows 用户名并用于创建普通表单票证。非域用户将收到 401 权限被拒绝错误,因为 IIS 被配置为将此类错误重定向到正常的身份验证表单。

这似乎是一种简单的方法,但我想 (a) 它对我不起作用,因为 Web 服务器位于无法访问我们的 AD 的 DMZ 中,并且 (b) 对这种技术的大多数引用似乎都很古老,所以我猜这是一种过时的方法。

  • Windows 身份基础。

我非常喜欢这种方法。我已经阅读了 Pluralsight 上的一些材料,但没有涵盖我们的确切要求。我们确实有 AD FS 2.0(我知道很快会更新到 3.0)。是否可以将域用户定向到作为 STS 的 AD FS 以获取令牌,但将非域用户定向到 DMZ 中的简单 STS 进行用户名/密码身份验证?从我看到的图表看来,WIF 可以信任多个 STS,但是否可以根据 IP 地址或其他区分内部/外部访问的方式自动将用户定向到特定 STS?

另外,我已经看过很多关于这个主题的 Powerpoints,但有人可以指出一些具体例子的方向,因为我似乎找不到任何东西。

  • OWIN/Katana。

这似乎是现在最受欢迎的方式,新的 ASP.NET 项目从一开始就添加了这种方式。我又看了一些 Pluralsight 视频。我遵循了请求管道和中间件的想法(我使用了很多 BizTalk,所以这个概念很熟悉)。但是当涉及到身份验证中间件时,我失去了情节。我将不得不重新访问该材料。我确实找到了这段代码,上面写着它可以满足我的要求 - https://github.com/MohammadYounes/MVC5-MixedAuth/tree/WindowsFirst - 但老实说,这超出了我的理解范围。

有人可以告诉我是否可以使用 Katana 来实现我想要的,以及是否有比此示例代码中使用的更简单的方法?

所以,总的来说,我想我可以就我应该使用哪些方法提出一些建议。或者,还有更好的方法?提前致谢。

【问题讨论】:

    标签: asp.net authentication owin wif katana


    【解决方案1】:

    最简单的解决方案是安装 ADFS 代理/WAP。

    然后使用拆分 DNS,外部用户重定向到代理 (FBA),内部用户重定向到内部 ADFS (IWA)。

    WIF / OWIN 等的问题在于它们将您带到 ADFS,但它们无法确定 ADFS 如何进行身份验证。

    【讨论】:

    • 嗨。非常感谢您的帮助。我会跟进这个建议。道格。
    猜你喜欢
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    相关资源
    最近更新 更多