【问题标题】:How to acquire an access token to a custom API using MSAL acquireTokenSilent?如何使用 MSAL acquireTokenSilent 获取自定义 API 的访问令牌?
【发布时间】:2021-11-15 15:16:08
【问题描述】:

我能够获得 Graph API 的有效访问令牌,因为有大量的示例/文档/教程。

但是,我无法为我的自定义 API 获取有效的访问令牌。 我使用的范围看起来像这样:

"api://<GUID VALUE>/user_impersonation"

使用这个范围,我可以获得一个访问令牌。不幸的是,它无效。随后,当我尝试在自定义 API 上调用某些内容时,我收到了未经授权的 401 错误。

是否甚至可以使用 MSAL acquireTokenSilent 在自定义 API 上请求访问令牌?

【问题讨论】:

  • 如果你拿到了可以解码的访问token,可以看到正确的范围,说明token是可以的,你需要检查的是你的api项目,验证是否通过正确设置。
  • 我到底如何才能解码访问令牌???
  • 另外,我可以通过 Postman 等外部工具验证自定义 API 是否正常工作。
  • 在线解码:jwt.io
  • 你的后端 api 语言是什么?是asp.net core 可以参考我的this answer

标签: reactjs azure-active-directory msal msal.js acquiretokensilent


【解决方案1】:

在我看来,如果访问令牌已经生成成功,我们可以decode it online,如果scp声明确实包含特定的api权限(scp是代表api权限,roles是应用程序权限), 后端 api 总是有身份验证问题,但不是令牌错误。

如果你的后端是用asp.net core编写的,你可以参考我的this answer,对于java或springboot后端,this answer可能会有所帮助。

【讨论】:

    猜你喜欢
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 2021-12-02
    • 2021-03-15
    • 2016-07-12
    • 2019-04-18
    相关资源
    最近更新 更多