【发布时间】:2017-08-15 18:48:03
【问题描述】:
首先请原谅我的英语不好。
我是 oauth2 的新手,我正在尝试使用 JWT 令牌设置授权服务器。
服务器在 Owin 自托管环境中运行。
此时我已经设置了令牌生成并且它似乎可以正常工作,我还设置了刷新令牌提供程序并且它似乎可以工作(但这只是一个最小的实现);我没有更改 OAuthAuthorizationServerOptions 中的 RefreshTokenFormat 将其保留为默认格式(我不知道默认格式是什么),因此访问令牌显然是 JWT 令牌,而刷新令牌是别的东西。
所有这些似乎都可以正常工作,但我需要在微服务环境中运行此授权服务器,因此授权服务器服务可能随时从一台机器移动到另一台机器,因此它需要是无状态的或在至少将所需信息保存在共享存储 (DB) 或复制的本地存储(我在 Service Fabric 上)或某种分布式缓存中。
测试我注意到,如果我在一台机器上生成一个刷新令牌,然后我尝试在授权服务器的另一个实例(另一台机器上)上使用这个刷新令牌来获取一个新的访问令牌,它会失败一个通用的 invalid_grant 错误。我的猜测是身份验证服务器只是在内存中保留了一些与令牌相关的信息,但我不知道具体是什么以及如何。
我也希望有人指出我解决此问题的正确方向。
非常感谢。
【问题讨论】:
标签: c# .net oauth-2.0 owin jwt