myr*_*yrx 44 c# wcf ws-security wif ws-federation
我正在尝试创建类似的东西:客户端验证并从自定义STS1获取令牌,下一个客户端使用机器密钥授权并在自定义STS2上获得令牌并获取另一个令牌.使用最后一个令牌,客户端请求RP服务上的方法.
所有服务都托管在IIS上,并且正在使用活动联合方案.两个STS都有ws2007Federation和ws2007Http绑定的端点,RP使用ws2007FederationBinding和STS2作为发行者.
如果我使用CreateChannelWithIssuedToken创建通道,我只能看到来自STS1的令牌,并且无法从STS2获取令牌.
所以我决定将STS1中的令牌作为ActAs RST的属性传递给STS2令牌.那失败了 - 无法解密令牌.
一般来说,您只想在每一步使用一个令牌。因此,如果您需要合并声明,您将需要在第二个 STS 的声明转换步骤中执行此操作。
因此,该流将使用 STS1 进行身份验证,然后使用 STS1 中的令牌向 STS2 进行身份验证。此时,您将遍历声明并进行转换以根据需要添加其他声明。然后生成的 Token 就可以从 RP 应用程序中使用了。
实际上,我已经开始了一个关于我们最近构建的非常相似的场景的博客系列。不要过度自我推销,但它不会让我赚到任何钱,所以我会发布它,以防它有帮助。
http://www.livingthearchitecture.com/mixing-sso-with-existing-technologies/
我很乐意更深入地进行讨论,但根据您的场景的具体情况,解决方案的具体情况将会发生很大的变化。我认为上面表达了您想要的一般方法。如果我还能提供帮助,请告诉我。