You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure中禁用用户并发登录?(Angular+MSAL认证场景)

如何在Azure中禁用MSAL Angular应用的用户并发登录

Azure AD本身没有直接的开关强制禁用用户并发登录,但可以通过以下几种方式限制或实现近似效果:

1. 配置令牌过期与刷新策略

  • 缩短访问令牌的有效期:在Azure AD应用注册的「令牌配置」中,将访问令牌的过期时间调至更短(默认60分钟),减少旧会话的有效时长。
  • 启用刷新令牌轮换与撤销:在应用注册的「身份验证」→「高级设置」里开启「刷新令牌轮换」,同时设置刷新令牌的最大生存期。用户在新设备/地点登录时,旧的刷新令牌会失效,无法再获取新的访问令牌,间接终止旧会话。

2. 通过条件访问限制会话数量

针对Azure AD P1/P2版本用户,可创建条件访问策略:

  • 选择目标应用,在「会话控制」中设置「每个用户的最大会话数」,达到上限后新登录会挤掉旧会话。
  • 启用「使用应用强制限制会话」,配合应用自身的会话逻辑实现单会话控制。

3. 主动撤销用户现有会话

  • 在Angular应用登录成功后,调用Microsoft Graph API的POST /users/{user-id}/revokeSignInSessions接口,主动撤销该用户的所有其他会话。需要为应用配置User.ReadWrite.All或Directory.AccessAsUser.All权限。
  • 也可在Azure AD门户的「用户」→「登录活动」中手动撤销用户会话,适合临时应急场景。

4. 客户端侧补充校验

在Angular应用中结合后端实现会话管理:

  • 用户登录时,后端记录当前有效会话ID;前端通过MSAL的msal:loginSuccess事件触发校验,若发现存在其他有效会话,后端标记旧会话失效,前端跳转至登录页强制重新登录。

注意事项

  • 完全禁止同一用户在多标签页/同一设备的并发登录难以实现,因为这类场景共享浏览器会话;上述方法主要针对不同设备/地点的跨设备并发登录。
  • 刷新令牌轮换策略对跨设备登录限制效果较好,但需确保应用正确处理令牌过期后的重新登录逻辑。

内容的提问来源于stack exchange,提问作者RK Tamil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 05:31:09