C#开发Teams Bot:如何获取v2.0版本用户id_token
Teams Bot 获取v2.0版本id_token配置问题
期望获取的v2.0版本id_token格式
{ "aud": "9b7071c8-3ce9-4109-abfc-e20f6dc8565c", "iss": "https://login.microsoftonline.com/03d1e802-a5a6-4eb7-955b-d54457506f5c/v2.0", "iat": 1663465148, "nbf": 1663465148, "exp": 1663469048, "aio": "ATQAy/8TAAAAFanCzNbk05lLbfiU/m5YKbKRwbney5rbhw0PhcM5K5OF9CCfXvn4gYPGwqbA39Tw", "name": "Feng Arthur", "nonce": "637990622396675459.OTQzODRjMTYtMTk1Zi00ZmQyLWE5ZDctMWUwYjEzMzE4ZmRmMTJlM2M0MzAtN2E2Ni00ZWVkLWFhNWEtYTM4MDg4MWY4MTc2", "oid": "55e8ac69-83bb-4bfd-a62c-71935718612d", "preferred_username": "arthur@xxx.onmicrosoft.com", "rh": "0.AVYAAujRA6alt06VW9VEV1BvXMhxcJvpPAlBq_ziD23IVlyfALw.", "sub": "Om7ssbXuWuSgDT5u4VTpbYyU84kA7X0lwfzGekzUJw0", "tid": "03d1e802-a5a6-4eb7-955b-d54457506f5c", "uti": "qHqwpvM_30SG05JzQlgTAA", "ver": "2.0" }
当前获取到的v1.0版本id_token格式
{ "aud": "00000003-0000-0000-c000-000000000000", "iss": "https://sts.windows.net/03d1e802-a5a6-4eb7-955b-d54457506f5c/", "iat": 1663467221, "nbf": 1663467221, "exp": 1663472207, "acct": 0, "acr": "1", "aio": "ATQAy/8TAAAA6/94ZNRnQs+16hbYjapVYf0cAkUkIcNwLNbToEMjS3wtAyBnTVwDCLZ6Bbcu97P9", "amr": [ "pwd" ], "app_displayname": "TeamsApp", "appid": "9b7071c8-3ce9-4109-abfc-e20f6dc85655", "appidacr": "1", "family_name": "Guo", "given_name": "Arthur", "idtyp": "user", "ipaddr": "137.83.237.197", "name": "Guo Zhifeng", "oid": "55e8ac69-83bb-4bfd-a62c-71935718612d", "platf": "3", "puid": "1003200226D5C04D", "rh": "0.AVYAAujRA6alt06VW9VEV1BvXAMAAAAAAAAAwAAAAAAAAACfALw.", "scp": "Mail.Read User.Read User.ReadBasic.All profile openid email", "sub": "nnK6b2HVSxUjxjaVmttlfiXlvC0bnTYU5UmduhqQxBU", "tenant_region_scope": "AS", "tid": "03d1e802-a5a6-4eb7-955b-d54457506f5c", "unique_name": "arthur@arthurguo.onmicrosoft.com", "upn": "arthur@arthurguo.onmicrosoft.com", "uti": "phR1FN8unEu6PaSDRralAA", "ver": "1.0", "wids": [ "62e90394-69f5-4237-9190-012177145e10", "b79fbf4d-3ef9-4689-8143-76b194e85509" ], "xms_st": { "sub": "Om7ssbXuWuSgDT5u4VTpbYyU84kA7X0lwfzGekzUJw0" }, "xms_tcdt": 1662039680 }
现有配置
- Azure Bot OAuth连接字符串(截图:Azure Bot OAuth配置)
- 应用注册Manifest中已设置
accessTokenAcceptedVersion为2(截图:应用注册Manifest配置)
问题咨询
已按照官方示例实现,但仍获取v1版本id_token,需调整哪些配置才能得到目标v2.0版本(iss为https://login.microsoftonline.com/03d1e802-a5a6-4eb7-955b-d54457506f5c/v2.0,ver为2.0)的id_token?
解决方案
1. 重新创建Azure Bot OAuth连接
确保使用Azure Active Directory v2作为身份提供商:
- 进入Azure Bot资源的「设置」→「OAuth连接设置」
- 删除原有v1连接,点击「添加连接」选择「Azure Active Directory v2」
- 配置时填写对应客户端ID、密钥,权限范围包含
openid,保存新连接
2. 确认应用注册Manifest配置
检查应用注册Manifest中accessTokenAcceptedVersion字段值是否为2,保存后等待10-15分钟让配置生效
3. 调整代码中的认证关联
在C#代码中,确保Bot使用的OAuth连接名称为新创建的v2连接,且请求scope包含openid,未强制指定v1端点参数
4. 清理缓存后测试
删除Bot本地缓存及Azure会话数据,重新发起认证流程验证token版本
内容的提问来源于stack exchange,提问作者Arthur
相关产品推荐
相关产品推荐

