Teams Bot SSO能否配合独立Identity Provider应用注册正常运行?
关于Teams Bot SSO配合独立Identity Provider应用注册的配置说明
完全可以实现该配置,两类官方指南的差异来自适用场景不同:普通身份验证指南覆盖通用第三方身份提供商的场景,要求独立注册IdP应用;默认SSO指南给出的是直接复用Bot应用注册作为身份提供商的简化方案,因此未提及独立IdP配置。
正确配置步骤如下:
- 独立IdP应用注册配置
- 所有SSO所需的权限(包括Teams要求的
access_as_user委托权限)都注册在该IdP应用下 - 重定向URI添加
https://token.botframework.com/.auth/web/redirect - 生成供Bot调用的客户端密钥,留存备用
- 所有SSO所需的权限(包括Teams要求的
- Bot应用注册配置
- 无需额外配置SSO相关的公开客户端权限,仅需在「OAuth连接设置」中新增对应IdP的连接,填写IdP的端点地址、客户端ID、客户端密钥、所需作用域等信息,自定义连接名称并记录
- Teams应用清单配置
- 将清单中
webApplicationInfo字段的resource参数值,从默认的Bot应用客户端ID替换为独立IdP应用的客户端ID
- 将清单中
- Bot后端逻辑调整
- 校验SSO返回的访问令牌时,将受众(aud)校验值从Bot客户端ID替换为独立IdP应用的客户端ID
- 调用OAuth连接时使用Bot注册中配置的连接名称即可
90%以上的配置失败来自三处配置遗漏:
- 未修改Teams应用清单的
resource字段,导致Teams请求令牌时指向错误的应用- 令牌校验逻辑未调整aud参数,导致合法令牌被后端拦截
- 未给独立IdP配置正确的重定向URI,导致授权流程中断
内容的提问来源于stack exchange,提问作者Tom F
相关产品推荐
相关产品推荐

