首页 > 解决方案 > 从使用 MSAL 调用 acquireTokenSilent 返回的 accessToken 是否总是应该是 JWT?如果不是呢?

问题描述

我有一个多租户(AAD + 个人 Microsoft 帐户)单页应用程序,它使用 MSAL 库登录用户然后获取令牌。

当我为登录的 AAD 用户调用 acquireTokenSilent 时,AuthResponse 对象中提供的 accessToken 是一个有效的 JWT。此外,该 JWT 似乎正确地包含了我在 acquireToken 调用中请求的所有范围。

当我对个人 MSA 帐户执行相同操作时,提供的 accessToken 似乎不是有效的 JWT。它有点像一个,虽然都是字母数字,但它不能被任何普通的 JWT 解码器解码。

个人 MSA 帐户的 accessToken 是否应该是有效的 JWT?如果不是,那是什么?

谢谢!

标签: azure-active-directorymsal

解决方案


在使用个人帐户测试您的客户端应用程序时,您可能会发现您的客户端收到的访问令牌是一个不透明的字符串。这是因为正在访问的资源请求了已加密且客户端无法理解的旧版 MSA(Microsoft 帐户)票证。

它不是 JWT 令牌,因此任何普通的 JWT 解码器都无法对其进行解码。但是您可以对登录用户信息的 ID 令牌进行解码。

在此处查看详细信息。(重要提示)


推荐阅读