无法成功验证来自 Microsoft Graph API 的访问令牌

菜鸟

我正在使用 Microsoft Graph API 和 Microsoft 身份验证库 (MSAL) 来获取访问令牌,我可以成功检索访问令牌、id 令牌和刷新令牌。我也可以成功验证id token但是,由于收到此错误,我无法对访问令牌执行相同操作

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

我已经尽可能地查看了有关此处验证的 microsoft 文档:Microsoft 身份平台访问令牌

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

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

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

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

Jim Xu

据我所知,我们不需要验证 Microsoft 图形签名。因为 MsGraph 认识到了提高用户安全性的机会。他们通过在 jwt 标头中放入一个“nonce”来实现这一点。JWS 用随机数的 SHA2 签名,nonce在 JWS 序列化之前被替换。要验证此令牌,nonce需要用nonce标头中的 SHA2 替换现在这可以改变,因为没有公共合同。因此,在调用 Microsoft Graph 时,您应该将访问令牌视为不透明的。有关更多详细信息,请参阅此处此处

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Microsoft Graph-用户API增量令牌

访问Microsoft Graph API的方法

获取Microsoft Graph和单个服务API终结点(Outlook REST API等)的访问令牌

为Microsoft Graph API获取有效的访问令牌

无法使用Microsoft Graph API访问共享点列表-

如何从节点脚本获取Microsoft Graph API访问令牌?

使用PHP从Microsoft Graph API获取访问令牌

Microsoft Graph API:省略用户访问令牌

Microsoft Graph API令牌验证失败

MS Graph API-访问令牌验证失败

Microsoft Graph API的访问令牌立即过期

Microsoft Graph无限/长期访问令牌

Microsoft Graph-获取访问令牌

microsoft-graph api:从图中的刷新令牌获取新的访问令牌,而无需重定向URL

Microsoft graph API:无法使用生成的访问令牌获取用户

Microsoft Graph API-无法访问单个消息(异常)

访问令牌验证失败Microsoft Graph API

Microsft Graph API访问令牌

使用访问令牌通过Microsoft Graph API与OneDrive进行交互

如何验证使用Microsoft Graph API生成的oauth令牌

Microsoft Graph API身份验证错误:“访问令牌验证失败。无效的受众”

Facebook Graph API:无法访问授权令牌

Azure AD Graph API无法访问Microsoft帐户

从 Microsoft Graph API 接收访问令牌但不接收刷新令牌

Microsoft Graph API - 无法刷新访问令牌

如何使用 ajax 调用获取 Microsoft Graph API 访问令牌

无法获取 Microsoft Graph OAuth 访问令牌

从 Microsoft Graph for Azure 获取访问令牌

无法针对 Microsoft Graph API 颁发的令牌验证 Azure AD B2C 的签名