猿问

Azure AD /signin-oidc 404

我有一个 .NET Core 2.0 应用程序在带有 Linux 容器的 Kubernetes 集群中运行。在应用程序前面,我有一个 Nginx 反向代理,它设置了 LetsEncrypt、SSL 终止并将 http 转发到应用程序。


我的应用程序在本地成功进行身份验证和重定向(无反向代理),并基于此处的示例表单:https : //github.com/Azure-Samples/active-directory-dotnet-webapp-openidconnect-aspnetcore


部署后,此设置最初会导致应用程序尝试通过从https://my.domain.cloudapp.azure.com切换到http://my.domain.cloudapp.azure.com来对用户进行身份验证出现问题。结果我的回复 URL ( https://my.domain.cloudapp.azure.com/signin-oidc ) 没有被使用,我收到了一个错误。


我能够通过这里和这里的信息来解决这个问题,特别是我添加了:


app.UseForwardedHeaders(new ForwardedHeadersOptions

{

    ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto

});


app.Use(async (context, next) =>

{

    if (context.Request.Host.Host.ToLower() != "localhost")

      context.Request.Scheme = "https";

    await next.Invoke();

});

现在,当我访问https://my.domain.cloudapp.azure.com时,我会正确重定向到https://login.microsoftonline.com/。身份验证后,我被重定向回我的应用程序https://my.domain.cloudapp.azure.com但 OpenID Connect 身份验证中间件似乎没有处理 /signin-oidc 路由。我反而收到 404 错误。


有谁知道我做错了什么?


至尊宝的传说
浏览 287回答 1
1回答
随时随地看视频慕课网APP
我要回答