0

Web 应用程序的当前状态: 我们有一个用 AngularJs、MVC5 设计的现有 Web 应用程序。针对我们的自定义数据库进行身份验证。

SignIn:我们确实覆盖了 Microsoft.AspNet.Identity.UserManager 和其他源类来与我们的数据库对话以获取用户相关信息。将结果添加到 System.Security.Claims.ClaimsIdentity。

传递给“Microsoft.Owin.Security.IAuthenticationManager.SignIn(params System.Security.Claims.ClaimsIdentity[] identities)

我需要什么 SSO: 我们希望使用 SAML 2.0 令牌将身份验证转移到 SSO,因为我们计划将 2 个新供应商集成到我们的 Web 应用程序中

身份提供者: 我们正在 F5 Big Ip 中实现身份提供者,它通过提供登录页面并生成 saml2 令牌来进行身份验证。我们的 Web 应用程序将被配置为服务提供者。在重定向到 Web 应用程序时,它将传递 saml2.0 令牌。

在 MVC .net 框架 4.5.2 中使用 SAML2.0 我的应用程序只需要使用 saml2.0 令牌并与现有的身份验证管道集成。 要做的事情: 来自身份提供者的元数据具有解密 saml2.0 令牌的公钥以及用于签署元数据文件的密钥

我的假设是解析 SAML 2.0 令牌的请求并验证令牌是否有效并使用属性中的数据并查询数据库以获取更多详细信息并将结果插入“System.Security.Claims.ClaimsIdentity”并使用现有的签到操作。需要弄清楚如何配置原理..我们是否还需要Microsoft.AspNet.Identity.UserManager。

研究: 在 Visual Studio 中,我们有身份和访问工具,这在 vs2013 中不存在。浏览了关于 Windows 身份基础和声明身份原则的文章 www.codeproject.com/Articles/504399/Understanding-Windows-Identity-Foundation-WIF

我知道 wif 支持 saml2.0 令牌但不支持 saml2 协议。

以下是建议使用的第三方工具 http://nzpcmad.blogspot.co.nz/2013/06/saml-saml-connectivity-toolkit.html

我不确定只是消费我需要使用其中一种工具吗?因为我们在 F5 bigip 中配置了 IDP,而不是在 .net 中设计

我发现的另一篇好文章 http://www.primaryobjects.com/2013/08/08/using-single-sign-on-with-windows-identity-foundation-in-mvc-net/

还看到了一些关于 Saml2SecurityTokenHandler 处理 saml2.0 令牌的建议。

如果有人可以指导我使用更简单的解决方案以集成到我现有的网络应用程序中,我将不胜感激。只需要使用 saml2.0 令牌并与现有的基于声明的身份验证集成。

4

1 回答 1

0

好的 - 那么您必须根据您使用的链接使用 SAML 堆栈。

看看 Kentor - 网站上有一些例子,另外我写了一篇文章

更新:

SAML 的工作方式是客户端需要向 IDP 发送 AuthnRequest,然后用户进行身份验证,然后 IDP 向客户端发送 AuthnResponse。响应包含包含断言(声明)的 SAML 令牌。

于 2016-05-18T20:23:03.367 回答