【问题标题】:AADSTS50011: The reply url specified in the request does not match the reply urls configured for the application: '<AppId>'AADSTS50011:请求中指定的回复 url 与为应用程序配置的回复 url 不匹配:'<AppId>'
【发布时间】:2018-10-05 07:20:06
【问题描述】:

我有一个 .NET Core 2 应用模板,该模板配置为使用开箱即用的 Azure AD。

配置是:

{
  "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"
    }
  }
}

在我的门户中,我有一个 Azure 应用注册,其 ID 与 ClientId 相同。回复网址为[APP-URL]/signin-oidc

只有在我将回复 URL 设置为 [LocalhostURL]/signin-oidc 时,localhost 应用程序才能工作,即使我已经了解到该配置不应影响在 localhost 上的登录。

Azure 应用在任何情况下都不起作用。

在这两个应用程序中,当它不起作用时,我收到此错误:

AADSTS50011:请求中指定的回复 url 与 为应用程序配置的回复 url: '50819a7a-e018-4c1d-bf0a-18c8fce5c600'

  1. localhost 应用不需要配置回复 URL 是否正确?

  2. 为什么会出现“未配置回复 url”错误?

【问题讨论】:

  • 将应用程序发布到 Azure Web 应用服务后,回复 url 应该是&lt;appURL&gt;/signin-oidc。这是一个新的 AAD 应用吗?
  • 是的,它是新的。我没有改变任何东西。
  • 这很奇怪。您使用的是哪个样品?我会为此做一个深入的测试。
  • 谢谢!我选择了 Net Core 2 MVC Application With Authentication set to work, single organization.
  • 哦,我猜这不可能。这是一个dl链接。 drive.google.com/file/d/11fQ0UiQWELF7L4Z6aOsU1P_YCFsgHq0k/…

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


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        您可以参考this Sample 重新构建您的 .NET core App 并发布到 Azure。

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

        1. 您需要将端口从 5000 更改为有效端口。目前应该是 61659。因此,当您在 localhost 中进行测试时,您可以在 AAD 应用程序中将回复 URL 设置为 http://localhost:61659/signin-oidc

        2. 如果您将应用程序配置为生产使用,或者如果您将应用程序发布到 Azure Web 应用程序,则更新这些 URL,您应该将应用程序配置文件和 AAD 应用程序中的回复 URL 更改为 &lt;AppURL&gt;/signin-oidc

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

        【讨论】:

        • 好的,所以不能同时为 localhost 和 Azure Web App 配置它?
        • 现在可以了。本地主机和天蓝色。我添加了两个回复 URL:s。在您的示例中,我添加了 localhost:61659/signin-oidcMyapp.azurewebsites.net/signout-oidc,现在我可以在 azure 应用程序和 localhost 中在线登录。
        • 是的,您不能在回复 URL 中添加不同的域,但您可以添加 localhost。当您将应用程序发布到 azure 时,您无需在 Azure 中配置 localhost。如果您还想要要使用本地主机登录,您只需在回复网址中添加本地主机
        • 嗨@whihathac,你可以在这里看到限制:docs.microsoft.com/en-us/azure/active-directory/develop/…
        • 这个答案没有意义。您没有在答案中的任何地方说您需要更改什么文件。我目前没有看到任何具有端口的文件。
        【解决方案5】:

        如果你使用 React-Native。可以查看门户网站:https://portal.azure.com/

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

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

        请参考下图。

        enter image description here

        【讨论】:

        • 您的图片未显示
        【解决方案6】:

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

        【讨论】:

          【解决方案7】:

          小事,但在 Web 租户中,在自定义域设置中 HTTPS Only 选项应根据站点使用的 URL 打开。我遇到了同样的问题,在登录时,redrect_uri=http://sitename 被连接而不是 https。启用此选项解决了我的身份验证问题。

          【讨论】:

          • 这个选项在哪里?我是天蓝色的门户?
          • 是的。在 web tentant 中,设置/自定义域仅 HTTPS 设置可以处理此问题。
          【解决方案8】:

          在某些情况下,天蓝色会在 url 上使用“www”,即使您在没有“www”的情况下指定门户网站上的 url。在 redirectUri 变量中使用“https://www.mysite.co/signin-oidc”而不是“https://mysite.co/signin-oidc”。

          【讨论】:

            【解决方案9】:

            确保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();
            

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

            【讨论】:

              【解决方案10】:

              我在 .NET 4.6.1 Web 应用程序中遇到了类似的问题。 我必须在 Azure 中为我的应用配置回复 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

              【讨论】:

              • 我同意你的解决方案,'/.auth/login/aad/callback'
              • /.auth/login/aad/callback 似乎是硬编码的重定向路径 AzureAD/Microsoft 登录提供程序将在成功登录时重定向到。如果您的回复 URL 中没有 https://${yoursite}/.auth/login/aad/callback,则使用 Microsoft 在线登录将引发错误 AADSTS50011。
              • 添加 https://${yoursite}/.auth/login/aad/callback 作为 RedirectURI 是诀窍!
              猜你喜欢
              • 2020-12-25
              • 1970-01-01
              • 2020-07-12
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多