我有一个 WCF 服务,它是使用 WIF 构建的自定义 STS 的依赖方。我的 STS 向我的客户端应用程序颁发密钥持有者令牌。我创建了一个新的“后端”WCF 服务,我需要从现有的“前端”服务中调用它。 如何在前端服务中使用传入的安全令牌来调用后端服务,而无需从 STS 检索新令牌?
到目前为止,在我的前端服务中,使用自定义 Saml11SecurityTokenHandler 访问传入的 SamlSecurityToken 没有问题。
之后,我尝试了两种不同的方法将带外令牌附加到目标后端服务上的服务调用:
- 创建自定义 IssuedSecurityTokenProvider
- 使用 ChannelFactoryOperations.CreateChannelWithIssuedToken
但是,这两种尝试都会导致错误。据我所知,这似乎是同样的死胡同——他们不接受签名的 SamlSecurityToken。似乎即使这两种方法都接受基本 SecurityToken 类,但它们都只有在给定 GenericXmlSecurityToken 实例而不是 SamlSecurityToken 时才起作用。
更新 2:在做了更多研究之后,我能找到的最接近的东西是一篇关于使用WIF/ADFS 的身份委托的文章,它基本上只使用 ActAs 令牌,其中前端服务将使用它的令牌向 STS 发出请求从客户端应用程序接收。这需要对我们的自定义 STS 进行更新,我们希望此时不要这样做。我开始怀疑我在图表中说明的方法是否对 WIF 或 WS-Trust 有效?