C# 基于无状态.NET JWT的oauth2身份验证服务器

C# 基于无状态.NET JWT的oauth2身份验证服务器,c#,.net,oauth-2.0,owin,jwt,C#,.net,Oauth 2.0,Owin,Jwt,首先请原谅我英语不好 我是oauth2的新手,我正在尝试使用JWT令牌设置授权服务器 服务器正在Owin自托管环境中运行 目前,我已经设置了令牌生成,它似乎工作正常,我还设置了刷新令牌提供程序,它似乎工作正常(但这只是一个最小的实现);我没有在OAuthAuthorizationServerOptions中更改RefreshTokenFormat,将其保留为默认格式(我不知道默认格式是什么),因此访问令牌显然是一个JWT令牌,而刷新令牌是其他的 所有这一切似乎都正常工作,但我需要在microse

首先请原谅我英语不好

我是oauth2的新手,我正在尝试使用JWT令牌设置授权服务器

服务器正在Owin自托管环境中运行

目前,我已经设置了令牌生成,它似乎工作正常,我还设置了刷新令牌提供程序,它似乎工作正常(但这只是一个最小的实现);我没有在OAuthAuthorizationServerOptions中更改RefreshTokenFormat,将其保留为默认格式(我不知道默认格式是什么),因此访问令牌显然是一个JWT令牌,而刷新令牌是其他的

所有这一切似乎都正常工作,但我需要在microservices环境中运行此授权服务器,因此授权服务器服务可能随时从一台机器移动到另一台机器,因此它需要是无状态的,或者至少在共享存储(DB)或复制的本地存储上保存所需的信息(我在服务结构上)或某种分布式缓存

测试中我注意到,如果我在一台机器上生成一个刷新令牌,然后我尝试在授权服务器的另一个实例(另一台机器上)上使用这个刷新令牌要获取一个新的访问令牌,它会失败,并出现一个通用的无效授予错误。我猜身份验证服务器只是在内存中保留了一些令牌相关的信息,但我不知道具体是什么以及如何保存的

我也希望有人能为我指出解决这个问题的正确方向


非常感谢。

我也使用JWT令牌作为刷新令牌解决了这个问题。 这样,身份验证服务器似乎完全无状态