AADSTS50011:请求中指定的回复网址与为应用程序配置的回复网址不匹配:&#39; <appid>&#39;

时间:2018-04-24 22:42:00

标签: azure-active-directory asp.net-core-2.0

我有一个.net core 2 app模板,配置为开箱即用的azureAD。

配置

{
  "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "Domain": "lautaroarinolive.onmicrosoft.com",
    "TenantId": "67cb2dfd-ebd5-40d8-829b-378340981a17",
    "ClientId": "50819a7a-e018-4c1d-bf0a-18c8fce5c600",
    "CallbackPath": "/signin-oidc"
  },
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  }
}

在我的门户网站中,我有一个与ClientId具有相同ID的azure app注册。它有回复网址[APP-URL] / signin-oidc

enter image description here

如果我设置为回复URL [LocalhostURL] / signin-oidc,localhost应用程序只能工作,即使我知道配置不应该影响localhost上的登录。

azure app在任何情况下都不起作用。

在两个应用中,当它无法正常工作时,我会收到错误:

  

AADSTS50011:请求中指定的回复网址与   为应用程序配置的回复网址:   &#39; 50819a7a-e018-4c1d-bf0a-18c8fce5c600&#39;

1)localhost应用程序不需要配置的回复URL是否正确? 2)为什么我没有配置&#34;回复网址&#34;错误?

11 个答案:

答案 0 :(得分:4)

您可以参考this Sample重建.NET核心应用并发布到Azure。

您需要注意一些注意事项:

  1. 您需要将端口从5000更改为有效端口。目前,它应该是61659。因此,当您在本地主机中进行测试时,您可以使用http://localhost:61659/signin-oidc

  2. 在AAD应用中设置回复网址。
  3. 如果您将应用程序配置为生产用途,则更新这些URL;如果您将应用程序发布到Azure Web App,则应将App配置文件和AAD Applicaiton中的回复URL更改为<AppURL>/signin-oidc < / p>

  4. 例如,https://www.contoso.com/signin-oidchttps://Myapp.azurewebsites.net/signout-oidc

答案 1 :(得分:2)

.NET 4.6.1 Web应用程序遇到类似的问题。 我必须以与接受的答案类似的方式,以天蓝色为我的应用程序配置“回复URL”,但是回调URL不同。

Select Azure Active Directory -> App Registrations -> <your app>
Select Settings -> Reply URLs

添加您的应用程序URL +'/.auth/login/aad/callback' 例如: https://somesite.azurewebsites.net/.auth/login/aad/callback

答案 2 :(得分:1)

在您的 Microsoft 登录页面中检查您的重定向 uri

redirect_uri=https://localhost:8443/login&response_type=code&scope=openid%20profile&state=7GsiHb

enter image description here

并确保您在已注册的应用程序中添加了相同的 URI 以重定向 URI 列表(Active Directory -> 应用程序注册 -> 您的应用程序)。正如其他答案中提到的,可能需要将支持的帐户类型更改为“多个组织”。

enter image description here

enter image description here

答案 3 :(得分:0)

确保services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);必须在身份验证配置下。

services.AddAuthentication(options =>
            {
                options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
                options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
            })
                .AddOpenIdConnect(options =>
                {
                    options.Authority = "";
                    options.ClientId = "";
                    options.ResponseType = OpenIdConnectResponseType.IdToken;
                    options.CallbackPath = "";
                    options.SignedOutRedirectUri = "";
                    options.TokenValidationParameters.NameClaimType = "name";
                })
                .AddCookie();

由于在AddMvc()扩展方法之前添加了AddAuthentication(),因此我遇到了同样的错误。

答案 4 :(得分:0)

除了“身份验证”设置中的回复网址外,另一个设置是“支持的帐户类型”(创建后为只读)。

创建APP注册时,应选择以下选项 You should choose option as below when you created APP Registration

然后,您应该具有以下帐户类型 Then you should have the account type as below

相反,它不起作用 Rather than this, it doesn't work

答案 5 :(得分:0)

在某些情况下,即使您在门户网站上指定不含“ www”的网址,也一定要在网址上使用“ www”。在您的redirectUri变量中使用“ https://www.mysite.co/signin-oidc”而不是“ https://mysite.co/signin-oidc”。

答案 6 :(得分:0)

很小,但是在Web租户中,在自定义域设置中,应根据站点使用的URL启用“仅HTTPS”选项。我遇到了同样的问题,因为在登录时,redrect_uri = http://sitename是串联的而不是https。启用此选项解决了我的身份验证问题。

答案 7 :(得分:0)

如果您是从AAD登录,则应使用app-base-url / sigin-aad。

答案 8 :(得分:0)

如果您使用React-Native。能够检查Web门户:https://portal.azure.com/

iOS:{YOUR_BUNDLE_IDENTIFIER}:// {{OUR_BUNDLE_IDENTIFIER} / ios / callback

Android:{YOUR_APP_PACKAGE_NAME}:// {{OUR_APP_PACKAGE_NAME} / android / callback

请参考下图。

enter image description here

答案 9 :(得分:0)

刚刚遇到同样的错误。我的应用程序是一个 .NET 5 ASP.NET Core 应用程序,它在 Web 应用程序内的 Linux docker 容器中运行。使用 Fiddler 进行故障排除表明,在对 login.microsoft.com 的调用中,redirect_uri 查询字符串变量的值以“http://”而不是“https://”开头,尽管我尝试强制执行 TLS - 仅在网络应用程序本身上。这导致 URL 不匹配和错误 AADSTS50011。

在 Web 应用程序上设置环境变量 ASPNETCORE_FORWARDEDHEADERS_ENABLED=true 已解决该问题。微软在此处记录了它:https://devblogs.microsoft.com/aspnet/forwarded-headers-middleware-updates-in-net-core-3-0-preview-6/

答案 10 :(得分:0)

对我来说唯一的解决方案:在 Azure 门户 https://portal.azure.com 中,导航到“应用程序注册”-> 选择您的应用程序 -> 从左侧边栏菜单中的“身份验证”->“移动和桌面应用程序”重定向 URI -> 并点击“添加 URI” -> 输入以下内容

<块引用>

ms-appx-web://microsoft.aad.brokerplugin/{Your_Application's_Client_ID}

示例:ms-appx-web://microsoft.aad.brokerplugin/5r3257qe-7jci-3501-38k0-3791h90542m7