活动客户端将SAML令牌传递给依赖方的标准方法是什么?

时间:2013-07-08 21:03:26

标签: asp.net ios wcf wif

我有一个移动客户端(iOS)和一个Web服务(WCF,.NET 4.5),我使用Windows Identity Foundation和SAML令牌保护它。我让我的客户端从自定义STS请求SAML令牌,一旦我的依赖方拥有该令牌,我就可以对其进行反序列化并验证其声明。

但是,我不确定是否有标准方法将令牌从客户端发送给依赖方?我猜这个令牌应该在每个请求的标题中,但是在传递这种类型的令牌时是否有一个共同的头或cookie名称?

我可以看到你希望它在所有情况下都有所不同,以防多个令牌来回传递,但我想知道这样做的标准是什么。

2 个答案:

答案 0 :(得分:0)

如果RP是WCF,那么是..绑定都会解决这个问题。如果RP是其他东西(例如HTTP / REST服务),则由您和您的协议发送它。所以,你可以将它作为HTTP标头发送。然后RP需要知道查找令牌并验证它。这在WebAPI中现在不存在,因此您可以使用Thinktecture IdentityModel安全库来接受和验证HTTP标头中的标记:

http://thinktecture.github.io/Thinktecture.IdentityModel.45/

答案 1 :(得分:0)

更合乎逻辑的做法是传递一个JWT令牌(nuget上有一个正式的Microsoft实现)。它们更小,更易于在非.NET客户端上处理(例如JavaScript ...)。由于它们较小,您可以在http标头中传递它们;通常是“授权空间承载空间编码的JWT令牌”。在你wep api中你需要一个httpfilter来解释这些数据并授权或拒绝这个调用。 当然,您可以使用SAML令牌执行相同操作。您将需要以某种方式对其进行编码,这将大大增加您的通信规模。