【问题标题】:WIF 4.5: Database AuthenticationWIF 4.5:数据库身份验证
【发布时间】:2014-02-04 04:17:23
【问题描述】:

我已经开始考虑在我们的项目中使用 WIF 4.5 来替换我们旧的安全行为。这是一个简单的表单身份验证登录页面,我们在其中验证数据库中的用户名/密码。这是我们的身份验证行为。

我正在做 ASP.NET 应用程序。

现在有了 WIF,我知道身份验证行为应该由外部 STS(Azure 或 Active Directory)完成。但是我仍然想在数据库中执行我自己的用户名/密码验证,但我不确定我是否可以/应该使用 WIF 执行此操作。

这是我的问题:

1) 我应该自己制作 STS,还是使用其他方式? 2)我可以在我的配置文件中保留对“表单”的身份验证吗?还是应该使用其他配置?

谢谢!

【问题讨论】:

    标签: asp.net authentication wif


    【解决方案1】:

    1) 是的,您应该拥有自己的 sts 或使用现有的。如果你是第一次写,写一个很难,但以后每隔一段时间写一个就容易了。我曾经写过一个详细的教程,它是针对 wif 4 但应该很容易移植到 wif 4.5。

    http://www.wiktorzychla.com/2011/08/quest-for-customizing-adfs-sign-in-web.html

    2) 是的,您可以对 sts 和您的应用程序使用表单身份验证,但是,由于表单存在许多微妙的问题,因此建议使用 SessionAuthenticationModule 来维护用户会话。

    http://www.wiktorzychla.com/2011/08/quest-for-customizing-adfs-sign-ing-web.html

    http://www.wiktorzychla.com/2012/09/forms-authentication-revisited.html

    如果您依赖常见的身份验证和授权机制(Web 表单授权、mvc 授权过滤器),切换到 SAM 通常不会涉及您的应用程序中的其他更改。

    【讨论】:

    • 感谢您提供有用的信息。只是关于表单/SAM 与 STS 交互的问题。我的自定义 STS 会自动从表单中接收用户名/密码吗?或者我需要自定义代码吗?
    • 自定义 STS 是一个普通的 Web 应用程序,使用表单或任何其他方式来保护其资源。如果您在那里有一个登录页面,带有用户名/密码,就可以了。如果您使用 Windows 身份验证对其进行保护,则可以。在这两种情况下,STS 都会从 token 端点 发出令牌,而这又不需要用户名/密码,而是 - 用户必须以某种方式 身份验证才能进入令牌端点。
    【解决方案2】:

    是的 - 您可以使用 WIF 执行此操作,但不能使用仅针对 AD 进行身份验证的 ADFS。

    建议你看看Thinktecture.IdentityServer

    它是一个开源 STS(因此您可以进行更改)并针对 SQL 数据库进行身份验证。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-20
      • 2012-01-15
      • 1970-01-01
      • 1970-01-01
      • 2017-12-16
      相关资源
      最近更新 更多