无需管理员同意,能否通过Microsoft Teams Graph API获取用户所属团队?
获取已授权用户的团队列表(无需Admin Consent)
你提到的这个困惑其实挺常见的——原本以为用户授权后就能拿到自己的团队信息,但看到/me/joinedTeams的权限都标注需要admin consent,确实容易产生疑惑。不过这里有个关键细节可能你没留意到:并非所有对应权限都需要管理员同意。
正确的权限选择(无需Admin Consent)
在用户主动授权的委托权限(Delegated Permissions)场景下,你可以使用以下两个支持用户自行授权的权限:
Team.ReadBasic.All:允许应用读取用户已加入团队的基础信息(如团队名称、ID)TeamMember.Read.All:除基础团队信息外,还可读取团队成员的相关数据
这两个权限都不需要管理员介入,用户在授权流程中确认即可授予应用访问权限。
为什么会看到需要Admin Consent的权限?
你大概率是查看了**应用权限(Application Permissions)**下的选项——这类权限是给后台服务类应用设计的,不需要用户交互,因此必须由管理员同意才能启用。而我们在用户授权场景下使用的是委托权限,这部分里的Team.ReadBasic.All和TeamMember.Read.All完全支持用户自主授权。
调用示例
确认应用权限配置正确后,使用用户授权后的access token调用接口即可获取团队列表,示例cURL请求:
curl --request GET \ --url https://graph.microsoft.com/v1.0/me/joinedTeams \ --header 'Authorization: Bearer {access-token}'
注意事项
- 确保在Azure AD应用配置中添加的是委托权限,且仅勾选上述无需admin consent的权限项
- 用户授权时,应用会展示需要的权限范围,用户确认后应用就能获取对应的访问权限
内容的提问来源于stack exchange,提问作者Adam James
相关产品推荐
相关产品推荐

