检索 API 数据 Microsoft Health Bot - 授权错误 JWT 验证失败
Posted
技术标签:
【中文标题】检索 API 数据 Microsoft Health Bot - 授权错误 JWT 验证失败【英文标题】:Retrieve API data Microsoft Health Bot - Authorization error JWT verification failed 【发布时间】:2021-06-25 12:09:45 【问题描述】:我尝试按照以下 repo 文档从 Microsoft health bot 检索 API 数据:https://github.com/microsoft/HealthBotCodeSnippets/tree/master/HealthAgentAPI,其中 GET API 端点假定为 https://us.healthbot.microsoft.com/api/account/$tenantName/scenarios
。
JWT 签名令牌应该在哪里:
"tenantName": "myTenant", (tenant is from my Health bot portal)<br />
"iat": "1648533033"
(我输入了 2022 年,我从 Unix 时间戳得到的 iat 值:https://www.unixtimestamp.com/)
所以我把上面的tenantName和iat放在JWT网站(https://jwt.io/)中,生成JWT token。
在邮递员上:我使用上述端点发出GET
请求,在标题选项卡上,我将Authorization
放置为KEY 和Bearer <JWT Token just generated>
的值。
响应为Authorization error - JWT verification failed
400 错误请求
谁能帮忙找出我的任何错误?
【问题讨论】:
我不熟悉 ms-health-bot,但您的令牌包含声明iat
,即在(令牌创建时间戳)发布的时间。因此,验证失败可能是因为 iat 时间戳在未来太远了。请尝试使用当前时间。同样,这只是一个猜测。你用哪个秘密签署了令牌?
@jps 解决方案是我没有在 VERIFY SIGNATURE 上放置正确的秘密,所以当你解码时,你还需要把正确的秘密值放在你可以在你的 Health bot 的 MS Portal 上找到的地方 集成部分 > 秘密 > API_JWT_SECRET 加油,希望这个答案也能帮助到你。
【参考方案1】:
解决方案是我在生成 JWT 令牌时没有在 VERIFY SIGNATURE 上放置正确的秘密,所以当你解码时,你还需要将正确的秘密值放在你可以在你的 Health bot 的 MS Portal 上找到的位置 集成部分 > 秘密 > API_JWT_SECRET
加油,希望这个回答也能帮到你。
【讨论】:
以上是关于检索 API 数据 Microsoft Health Bot - 授权错误 JWT 验证失败的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 EWS 托管 API 从 Microsoft Exchange 检索所有联系人?
Microsoft Graph 登录审核日志 API:对于某些登录,内部用户显示为访客用户类型