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

AAD认证异常:同一目录下两名用户同时登录仅一人可成功

排查AAD企业应用仅允许单用户同时登录的问题

这种同一AAD目录下只能有一个用户登录的情况,我碰到过好几次,大概率是应用配置或者会话管理层面的限制在搞鬼,给你列几个最常见的原因,你可以挨个排查:

  • 会话配置或令牌缓存的限制
    先去AAD里你的企业应用的「会话设置」看看,有没有开启了单一登录会话限制,或者把「用户会话数量上限」设成了1。另外如果是自定义开发的应用,要检查代码里的令牌缓存策略——要是用了全局共享的缓存(比如单例模式的缓存对象),没有按用户ID区分存储令牌,新用户的认证请求就会被旧用户的令牌干扰,最后超时失败。还有些应用会在登录时覆盖全局会话信息,直接把旧用户的会话顶掉,导致新用户的流程卡壳。

  • 服务端资源的瓶颈限制
    如果你的应用是单实例部署,而且服务端没做用户会话隔离,比如用了进程内的会话存储,再加上服务端的连接数、线程数被设得极低,第一个用户登录后就占满了资源,第二个用户的认证请求只能排队到超时。另外数据库连接池配置过小也会出这问题——第一个用户登录时占了唯一的数据库连接,第二个用户的认证请求要查库但拿不到连接,自然就卡超时了。

  • AAD应用的权限或令牌策略问题
    先确认下企业应用的「用户分配」,有没有不小心设成了仅允许特定用户/组访问,而这个组里刚好只有一个用户?不过这种情况一般是第二个用户直接被拒绝,不是超时,但还是确认下更稳妥。另外看看「认证」设置里的令牌颁发策略,有没有开启每次登录吊销旧令牌,同时应用本身不支持多令牌共存,新用户登录时要等旧令牌失效,但旧用户还在线,令牌一直有效,最后就超时了。

  • 自定义认证逻辑的bug
    要是你自己开发的应用,得仔细检查认证流程的代码:有没有在用户登录时锁定了某个全局资源(比如静态变量、文件锁),用完又没正确释放,导致第二个用户的请求被死死堵住?还有可能是处理AAD回调时,没正确区分不同用户的请求,比如复用了同一个会话ID或者请求上下文,新用户的认证流程直接被旧用户的会话卡住了。

排查建议:先从AAD的企业应用配置入手,检查会话设置和用户分配;如果是自定义应用,再去排查服务端的会话管理、资源配置和认证代码逻辑,应该能很快找到问题。

内容的提问来源于stack exchange,提问作者Project Mavericks

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:50:20