【问题标题】:ERR_TOO_MANY_REDIRECTS error in response of Azure AD v2.0 authentication响应 Azure AD v2.0 身份验证的 ERR_TOO_MANY_REDIRECTS 错误
【发布时间】:2017-10-12 07:35:18
【问题描述】:

我正在使用 Microsoft Graph 从 Node.js Web 应用程序中访问用户的 Microsoft 帐户数据,以调用其余 API。但是一旦身份验证完成,而不是返回ReturnURL,我在浏览器中得到ERR_TOO_MANY_REDIRECTS

下面是我正在使用的 Node 应用程序:

https://github.com/microsoftgraph/msgraph-sdk-javascript

正如我所见,访问令牌似乎存在冲突,并且由于该护照无法验证我的请求。

有人可以在这里帮助我吗,我在这里失踪了。我没有对应用程序进行任何重大更改。

如果有人需要更多信息,请告诉我。

谢谢。

【问题讨论】:

  • 您过去的代码示例仅演示了使用 Microsoft Graph SDK。您是如何使用 Azure AD 进行身份验证的?
  • 我使用apps.dev.microsoft.com创建了一个应用,然后配置了Client Id和Client Secret、redirectURL、IdentityMetaData。我在云端部署了我的应用程序以获取 https。我有我的组织帐户,因此使用我的组织帐户进行了身份验证。

标签: node.js azure-active-directory microsoft-graph-api


【解决方案1】:

我见过几个这样的例子。从您提供的有限信息中很难准确判断发生了什么,但以下是我过去看到的一些示例:

  • redirect_uri 指向自动将用户重定向回https://login.microsoftonline.com/common/oauth2/v2.0/authorize? 的端点。这会导致无限循环。

  • redirect_uri 正在返回一个 HTTP 3xx 状态,指示重定向(301302303307308)。

  • redirect_uri 指向检查已验证用户的页面。由于用户尚未经过身份验证(您有一个 authorization_code 但还没有一个 access_token),它会再次触发身份验证工作流程。

【讨论】:

  • 感谢马克的回复。我什么都不做,只是在 App Registration Portal 上创建了应用程序,并在 nodejs 应用程序中配置了凭据。
  • 正如你所说,下面是导致太多重定向的 url。当您说“用户尚未通过身份验证,但我在通过身份验证后重定向回 redirect_url 时,我不明白,不是吗?”。但我在下面的 url 中看不到授权码或 access_token。 "login.microsoftonline.com/organizations/oauth2/v2.0/…****&response_type=code&response_mode=query&client_id=****&state=****&nonce=****&scope=User.Read Mail.Send Files.ReadWrite openid&x-client-SKU=passport-azure -ad&x-client-Ver=3.0.8"
  • 还有一件事,我正在使用我的组织电子邮件 ID 进行身份验证,或者也使用它来创建应用程序。
  • redirect_uri 是什么或重定向到哪个 url?您可以在输入凭据后跟踪响应并查看应用是否正确处理响应。
  • 嗨飞,redirect_url 是 https://****/token 并且似乎身份验证失败,因此再次重定向到 login.microsoftonline.com/...网址。我还尝试了使用 PHP 平台的相同应用程序并获得相同的响应。那是在许可级别上要做的事情吗?我在我的应用程序中有 USER.Read 权限。如果是,那么我是否需要管理员授予某些必需的权限。我可以看到有两种类型的权限可以由用户或管理员授予。谢谢。
猜你喜欢
  • 2019-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-28
  • 2019-06-25
  • 1970-01-01
  • 1970-01-01
  • 2017-12-31
相关资源
最近更新 更多