C# AzureAd身份验证始终使用服务器的本地ip地址作为重定向url

C# AzureAd身份验证始终使用服务器的本地ip地址作为重定向url,c#,asp.net-core,azure-active-directory,C#,Asp.net Core,Azure Active Directory,我目前在远程服务器上使用公共URL时遇到AzureAd身份验证问题,如 我添加了AzureAd身份验证,包括以下内容: services.AddMicrosoftWebAppAuthentication(Configuration, "AzureAd") .AddMicrosoftWebAppCallsWebApi(Configuration, new string[] { GraphApiScopes.ScopeUserRead })

我目前在远程服务器上使用公共URL时遇到AzureAd身份验证问题,如

我添加了AzureAd身份验证,包括以下内容:

services.AddMicrosoftWebAppAuthentication(Configuration, "AzureAd")
            .AddMicrosoftWebAppCallsWebApi(Configuration, new string[] { GraphApiScopes.ScopeUserRead })
            .AddInMemoryTokenCaches();
只要我用URL运行软件https://localhost:5001 然后身份验证工作正常,并且回调是https://localhost:5001/signin-oidc

如果我现在正在使用重定向来访问软件,那么它工作得很好,但是回调将返回到https://local-ip-of-my-server/signin-oidc. 老实说,我完全不明白为什么它会将服务器的本地IP地址作为redirect_uri query参数发送到Microsoft的身份验证服务

当然,我现在将从Azure收到一条错误消息,告知回复URL与配置的回复URL不匹配,因为我的配置是针对和进行的https://localhost:5001/singin-oidc。 如果我现在添加https://local-ip-of-my-server/singin-oidc 作为应用程序注册中的重定向url,重定向回该IP效果良好,但当然在调用计算机上无法访问我服务器的本地IP

希望这是可以理解的,有人能够帮助我解决这个问题

您好

卢卡

问题解决了

它与.NET核心无关。。将请求转发到我的服务器时,防火墙未包含原始标头

该选项称为“传递主机头”

您好, 卢卡

问题解决了

它与.NET核心无关。。将请求转发到我的服务器时,防火墙未包含原始标头

该选项称为“传递主机头”

您好,
Luca

该错误是由于回复uri与应用程序中的重定向uri不匹配引起的。看这个。谢谢你的回复。老实说,我不确定这是否解决了我的问题,因为应用程序注册中的回复URL被设置为正确的一个“”,这是我想要的,只是用作redercet_URL。但是由于某些原因,.net会自动将服务器的本地ip填充到发送到login.microsoft.com的重定向url,因此它是安全的。这当然是错误的。您可以添加完整的url作为回复url吗?在开始时添加
https://
?不,很遗憾,不允许添加完整的url作为回调路径。我使用appsettings.json文件设置回调路径:“/singin oidc”如果我在那里添加完整的域,它会发送一条错误消息,说回调路径需要以“/”开头。错误只是因为回复uri与应用程序中的重定向uri不匹配。看这个。谢谢你的回复。老实说,我不确定这是否解决了我的问题,因为应用程序注册中的回复URL被设置为正确的一个“”,这是我想要的,只是用作redercet_URL。但是由于某些原因,.net会自动将服务器的本地ip填充到发送到login.microsoft.com的重定向url,因此它是安全的。这当然是错误的。您可以添加完整的url作为回复url吗?在开始时添加
https://
?不,很遗憾,不允许添加完整的url作为回调路径。我使用appsettings.json文件设置回调路径:“/singin oidc”如果我在那里添加完整的域,它会发送一条错误消息,说回调路径需要以“/”开头。嘿,你能提供一些详细信息吗。我正面临着一个确切的问题。嘿,你能提供更多的细节吗。我面临的正是这个问题。