Azure Bot Direct Line令牌复用性与1小时有效期规则咨询
Azure Direct Line 访问令牌核心规则解答
关于1小时令牌有效期的实际适用边界
- 官方标注的1小时有效期,仅指向令牌的「新建操作鉴权窗口」,和已建立会话的存续状态无强制绑定关系:
- 窗口内允许的操作包括:发起全新会话、为已存在会话新建WebSocket/长轮询连接、拉取会话全量历史消息、调用会话配置类接口
- 一旦会话的传输通道完成首次握手鉴权,服务端会缓存该通道的鉴权状态,后续消息收发不会逐帧校验令牌是否超过1小时阈值,这也是你实测会话过期后仍能正常运行的核心原因
- 已运行会话的令牌刷新策略:
- 仅做持续消息收发的常规会话,不需要在令牌到期时主动刷新,不会出现功能中断
- 若需要在令牌过期后重新建立连接、拉取历史记录、扩展同会话的多端连接,旧令牌会直接失效,必须调用刷新接口获取新令牌后才能操作
关于同一令牌的跨客户端复用规则
- 从接口实现逻辑看,有效令牌不存在客户端绑定校验,任意持有有效令牌的客户端都可以调用对应作用域下的Direct Line接口,没有设备、IP、UA层面的强制拦截。需要注意的是,令牌本身是有作用域限制的:生成时如果绑定了特定会话ID,该令牌仅能操作对应会话,不能跨会话发起新操作;无会话绑定的通用令牌,可用于发起任意新会话
- 但实际生产场景不推荐跨客户端复用同一令牌,存在两个明确风险:
- 无访问隔离:令牌和权限范围强绑定,拿到令牌的客户端都可以对会话执行发消息、读消息操作,没有独立的操作边界
- 刷新机制的全局排他性:令牌刷新操作会让旧令牌立即永久失效,若多客户端共用同一令牌,任意一端触发刷新逻辑,其余所有客户端持有的旧令牌都会直接出现401鉴权失败
内容的提问来源于stack exchange,提问作者smith99
相关产品推荐
相关产品推荐

