首页 > 解决方案 > 负载平衡 IdentityServer4 时未找到端点条目

问题描述

我正在尝试使用 docker 容器设置本地 nginx 负载平衡 IDS(使用混合模型和 HTTPS)。

如果我将 IDS 缩放到 1,我可以成功登录。

当我使用循环样式平衡扩展到 2 或更多时,我在尝试登录时被重定向到登录页面。

初始登录尝试命中 IDS1,然后登录的第二个请求部分命中 IDS2,这将返回以下错误:No endpoint entry found for request path: /Account/Login [IdentityServer4.Hosting.EndpointRouter]

我已经验证了两个 IDS 都已启动并正在运行,如果我点击发现文档,我可以看到 nginx 轮询它,并且每次都能获得成功的结果。

编辑:我不再收到错误消息,但是当我尝试登录进入 IDS2 的登录的第二个请求部分时,仍然表现得好像我不是在登录过程中并带我进入登录页面。

标签: asp.net-corenginxhttpsload-balancingidentityserver4

解决方案


您需要配置数据保护 API 并在两个服务中设置相同的密钥,否则 ASP.NET 将不会接受来自其他服务的 cookie。密钥用于保护和加密 cookie。

为了了解数据保护 API,我最近编写了这个参考项目

  • AzureKeyVaultKeyRingRepository 目的是演示和展示如何在 Azure Key Vault 中存储 ASP.NET Core Data Protection API 密钥环。(即将发布博文)

在此处阅读有关数据保护 API 的更多信息


推荐阅读