在ServiceStack中,我如何使用外部发布的JWT

时间:2017-01-19 22:10:51

标签: c# servicestack jwt claims-based-identity

我在带有设备和云服务的物联网类型项目上使用.net / mono上的c#工作。云服务使用IdentityServer3处理身份验证和声明,我已成功提供带有声明的令牌。

当用户尝试与其进行交互时,设备将不具有互联网连接,因此可以从云获取JWT令牌并将其传递给完全断开的系统。 JWT的签名密钥在配置时预先共享,因此它将能够验证令牌的完整性。

在servicestack中有JWT的支持但是我无法找到如何以填充AuthSession的方式传递带有请求的JWT令牌。任何人都可以提供以下指导:

  1. 如何配置ServiceStack来识别JWT内容的验证和解包,而不是发行者?我找不到这样的例子。我已经尝试过JsonClient .BearerToken和.SetTokenCookie无济于事。
  2. 如果1目前不可能,我可以挂钩提供的扩展点来创建所需的功能,如果可以的话,你可以指导我从哪里开始。

1 个答案:

答案 0 :(得分:1)

虽然ServiceStack包含它自己的JWT Auth Provider,但您应该使用发出令牌的相同库来在ServiceStack中处理它。因此,只有使用ServiceStack的内置JWT AuthProvider,如果它也被用于创建令牌。

如果您正在使用IdentifyServer,则可以签出此项目:

https://github.com/MacLeanElectrical/servicestack-authentication-identityserver/

或本指南:

http://estynedwards.com/blog/2016/01/30/ServiceStack-IdentityServer-Angular/

有关如何处理IdentifyServer颁发的令牌的示例。