c# - MVC.net 中的 WIF - 从第二个 IP 添加附加声明到 SAML token

标签 c# .net asp.net-mvc wif saml

我有一个 MVC.net 应用程序,它使用 MVC.net 身份提供程序 (IP-1) 进行身份验证。用户登录后,我需要从另一个应用程序(IP-2)获取一些额外的声明。我通过将 token 传递回 IP-2 来完成此操作,IP-2 能够读取 token 并在生成新 token 之前添加其他声明。

当我尝试将新 token 传递给 RP 时,问题就出现了,因为客户端已经通过 RP 进行了身份验证,因此新 token 及其声明将被忽略。

我想我想要做的事情解释如下,但我也意识到我对 WIF 的了解有点不稳定,所以我对事情应该如何运作的假设可能存在一些缺陷。

我的问题是,如何让 RP 使用新 token 重新进行身份验证?另外,是否有更好的方法来添加声明,而无需在 IP-2 应用程序中重新创建 token ?

Sequence Diagram

最佳答案

要接受新的 SAML token ,您需要清除 session Cookie,然后发送新的登录请求。但是……

将 SAML token 从 IP-1 发送到另一个 (IP-2) 从根本上违背了 SAML 和 WS-Fed 设计。 SAML token 适用于 RP。不应该发给别人!!如果 RP 的 SAML token 已加密,则 IP-2 甚至无法读取它。 (当然)没有标准方法将第一个 token 信息添加到第二个身份验证请求。

级联(第一个,然后另一个添加声明)是标准解决方案。在你的情况下,这听起来像是通过 IP-2 重定向到 IP-1。 IP-1 设定了其正常声明。 IP-2 添加其声明,然后最终返回给 RP。

关于c# - MVC.net 中的 WIF - 从第二个 IP 添加附加声明到 SAML token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28156267/

相关文章:

javascript - 如何使用自动完成下拉列表中的按钮进一步过滤已显示的结果

asp.net-mvc - 如何将 CSS 类名添加到 ASP.NET MVC 3 Url.Action 链接?

c# - 一个指导用户加法的程序

c# - 使用 ipv6 地址连接到使用 HttpClient 的服务器(使用 ipv6 地址定义 URI)修复 - 无效的 URI : Invalid port specified)

c# - 使用 Linq to XML 递归删除 xml 节点

c# - 在 ASP.net 中禁用日历控件的自动回发

c# - 在Messenger中注册方法时使用Action <T1,T2>

.net - 未为项目 '.sfproj' 设置 BaseOutputPath/OutputPath 属性

c# - Need Insight - 需要 webservice c# .net TO php mysql 的软件开发人员

c# - 在 Web API 中返回 JSON