在团队或频道中获取用户角色

时间:2021-02-11 18:30:39

标签: azure-active-directory microsoft-graph-api microsoft-teams azure-ad-graph-api microsoft-graph-teams

我有一个 Microsoft Teams 组选项卡,我想实施一个权限系统,在该系统中,用户可以根据他们在团队(或频道)中的角色在选项卡中执行不同的操作。我从 Teams JavaScript API 获得的上下文不可信,因此我必须通过 MS Graph API 检查组/团队/频道角色。

我发现检查用户是所有者还是团队成员的唯一方法是调用 /teams/{groupId}/channels/{channelId}/members。在响应中,我可以查看用户拥有哪些角色,以便我可以了解当前用户是否拥有所有者权限。

问题是这个端点需要管理员同意(我猜是因为它显示了其他用户的数据)。但是,我想避免必须征得管理员同意。是否有另一种方法可以在未经管理员同意的情况下了解用户在团队中的角色? (由于私人频道在 Teams 中的行为不同,这与了解频道中的角色相同)

我知道我可以通过添加到 ID 令牌的可选组声明获得如果用户在组中,但这不包括组/团队/频道内的规则.

1 个答案:

答案 0 :(得分:1)

当前需要管理员同意才能读取用户在频道中的角色,所需权限为 ChannelMember.Read.All 请参阅列表对话成员文档 here。获得团队成员或列出团队成员也需要管理员同意。对于您的特定用例,我建议您让您的管理员授予这些权限。