首页 文章

ASP.NET MVC中WIF(Windows Identity Foundation)的用户名和密码身份验证

提问于
浏览
0

我们有两个现有的遗留Web应用程序,一个用于使用域内Windows身份验证的Intranet,另一个是Internet应用程序,执行基于自定义Web表单用户名密码的身份验证 . 现在开发了一个新的Web应用程序,并将在互联网上提供给互联网和内联网用户,处理这两种身份验证模型 . 因此我们决定使用WIF . 我们将在Windows Server 2012上使用ASP.NET 4.5 MVC 4 .

Intranet身份验证不应该是一个问题,因为我们可以在这里使用ADFS 2.0 .

但我们目前还不知道如何解决用户名密码验证问题 . 看起来我们需要开发一个自定义UserNameSecurityTokenHandler来验证用户身份,这些用户提供的用户名密码信息已通过我们的自定义成员资格提供程序进行验证 . 但我需要一些整个工作流程的帮助......

假设我们有一个针对互联网用户的自定义登录页面;并假设我们设法将互联网用户路由到此登录页面(在ASP.NET MVC中),从这里到有效令牌的缺失部分是什么?接收提供的用户名密码的表单或MVC控制器操作如何继续触发配置的WIF身份提供程序?

1 回答

  • 2

    最优雅的解决方案是为外部用户创建另一个STS,并让ADFS将其视为身份提供者:

    enter image description here

    外部用户将被重定向到将使用usr / pwd数据库的IdP STS . 内部用户将直接通过ADFS进行身份验证(针对AD) .

    在此方案中,ADFS既充当IdP又充当联合提供程序 .

    为此,您需要将ADFS和IdP(以及应用程序)暴露给互联网 . 您可以使用的利用会员资格的STS是IdentityServer,它是开源的,您当然可以根据自己的需要进行自定义 .

    使用此架构,您不需要在应用程序中进行任何特殊的自定义/扩展 . 你需要处理“家庭领域发现” . 哪个是知道在哪里验证用户的过程(例如内联网与外联网) . 据推测,您可能有不同的URL等 .

相关问题