首页 > 解决方案 > 请求中指定的回复 URL 与回复 URL 不匹配

问题描述

在开发期间为 Web 应用程序设置与 Microsoft Azure API 的连接时,我正在处理以下错误:

AADSTS50011: The reply URL specified in the request does not match the reply URLs configured for the application: 'b9c2d921-$$$$-$$$$-$$$$-$$$$$$$$$$$$'. More details: Reply address did not match because requested address had a trailing slash.

最初,我在此链接中发布了另一个错误,将平台配置从 SPA 更改为 Web 确实解决了它。

我已经在应用身份验证中设置了重定向 URL:

重定向网址

关于解决这个问题的任何想法?

标签: azureazure-active-directorymicrosoft-graph-api

解决方案


Cause: 

应用程序正在尝试针对 AAD 进行身份验证,但无法匹配它正在寻找的 URl。您在 AAD 中注册应用时可能没有提供正确的回复 URL,或者在重定向到 AAD 登录页面以允许用户输入凭据时,您没有指定正确的 URL 作为 URL 的 redirect_uri 查询参数。

如果您在 AAD 中的应用注册和 Web 应用程序中的两个位置配置相同/匹配的 URL,并确保清除缓存,则可以解决问题。

How to check if both URIs are same: 

您可以在错误屏幕的浏览器地址栏中看到登录/身份验证请求期间的回复 url/redirect uri(推荐使用 Chrome 或 Edge 浏览器)。如果是 SAML 请求,Assertion Consumer Service(ACS)-代表回复 url。

登录页面

例子:

在此处输入图像描述

Work arounds:

请按照以下步骤检查您在 AAD 中配置的回复 URL,同时遵循提到的方式,如果您希望在列表中添加新 uri,请添加其他 URL:

  • 登录到 portal.azure.com
  • 导航到左侧栏中的 Azure Active Directory > 应用注册 > 您的应用 > 身份验证 > 重定向 URI。

WAY1

删除重定向 uri 末尾的斜杠。尝试登录。

(因为请求中的回复 url 以“/”结尾,但在应用程序上配置的回复 url(上面错误中的客户端 ID)可能没有斜线结尾。)

WAY2:

查看两个 URI 是否具有相同的协议 (https://),因为 AAD 会将http://website.comhttps://website.com视为两个不同的 URL。

参考AAD 身份验证失败 - 应用程序的错误配置回复 URL | 微软文档

否则,建议您在 Azure 上重新配置 AAD 应用程序并设置一个或多个有效回复 URL。


推荐阅读