gpt4 book ai didi

azure - 无法成功验证来自 Microsoft Graph API 的访问 token

转载 作者:行者123 更新时间:2023-12-03 04:48:42 25 4
gpt4 key购买 nike

我正在使用 Microsoft Graph API 和 Microsoft 身份验证库 (MSAL) 来获取访问 token ,并且我可以成功检索访问 token 、ID token 和刷新 token 。我还可以成功验证 id token 。但是,我无法对访问 token 执行相同的操作,因为我收到此错误:

raise InvalidSignatureError('Signature verification failed')
jwt.exceptions.InvalidSignatureError: Signature verification failed

我已尽可能详细地查看了有关验证的微软文档: Microsoft identity platform access tokens

对于验证,我可以使用 jwt.ms 站点进行 jwt 验证成功解码。所以我知道代币很好。我可以从解码声明中看到并提取 aud(受众)和 iss(发行人)。这些值与 id token 不同(我可以成功验证)。

我正在使用记录中的以下网址中的公钥:

https://login.microsoftonline.com/<TENANT ID>/discovery/keys

那么,我在验证访问 token 方面缺少什么? (如果我可以毫无问题地验证 id token )。我还能如何解决此问题?

最佳答案

吉姆的答案是正确的,并且确实有 2 个用例 - 所以这取决于您想要做什么:

  • 获取 Microsoft 资源(例如 Graph)的访问 token ,在这种情况下您无需验证它们

  • 获取您自己的 API 资源的 token ,在这种情况下您需要验证它们。为此,您需要“公开 API 范围”以获取不同类型的访问 token

在我看来,行为并不直观,因为我喜欢构建基于标准的解决方案。如果有帮助,这里是 visual blog post of mine让上面的第二个场景工作起来。

关于azure - 无法成功验证来自 Microsoft Graph API 的访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63941878/

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