在MVC5 .net框架工作4.5中使用Saml2.0(Saml2.0令牌由F5 BigIp工具生成)

时间:2016-05-18 17:52:47

标签: angularjs asp.net-mvc saml-2.0 .net-4.5.2 kentor-authservices

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

登入 : 我们完成了使用Microsoft.AspNet.Identity.UserManager和其他源类来与我们的数据库交谈以获取用户相关信息。 将结果添加到System.Security.Claims.ClaimsIdentity。

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

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

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

在MVC .net framework 4.5.2中使用SAML2.0 我的所有应用程序都需要使用saml2.0令牌并与现有的身份验证管道集成。 要做的事情: 来自Identity提供商的元数据具有解密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令牌并与现有的基于声明的身份验证集成。

1 个答案:

答案 0 :(得分:0)

好的 - 然后你必须根据你使用的链接使用SAML堆栈。

看看Kentor - 网站上有一些例子,我写了up

<强>更新

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