我正在尝试使用 ASP.NET Core 2.1 并使用 Azure AD 保护 Web 应用程序。我的应用程序设置如下:
{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"Domain": "xxxx.onmicrosoft.com",
"ClientId": "xxxxx",
"TenantId": "xxxxx",
"ClientSecret": "xxxxx",
"CallbackPath": "/signin-oidc"
},
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*"
}
(注意回调路径)。这是根据我可以找到的文档。当我上次使用 Azure AD 身份验证时,我在应用程序设置中使用了回复 URL,这必须与 Azure AD 中的回复 URL 匹配。然而,这个新方法的文档说您必须将回调路径设置为/signin-oidc ?
我不太明白,但我已经这样设置了,但是我无法将 Azure AD 应用程序注册中的回复 URL 设置为此,因为它不接受此“部分”路径。它必须是完整的 URL。我试过:
- mysite.net(callbackPath 为 mysite.net)
- mysite.net/index(CallbackPath 为/index)
- mysite.net/signin-oidc(回调路径为/signin-oidc”
但是,当发生质询时,我不断收到请求中指定的错误 URL 与为登录配置的回复 URL 不匹配的错误 URL,并且出现了 Microsoft 登录页面。
当我上次使用 ASP.NET Webforms 进行 Azure AD Auth 时,只是 app.config 将 mysite.net 作为回复 URL,并在 Azure 中将应用程序注册为 mysite.net
最佳答案
解决方案分为两部分:
第 1 部分:确保 appsettings.json 中的 CallBackUrl 为/signin-oidc,并且在 Azure 应用注册中为 yoursite/signin-oidc
第2部分:确保将app.UseAuthentication()添加到startup.cs中的HTTP管道
关于asp.net-core-2.1 - 请求中指定的 Azure AD 回复 url 的 ASP.NET Core Web 应用与配置的回复 url 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56141221/