在asp.net mvc中身份验证SAML2(P?)令牌

我有一个ASP.NET MVC应用程序,它目前允许用户通过两个ThinkTecture IDP服务器进行连接。 MVC应用程序信任这两个IDP服务器,并完美验证用户身份。

当前安装程序使用web.config中< modules >部分的< System.IdentityModel.Services.WSFederationAuthenticationModule >< System.IdentityModel.Services.SessionAuthenticationModule >来处理这些问题。

我们现在有一个新的派对想要通过向我们发送一个SAML v2令牌来验证他们的用户,但是MVC应用程序似乎无法识别它。

我比较了来自IDP服务器(SAML1)和新登录服务器(SAML2)的POST响应,并且存在一些细微差别,这可能会导致问题。

IDP服务器似乎使用< trust:RequestedSecurityToken >属性来换行到< saml:Assertion > 。 而新客户端发送包含< saml >< samlp:Response >的POST请求主体

我的问题是:

1)这是新的< samlp:Response >微软WIF不支持的SAML2P版本吗? 或者它只是对< saml:Assertion >元素感兴趣?

2)WIF将在哪里查找SAML令牌? POST正文? 验证头(承载)?

3)目前,当用户未通过身份验证时,会将其重定向到本地IDP服务器,然后登录并返回SAML响应,然后提取。 但新客户端只会传递一个请求来查看带有SAML令牌的页面(真正的单点登录)。 我想知道这种差异是否会导致问题。 我目前手动处理重定向到用户的本地IDP,所以试图关闭新客户端。

编辑经过大量挖掘...

  • 微软WIF不支持SAML2协议,并且很可能是。

  • SAML2协议消息通常作为HTTP POST主体中的表单参数(saml = <saml:Response> <etc ...),在我的情况下,它不使用标准参数格式(saml =),XML只是直接内联在HTTP POST主体中。


  • AFAIK,samlp是WIF支持的协议。 它是WS-Federation中使用的查询字符串参数的替代品。 你应该寻找第三方扩展(我应该如何在ASP.NET MVC 4服务提供者中实现SAMLP 2.0?)。 由于我没有使用任何我自己,我cananot给进一步的建议。


    事实上,它没有得到官方的支持,但你可以这样做,使其工作。

    http://blogs.msdn.com/b/bradleycotier/archive/2012/10/28/saml-2-0-tokens-and-wif-bridging-the-divide.aspx


    我发现的最佳解决方案是Kentor IT - AuthServices。

    它处理数字签名的SAML令牌。

    虽然它对我来说不起作用,因为我的第三方似乎在使用非标准绑定技术(而不是标准HTTP Post或HTTP重定向),所以我将不得不构建自己的自定义绑定。

    链接地址: http://www.djcxy.com/p/71783.html

    上一篇: Authenticate a SAML2 (P?) token in body in asp.net mvc

    下一篇: WIF 4.5: Database Authentication