刷新 Token 获取新的 Access Token
如果您在 Web 应用程序中使用授权码授权之类的授权,则一种方法可能是使用 aRefresh Token来获取新的授权。Access Token
您可以在此处阅读有关它的更多信息 -刷新访问令牌
您的应用程序将需要决定何时获取新的访问令牌。因此,当它知道后端组件/管理员已更新组成员身份时,它可以这样做。
现在,您没有过多提及的另一个主题是,您的 Web 应用程序将如何在用户已经登录的情况下了解此类事件,但像 SingalR 通知之类的东西可能会有所帮助。
注意事项:
替代方法(而不是像您提到的那样尝试使用新信息强制刷新令牌)
如果groups声明是您所追求的,那么请使用它Microsoft Graph API来获取有关用户所属安全组的信息,而不仅仅是查看访问令牌。
根据您的示例,您的应用程序代码可以随时再次调用 Microsoft Graph API 以获取新的成员资格详细信息,即组 1 和组 2(当它知道组成员资格已由后端组件/管理员更新时)。SignalR 或其他通知您的应用此类更改的方式在这里也很重要。
相关的 Microsoft Graph API
优点
您可以解决用户属于多个组的任何超额情况,因此访问令牌不会以任何方式为您提供所需的所有组信息。
您无需强制注销并再次为用户重新登录,即可获取包含新信息的访问令牌。
groups访问令牌中声明的超额场景详细信息
目前,您可能已经编辑了应用程序的清单并将"groupMembershipClaims"属性设置为"All"or"SecurityGroup"以便访问令牌获得groups用户所属的所有组 ID 的声明

为确保令牌大小不超过 HTTP 标头大小限制,Azure AD 限制它包含在组声明中的 objectId 的数量。如果用户是超过超额限制(SAML 令牌为 150,JWT 令牌为 200)的组的成员,则 Azure AD 不会在令牌中发出组声明。相反,它在令牌中包含一个超额声明,指示应用程序查询 Graph API 以检索用户的组成员资格。