【发布时间】: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 的重定向,因此已尝试为新客户端关闭此功能。
编辑 经过多次挖掘......
Microsoft WIF 不支持 SAML2 协议,而且很可能会支持。
SAML2 协议消息通常作为表单参数 (saml=
【问题讨论】:
标签: asp.net-mvc wif thinktecture saml-2.0