0

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

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

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

4

2 回答 2

0

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

于 2013-07-09T15:40:14.433 回答
0

如果 RP 是 WCF,那么是的.. 绑定都负责这一点。如果 RP 是其他东西(例如 HTTP/REST 服务),则由您和您的协议来发送它。所以是的,您可以将其作为 HTTP 标头发送。然后,RP 需要知道如何查找令牌并对其进行验证。这在今天的 WebAPI 中不存在,因此您可以使用 Thinktecture IdentityModel 安全库来接受和验证 HTTP 标头中的令牌:

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

于 2013-07-08T22:18:23.177 回答