在WCF / WIF中,如何合并来自两个不同客户端的自定义sts令牌的声明

我试图创build类似于:客户端authentication并从自定义STS1获取令牌,下一个客户端使用机器密钥授权,并在自定义STS2上发出令牌,并获得另一个令牌。 用最后一个令牌,客户端请求RP服务的方法。

所有服务均在IIS上进行托pipe,并使用主动联合scheme。 两个STS的terminal都使用ws2007Federation和ws2007Http绑定,RP使用ws2007FederationBinding作为发行者。

如果我用CreateChannelWithIssuedToken创build通道,我只能看到来自STS1的令牌,不能从STS2获取令牌。

所以我决定把STS1的令牌作为ActA RST的属性传给STS2令牌。 那失败了 – 不能解密令牌。

  1. 我怎样才能将这两个标记传递给STS2并将它们合并起来?
  2. 是不是一个好主意 – 用RST发送刚刚从STS1令牌提取的声明?

一般来说,你只需要在每一步使用一个令牌。 所以如果你需要合并索赔,你会想在第二个STS的索赔转换步骤。

所以stream程将通过STS1进行authentication,然后用来自STS1的令牌进行STS2authentication。 在这一点上,您将通过索赔并转换为根据需要添加额外的索赔。 然后得到的令牌将准备好从RP应用程序消耗。

我实际上已经开始了一个关于我们最近构build的非常类似的情景的博客系列。 不要过分自我推销,但不会让我有钱,所以我会张贴它,以防万一它有帮助。

http://www.livingthearchitecture.com/mixing-sso-with-existing-technologies/

我很乐意深入,但根据您的情况的具体情况,解决scheme的细节将发生很大的变化。 我认为上面expression了你想要的一般方法。 让我知道,如果我可以再帮助。