azure+spring boot

ijnw1ujt  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(340)

我正在使用azuread进行spring启动应用程序的用户身份验证。我创建了一个应用程序来获取登录用户的访问令牌(令牌创建者应用程序)。在此应用程序中,“/token”api从@registeredoauth2authorizedclient读取访问令牌,并返回与响应相同的令牌。
然后,我必须使用返回的令牌作为restapi的承载令牌,用于具有相同客户机id和相同配置的另一个应用程序。
但是当我使用这个访问令牌时,它给了我以下错误:
bearer error=“invalid\u token”,error\u description=“尝试解码jwt时出错:签名jwt被拒绝:签名无效”,error\u uri=”https://tools.ietf.org/html/rfc6750#section-3.1"
我检查了jwt.io中的jwt令牌,它表明签名无效。
我做错了什么?
提前谢谢。

f45qwnt8

f45qwnt81#

您的访问令牌用于调用microsoft graph api。
但是,microsoft graph的访问令牌不需要由您的代码进行验证,因为graph api服务器端将对其进行验证。
换句话说,graph的访问令牌永远不会通过代码中的验证。
如果访问令牌要调用自己的api(而不是调用microsoft graph),则需要将作用域指定为 [CLIENT_ID of the API app registration]/.default 而不是 https://graph.microsoft.com/.default . 然后可以成功验证访问令牌。

相关问题