【问题标题】:asp.net core with Azure authentification and azure load balancer具有 Azure 身份验证和 azure 负载均衡器的 asp.net 核心
【发布时间】:2020-01-18 10:49:43
【问题描述】:

我正在使用常规 Azure Active Directory 身份验证的 Asp.Net Core MVC 站点。身份验证在我们的正常环境中运行良好,但现在我们希望将 WebApp 放入 azure 高可用性集和负载均衡器中(WebApp 托管在 Azure 中 VM 上的 IIS 上)。

如果我只在服务器上运行并且负载均衡器将所有请求发送到一个服务器,每个都运行良好,但是如果我启动两个服务器并且负载均衡器将请求发送到两个服务器,我会收到错误。

HTTP 错误 404

https://mydomain/AppName/signin-oidc

找不到

那么,为什么我的服务器不能使用这个正常的 OpenId Connect 重定向 URL? 我应该使用不同的 Middelware 来处理 Azure AD /OpenId Connect 身份验证吗?

public void ConfigureServices(IServiceCollection services)
{
  ...

  services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
                .AddAzureAD(options => Configuration.Bind("AzureAd", options));
  ...
}

感谢您的帮助

【问题讨论】:

    标签: authentication asp.net-core azure-active-directory openid-connect azure-load-balancer


    【解决方案1】:

    Azure 负载均衡器在第 4 层运行。它不维护基于 cookie 的会话。 Azure 负载均衡器使用基于哈希的路由方法,因此您会得到 404,因为它将经过身份验证的请求路由到不同的服务器。

    您可以考虑使用作为第 7 层负载平衡器的应用程序网关,您可以在其中启用基于 cookie 的关联性来维护您的会话。

    【讨论】:

    • 谢谢,我在应用程序网关上选择了这个设置选项,但我们为我们的 UI 使用了一种解决方法。我们在应用程序网关上使用了一个 Base-Path,它只指向服务器。
    猜你喜欢
    • 1970-01-01
    • 2018-07-06
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多