通过邮递员从 Azure 应用服务验证令牌返回 401

Posted

技术标签:

【中文标题】通过邮递员从 Azure 应用服务验证令牌返回 401【英文标题】:Validating token from Azure App Service through postman returns 401 【发布时间】:2020-05-06 16:01:19 【问题描述】:

我已将我的应用程序与 Azure AD 身份验证集成。 虽然我可以通过相同的方式成功登录,但我想访问 AD 发送的响应声明,将我的应用程序从 AD 重定向到主页。

所以,我已关注 Microsoft Docs 以获取响应声明。 即,https://app-name.azurewebsites.net/.auth/me

当我从浏览器点击 url 时,我可以在回复中看到 access-token、id-token 等。

现在,为了验证我的 API URL,我必须在我的授权标头中传递访问令牌。 但是,我也想通过 Azure 服务验证传递的访问令牌(来自 API),方法是:

POST https://<appname>.azurewebsites.net/.auth/login/aad HTTP/1.1
Content-Type: application/json

"id_token":"<token>","access_token":"<token>"

我想先通过邮递员进行测试,但是,我得到 401 未授权

【问题讨论】:

我假设您想验证您的 webapi 收到的令牌对吗?看看以下内容:***.com/a/39870281/1384539 尝试在 Postman 中添加不记名令牌。转到授权选项卡,从 type 下拉列表中选择 Bearer Token 并提供令牌。 @ThiagoCustodio 我已经浏览了链接,看起来它与我需要的不完全相同。我期待根据文档的解决方法:docs.microsoft.com/bs-cyrl-ba/azure/app-service/… @Michael 也试过了,同样的错误! 【参考方案1】:

如果您使用aad 提供程序,只需在正文中传递"access_token":"&lt;access_token&gt;"

见here:

首先,登录https://app-name.azurewebsites.net/.auth/me,复制id_token(不是access_token)。

然后在邮递员中,将id_token 复制到"access_token":"&lt;access_token&gt;"

【讨论】:

成功了!谢谢。它在 MS Docs 中有点模棱两可。 :)

以上是关于通过邮递员从 Azure 应用服务验证令牌返回 401的主要内容,如果未能解决你的问题,请参考以下文章

代表客户端验证密钥斗篷不记名令牌

如何通过具有用户凭证的天蓝色广告生成不记名令牌

通过 Angular 4 将 JWT 令牌附加到 api 请求

Azure 身份验证受众验证失败

通过 Azure AD 验证不透明的访问令牌

从 Azure Active Directory 验证 JWT