当前位置: 首页 > 知识库问答 >
问题:

JWT令牌的签名无效-Azure Spring Boot

巫马庆
2023-03-14

我正在使用Azure AD对spring boot应用程序进行用户身份验证。我创建了一个应用程序来获取登录用户的访问令牌(令牌创建者应用程序)。在此应用程序中,“/token”API从@RegisteredAuth2AuthorizedClient读取访问令牌,并返回与响应相同的令牌。

然后,我必须使用返回的令牌作为RESTAPI的承载令牌,用于具有相同客户端id和相同配置的另一个应用程序。

但当我使用该访问令牌时,它给了我以下错误:

承载错误=“无效令牌”,错误描述=“尝试解码Jwt时出错:已签名Jwt已拒绝:无效签名”,错误uri=”https://tools.ietf.org/html/rfc6750#section-3.1"

我在JWT中检查了JWT令牌。io,上面写着无效的签名。

我做错了什么?

提前感谢。

共有1个答案

解修然
2023-03-14

您的访问令牌用于调用Microsoft Graph API。

但是,您的代码不需要验证Microsoft Graph的访问令牌,因为Graph API服务器端将对其进行验证。

换句话说,Graph的访问令牌永远不会通过代码中的验证。

如果访问令牌要调用您自己的API(而不是调用Microsoft Graph),则需要将作用域指定为[API应用程序注册的客户端ID]/。默认值而不是https://graph.microsoft.com/.default。然后可以成功验证访问令牌。

 类似资料:
  • 我目前正在使用Vapor开发Swift后端。我的iOS客户端使用新的iOS 13功能“使用Apple登录”。当用户登录时,我会得到一个身份令牌(访问令牌),这是一个由Apple签名的有效JWT令牌。这将在所有正在进行的通信中发送到服务器,以验证服务器提供的某些路由。 在服务器上,我想通过验证令牌签名来验证发送的令牌是否确实由Apple签名,并且不是由某些恶意用户专门创建的。Apple提供了一个HT

  • 这是一场噩梦。我在使用jwt验证Azure访问令牌签名时遇到问题。木卫一。不管我做什么,答案总是无效的签名。 有人能帮忙吗? 我的步骤: 我从MSALJava应用示例(msal-java-webapp-samp)生成了一个Token Id和Access Token。 我从我的Azure访问令牌中获得访问令牌头中的孩子访问。 我访问

  • 我正在尝试手动创建ES256 JWT令牌。我有一个用python编写的小脚本,它对使用ecdsa python的sha256哈希进行签名。但签名在jwt上无效。木卫一。 繁殖步骤: 创建Base64报头负载: eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9。EYJZDWIixMJ0Nty3ODKwiiBmFtzSi6IkPvAg4GrG9LiiWiyWrTaw4Ionry

  • 我正在制作一个javascript客户端,它使用JWT令牌连接到Api。在服务器端没有问题,我可以创建令牌对其进行签名,然后验证签名,从而确保没有人篡改令牌。 但我如何在客户端做到这一点。我可以解码JWT令牌并查看头、负载和签名。但是如何在客户端验证签名?是否有用于此的库,如何将公钥传输到客户端? 如果我不验证签名,我怎么知道令牌没有被篡改?

  • 我遵循本教程使用JWT令牌。令牌到期时间设置为仅5分钟,但如果我想在使用1分钟后使令牌无效,该怎么办?我希望能够对API进行调用,以删除我的令牌。 我正在使用Express和Node。 从我能收集到的信息来看,我的选择是拥有一个存储令牌的令牌db。当我想让我的令牌过期时,我会从DB中过期/删除该令牌。 我还看到人们随意地说“移除”物理硬盘空间中的令牌,但我无法找出令牌的物理存储位置,以便我移除它。

  • 我们使用java-jwt编写了小API。当我创建令牌并在代码中验证令牌时,Java正常工作。 创建RSA私钥和公钥。(参考其中一个测试用例) 使用算法创建令牌。RS256与私钥。 验证了相同的令牌,并获得了预期的输出。 然后向客户端提供公钥,我们开始使用生成的令牌调用他们的REST服务。客户端使用https://www.npmjs.com/package/jsonwebtoken来验证令牌。他们回