Identityserver4 讯息;无法取消对消息的保护。状态为“;缩放IdentityServer 4时

Identityserver4 讯息;无法取消对消息的保护。状态为“;缩放IdentityServer 4时,identityserver4,Identityserver4,当运行IdentityServer4的单个实例时,我们可以成功地使用另一个身份提供程序登录。一旦我们创建了几个IdentityServer4实例,如果结果由不同的服务器处理,那么在用户进行身份验证后,相同的过程就会失败 即使ASP.NET Core DataProtection API已正确配置为在多服务器环境中运行,消息“无法取消保护message.State”也会写入日志。除了ASP.NET Core DataProtection之外,IdentityServer 4的某些组件还依赖于ASP

当运行IdentityServer4的单个实例时,我们可以成功地使用另一个身份提供程序登录。一旦我们创建了几个IdentityServer4实例,如果结果由不同的服务器处理,那么在用户进行身份验证后,相同的过程就会失败


即使ASP.NET Core DataProtection API已正确配置为在多服务器环境中运行,消息“无法取消保护message.State”也会写入日志。

除了ASP.NET Core DataProtection之外,IdentityServer 4的某些组件还依赖于ASP.NET Core分布式缓存。在我们的例子中,以下调用注册了一个依赖于
IDistributedCache
的组件:

services.AddOidcStateDataFormatterCache();
在默认实现中,使用内存缓存,这会导致问题。 删除该行后,IdentityServer4将在多服务器部署中工作

另一种方法是将分布式缓存配置为在所述的多服务器环境中工作