调用Graph API向外部租户发送Teams Activity通知报Forbidden错误咨询
跨租户发送Teams Activity通知解决方案
报错根因
你收到的Forbidden错误是因为跨租户访问场景下,你的应用未完成外部租户的授权配置,也没有获得目标Team的访问权限。
具体实现步骤
- 第一步:调整Azure AD应用基础配置
你的应用必须为多租户类型的Azure AD注册应用,同时在你所属的租户中为应用配置应用权限TeamsActivity.Send.Group或TeamsActivity.Send,完成权限的管理员同意授予。 - 第二步:完成外部租户的权限授权
由外部租户的全局管理员完成以下操作:- 在外部租户的Azure AD管理中心添加你的多租户应用
- 为该应用授予
TeamsActivity.Send.Group或TeamsActivity.Send权限的管理员同意 - 将该应用添加到你需要发送通知的目标Team中,角色至少设置为成员
- 第三步:调整API调用逻辑
- 调用接口获取访问令牌时,要使用外部租户的租户ID作为授权租户参数,不能使用你自身租户的ID,令牌受众指定为
https://graph.microsoft.com - 建议使用正式版接口而非beta版,beta版接口不稳定且存在未公开的权限限制,正式版接口路径为:
https://graph.microsoft.com/v1.0/teams/<team_id>/sendActivityNotification - 调用接口获取访问令牌时,要使用外部租户的租户ID作为授权租户参数,不能使用你自身租户的ID,令牌受众指定为
- 第四步:验证权限配置
先使用获取到的外部租户令牌调用以下接口验证权限:
若接口正常返回团队信息,说明权限配置生效,再调用发送通知的接口即可完成跨租户推送。GET https://graph.microsoft.com/v1.0/teams/<外部团队ID>
内容的提问来源于stack exchange,提问作者Gaurav Pandey
相关产品推荐
相关产品推荐

