gpt4 book ai didi

Azure AD 在有效访问 token 上返回 Authentication_ExpiredToken

转载 作者:行者123 更新时间:2023-12-03 17:44:20 25 4
gpt4 key购买 nike

我收到您的访问 token 已过期。请在提交请求之前续订。当我调用 https://graph.windows.net/myorganization/oauth2PermissionGrants?api-version=1.5 端点时。

为了防止出现任何愚蠢的问题 - 是的,我知道建议使用 Microsoft Graph 而不是 Azure AD Graph。我知道它并且我正在使用它。但对于我当前的情况,我需要准确请求 Azure AD Graph

测试用例:

  1. 我成功登录 https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=.... 并获取 code在回复中。
  2. 我在 https://login.microsoftonline.com/common/oauth2/v2.0/token 上成功交换代码并获取access_token >.
  3. 我成功向任何 Microsoft Graph 端点(即 https://graph.microsoft.com/education/me/classes)发出请求。
  4. 我调用 https://graph.windows.net/myorganization/oauth2PermissionGrants?api-version=1.5
  5. 我收到错误Authentication_ExpiredToken 您的访问 token 已过期。请在提交请求之前续订。
  6. 我成功向任何 Microsoft Graph 端点发出请求,因此 access_token 有效。

基于这篇文章:https://learn.microsoft.com/azure/active-directory/develop/active-directory-appmodel-v2-overview ,我可以使用此访问 token 访问 Microsoft Graph API 以及 Azure AD Graph API

所以,我正在使用 v2.0,它应该适用于:https://learn.microsoft.com/azure/active-directory/develop/active-directory-protocols-oauth-code .

我做错了什么?

谢谢!

最佳答案

用于调用 Microsoft Graph 的 token 不能用于调用 Azure AD Graph API。

当您查看 Azure AD 中的访问 token 时,有一个名为 aud 的参数,代表“受众”。此属性告诉接收 token 的 API 该 token 的有效受众。

如果我拥有一个 API“WebAPI1”,并且我获得了一个 token ,其中受众是其他内容,例如“WebAPI2”,我应该拒绝该 token ,并且不向客户端提供对我的 API 的访问权限。此行为的原因应该是显而易见的,但如果不进行此检查,则会导致重大安全问题。

Microsoft Graph 的 aud 值是 https://graph.microsoft.com/,而 Azure AD Graph API 的 aud 值是 https://graph.microsoft.com/https://graph.windows.net/

请求访问 token 时,您需要使用 scopes 参数指定您想要 token 的特定资源。可以找到此信息和更多信息 here .

这里的解决方案是为不同的 API 获取不同的访问 token ,您的问题应该得到解决。

请告诉我这是否有帮助!

关于Azure AD 在有效访问 token 上返回 Authentication_ExpiredToken,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49192583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com