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

基于授权码流实现SPA与Azure Bot的单点登录可行性问询

SPA与Azure Bot的单点登录:使用Auth Code Flow替代Implicit Flow

可以使用Auth Code Flow实现SPA与Azure Bot之间的单点登录(SSO),微软目前明确建议SPA从Implicit Flow迁移到带PKCE增强的Auth Code Flow,以此提升认证安全性。

核心实现要点

  • Azure Bot端配置
    Azure Bot框架支持Auth Code Flow完成SSO认证。需在Bot对应的Azure AD应用注册中配置正确的重定向URI,并开启Auth Code Flow(针对SPA场景必须启用PKCE,因为SPA无法安全存储客户端密钥)。

  • SPA端适配
    SPA需使用MSAL.js v2及以上版本,该版本原生支持带PKCE的Auth Code Flow。初始化MSAL实例时,指定响应类型为code,而非Implicit Flow使用的id_token或token。

  • SSO协同逻辑

    1. 用户在SPA中通过Auth Code Flow完成Azure AD认证,获取ID令牌和访问令牌。
    2. SPA将ID令牌传递给Bot(可通过Teams消息扩展或直接API调用方式)。
    3. Bot验证ID令牌有效性后,复用该用户上下文实现SSO,无需重复发起认证请求。

关键注意事项

  • 确保Bot与SPA使用同一Azure AD租户下的应用注册,且配置的权限范围(scopes)保持一致。
  • 必须启用PKCE(Proof Key for Code Exchange),这是SPA使用Auth Code Flow的强制安全要求,可防止授权码被拦截滥用。

内容的提问来源于stack exchange,提问作者Mahendra Raja

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 21:15:48