在我的应用程序前面添加 NGNIX 代理后,我在身份服务器 4 上遇到了奇怪的错误。
在回调端点上成功验证后,它无法验证伪造 token 。
奇怪的部分是整个场景适用于我在 .net 核心应用程序启动时播种的用户。但是对于通过我的 API 创建的新的失败。
任何想法或教导表示赞赏。
最佳答案
由 ASP.NET 核心发布的 session cookie 使用数据保护 API 进行加密。
用于签署 cookie 的 key 存储在 key 环中。如果您现在重新部署应用程序并且没有正确配置它,那么将在新的 key 环中发布新的加密 key 。
如果无法找到用于加密 cookie 的 key ,则意味着无法再解密所有客户端浏览器中的现有 session cookie。
请参阅有关此 API 的 article 和有关如何配置它的 article。
这适用于您的 IdentityServer 和客户端应用程序,因为它们都使用数据保护 API,因此两者都需要有一个永久的 key 环。当您重新部署容器时,除非您将 key 环放置在文件系统上的某个永久卷中或以其他方式将其持久化,否则 key 环将丢失。 API 支持很多地方存储 key 环,包括数据库、redis、Azure Key Vault..
关于.net - 在 key 环中找不到 key 。无法验证 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63316682/