Azure 应用程序网关导致会话消失

Azure 应用程序网关导致会话消失

我们已经进行了如下设置:

  • Linux 容器 Web 应用(单实例)
  • 带有passportjs + openid的Nodejs服务器
  • 外部身份验证(OpenID)提供商。

如果直接联系前端(通过 .azurewebsites.net),身份验证将按预期工作并且会话正常进行。

然后我们配置了一个新域,它指向应用程序网关并重定向到 Web 应用程序。现在 UI 本身已加载,但是,登录后,应用程序会“忘记”用户已登录。

查看响应 cookie,我们发现appSessioncookie 在第一次登录重定向后立即消失。

怎样才能解决这个问题?我已经看到可以启用基于 cookie 的亲和性,但据我所知,如果我有多个 UI 实例,这是否有意义?

答案1

最可能的原因是您必须启用基于 Cookie 的亲和性

  1. 登录 Azure 门户。
  2. 在左侧导航窗格中,单击“所有资源”。单击“所有资源”边栏选项卡中的应用程序网关名称。如果所选订阅中已有多个资源,则可以在“按名称筛选…”框中输入应用程序网关名称,以轻松访问应用程序网关。
  3. 选择设置下的 HTTP 设置选项卡。
  4. 选择 HTTP 设置,然后在添加 HTTP 设置页面上,检查是否启用了基于 Cookie 的亲和性。 在此处输入图片描述

更多的排查 Azure 应用程序网关会话相关性问题Troubleshoot Azure Application Gateway session affinity issues

希望这可以帮助!

相关内容