WS Fed with SAML 1.1 and SAML 2.0 for multiple clients in MVC application

WS Fed with SAML 1.1 and SAML 2.0 for multiple clients in MVC application

我们要求我们的 MVC 客户端应用程序通过登录到他们自己的 IDP 为多个客户提供 SSO 能力。 但是其中一些提供了我们已经支持使用 WSFederationAuthenticationModule 的 SAML 1.1,其中一些最近正在发送 SAML 2.0 令牌,这导致我们的 MVC 应用程序失败。

我也可以使用 WSFederationAuthenticationModule 来支持 SAML 2.0 令牌吗?

还有哪些替代建议?

问题是 1.1 强制执行完整的 URI,例如

"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"

而 1.2 只允许 "emailaddress"。

您可以使用 GetOutputClaimsIdentity

并有类似的东西:

outputIdentity.Claims.Add(新声明(ClaimTypes.xxx, "rest of URI" + 电子邮件地址));

我想我找到了解决问题的方法。 扩展 Saml2SecurityTokenHandler 解决了我的问题。 WsFedAuthenticationModule 能够成功地将 saml2 令牌转换为 saml 1.1 断言。