2

我有一个将 Azure Active Directory 用户保存到 SQL Server 的应用程序。为此,我使用 MSAL 身份验证来获取用户。

但有时我的访问令牌会过期,我会从 Graph 收到 401 未经授权的错误。所以我需要在我的代码本身中添加验证过期的逻辑。我搜索了很多,但找不到一个好的解决方案。

有人可以帮助我如何实现这一目标吗?

4

1 回答 1

1

访问令牌的默认生命周期是可变的。颁发时,访问令牌的默认生命周期被分配一个介于 60-90 分钟(平均 75 分钟)之间的随机值。我建议您保存它Refresh token,然后在access token您想要查询用户资源的任何时间获取。

原因是刷新令牌的生命周期比访问令牌长。令牌的默认生命周期为 90 天,每次使用时都会用新令牌替换自己。因此,每当使用刷新令牌来获取新的访问令牌时,也会发出新的刷新令牌。Microsoft 标识平台在用于获取新的访问令牌时不会撤销旧的刷新令牌。获取新的刷新令牌后,安全地删除旧的刷新令牌。刷新令牌需要像访问令牌或应用程序凭据一样安全存储。

可以在此处找到有关 Microsoft 身份平台中的刷新令牌的更多信息 - https://docs.microsoft.com/en-us/azure/active-directory/develop/refresh-tokens

于 2021-12-20T16:26:26.043 回答