无需登出获取新Azure CLI令牌?如何同步组成员身份变更?
解决方案:Azure组身份变更后的令牌同步与实时校验
一、服务器端实时获取用户当前组成员身份
可以直接调用Microsoft Graph的memberOf端点,实时拉取用户当前所属的所有组,完全不依赖JWT令牌里的静态声明,从根源解决令牌缓存导致的信息滞后问题。
- 调用方式:发送GET请求到
https://graph.microsoft.com/v1.0/users/{用户ID或UPN}/memberOf - 权限要求:服务器需在Azure AD中申请Microsoft Graph的应用权限(如
User.Read.All或Directory.Read.All),并通过客户端凭据流获取Graph的访问令牌 - 优势:完全实时,不管客户端令牌是否过期,都能拿到最新的组信息,适合对权限校验时效性要求高的场景
二、Azure CLI无需登出获取更新后的令牌
不用执行登出再登录操作,直接用az account get-access-token命令加--force-refresh参数,强制绕过本地缓存向Azure AD请求新令牌,新令牌会包含更新后的组声明:
az account get-access-token --resource <你的服务对应的Azure AD资源ID> --force-refresh
- 原理:
--force-refresh参数会忽略本地已缓存的令牌,直接向Azure AD重新申请,新生成的令牌会同步最新的用户组信息 - 注意:如果你的服务是自定义API,要把
<你的服务对应的Azure AD资源ID>替换为你在Azure AD中注册的应用程序ID URI或客户端ID
内容的提问来源于stack exchange,提问作者simpleCoder
相关产品推荐
相关产品推荐

