天天看点

IdentityServer4 负载均衡配置

  在不用到负载之前,一切都很好,但是部署多个实例之后,问题挺多的:session问题、令牌签发后的校验问题。

在此之前,先自查官方文档:Deployment — IdentityServer4 1.0.0 documentation

把必要的东西都配置正确,然后继续排查。

   在需要经常需要与统一身份认证平台进行交互的情况(比如,A站点和B站点都是统一身份认证平台下的子系统,希望A站点登录后,在B进行登录的时候可以免登录的情形),建议不用继续使用sessionID,如果不需要,则存放在redis,实现分布式session也是选择。

  部署后启动:

然后在A站点登录之后,关闭A站点,启动B站点进行测试是否正常可以验证通过,会发现提示去登录,查看日志发现:

然后F12查看cookie已经被删除,讲白了就是AB两个站点并不互认,官方文档里面写着

我真想抽它鸭子的。

解决:

  因为ids4是有引用到微软库的一个 Microsoft.AspNetCore.DataProtection (数据保护参考:ASP.NET Core数据保护 | Microsoft Docs)所以可以不用引用,你需要引用一个包:

然后在使用:

就ok了,或者不想用StackExchangeRedis,就自己实现:

扩展:

引用

然后重新测试,会发现token已经校验通过:

坐等下班!

作者:EminemJK(山治先生)

出处:https://www.cnblogs.com/EminemJK/

您的支持是对博主最大的鼓励👍,感谢您的认真阅读。

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

IdentityServer4 负载均衡配置