【问题标题】:Authenticate a SAML2 (P?) token in body in asp.net mvc在 asp.net mvc 的正文中验证 SAML2 (P?) 令牌
【发布时间】:2015-07-17 10:00:07
【问题描述】:

我有一个 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 >。而新客户端发送的 POST 请求正文包含 < saml >< samlp:Response >

我的问题是:

1) 这个新的< samlp:Response > 是不是 Microsoft WIF 不支持的 SAML2P 版本?还是只是对< saml:Assertion > 元素感兴趣?

2) WIF 将在哪里寻找 SAML 令牌?发布身体?认证头(Bearer)?

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

编辑 经过多次挖掘......

  1. Microsoft WIF 不支持 SAML2 协议,而且很可能会支持。

  2. SAML2 协议消息通常作为表单参数 (saml=

【问题讨论】:

    标签: asp.net-mvc wif thinktecture saml-2.0


    【解决方案1】:

    确实它没有得到官方支持,但你可以做这样的事情来让它工作。

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

    【讨论】:

    • 如果这解决了您的问题,请将其标记为答案,以便对其他人有所帮助。
    • 这个解决方案对我不起作用,因为我的 SAML2-P 消息包含一个数字签名的 SAML2 断言令牌。我想大多数人也会签名,不是我不确定它的解决方案会有多大帮助。
    【解决方案2】:

    AFAIK,samlp 是 WIF 不(还?)支持的协议。它是 WS-Federation 中使用的查询字符串参数的替代品。您应该寻找第三方扩展 (How should I implement SAMLP 2.0 in an ASP.NET MVC 4 service provider?)。由于我自己没有使用过,所以无法提供进一步的建议。

    【讨论】:

    • 你是对的。不支持。我查看了您发送的链接中的 KentorServices,这似乎是一个更好、更灵活的解决方案。
    【解决方案3】:

    我找到的最佳解决方案是Kentor IT - AuthServices

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

    虽然它对我来说不能开箱即用,因为我的第三方似乎使用的是非标准绑定技术(而不是标准的 HTTP Post 或 HTTP Redirect),所以我必须构建自己的自定义-绑定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      • 2018-08-30
      • 2021-02-01
      • 2019-10-20
      • 2017-08-11
      • 2020-08-22
      相关资源
      最近更新 更多