在请求中指定了带有Azure AD答复URL的ASP.NET Core Web App与配置的答复URL不匹配

时间:2019-05-15 03:05:01

标签: asp.net-core-2.1 azure-authentication

我正在尝试使用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": "*"
}

(请注意callbackPath)。这是根据我可以找到的文档。上次使用Azure AD身份验证时,我在应用程序设置中使用了回复URL,并且该URL必须与Azure AD中的回复URL相匹配。但是,此较新方法的文档说您必须将回调路径设置为/ signin-oidc吗?

我不太了解,但是我已经这样设置了,但是我无法在Azure AD应用程序注册中为此设置回复URL,因为它不接受此“部分”路径。它必须是完整的URL。我尝试过:

  • mysite.net(以callbackPath作为mysite.net)
  • mysite.net/index(以CallbackPath作为/ index)
  • mysite.net/signin-oidc(其中CallbackPath为/ signin-oidc”

但是在遇到挑战并获得Microsoft登录页面后,输入凭据后,我不断收到请求中指定的错误URL与配置为登录的答复URL不匹配。

我上一次使用ASP.NET Webforms执行Azure AD身份验证时,只是app.config以mysite.net作为回复URL,在Azure中将应用程序注册为mysite.net

1 个答案:

答案 0 :(得分:2)

解决方案分为2部分:

第1部分:确保appsettings.json中的CallBackUrl为/ signin-oidc,在Azure应用程序中注册为yoursite / signin-oidc

第2部分:确保将app.UseAuthentication()添加到startup.cs中的HTTP管道中