创建MS Graph订阅跟踪Teams应用聊天消息时遇权限错误
问题:创建MS Graph订阅跟踪Teams应用安装的聊天消息时遇403错误
我想要创建MS Graph订阅,跟踪安装了指定Teams应用的聊天中的消息。
使用的请求命令
curl --location 'https://graph.microsoft.com/v1.0/subscriptions' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "changeType": "created,updated", "notificationUrl": "<url>", "lifecycleNotificationUrl": "<url>", "resource": "/appCatalogs/teamsApps/<yyy>/installedToChats/getAllMessages", "includeResourceData": true, "encryptionCertificate": "<certificate>", "encryptionCertificateId": "<certificate_id>", "expirationDateTime": "2025-07-10T23:59:59.0000000Z", "clientState": "<secret>" }'
已配置的权限
我的Azure应用已获得管理员授权,拥有以下权限:
- AppCatalog.Read.All
- Chat.Read.WhereInstalled
- ChatMessage.Read.All
- TeamsAppInstallation.Read.All
收到的403错误响应
{ "error": { "code": "ExtensionError", "message": "操作:创建;异常:[状态码:禁止;原因:AAD应用ID 'xxx' 不允许管理Teams应用 'yyy'。]", "innerError": { "date": "2025-07-09T14:50:24", "request-id": "...", "client-request-id": "..." } } }
其中xxx是我的Azure应用ID,yyy是Teams应用ID。
背景情况
我曾在自定义Teams应用上成功实现该订阅,但必须修改应用的manifest,添加webApplicationInfo并设置我的Azure应用ID。
现在的需求是:跟踪第三方Teams应用(例如ID为d3d1be68-066c-4967-a74b-9edcf902dcfb的“Decisions”应用)的消息,或者在无法修改自定义Teams应用manifest的情况下实现订阅,该如何处理?
更新的错误信息
{ "error": { "code": "ExtensionError", "message": "操作:创建;异常:[状态码:禁止;原因:AAD应用ID '861d...' 不允许管理Teams应用 'd3d1be68-066c-4967-a74b-9edcf902dcfb'。]", "innerError": { "date": "2025-07-11T07:22:29", "request-id": "03a2a2ee-1ecc-4ec1-883c-b2a885665907", "client-request-id": "03a2a2ee-1ecc-4ec1-883c-b2a885665907" } } }
解决方案
核心原因:MS Graph的目标应用定向订阅接口要求Azure应用与Teams应用存在绑定关系——要么是自定义应用manifest中配置了对应Azure应用ID,要么你是目标应用的开发者/拥有者,第三方应用显然无法满足后一条件。
替代方案:全局订阅+后置过滤
- 将订阅资源路径改为
/chats/getAllMessages,订阅全局聊天消息的创建、更新事件。 - 收到通知后,调用
GET /chats/{chatId}/installedApps接口,检查该聊天是否安装了目标Teams应用,仅处理符合条件的消息。 - 此方案依赖你已有的
Chat.Read.All和TeamsAppInstallation.Read.All权限,需注意租户内聊天数量可能带来的通知量压力,建议配合高效的过滤逻辑。
- 将订阅资源路径改为
租户管理员级尝试
- 若你是租户管理员,可通过Graph PowerShell或Azure AD权限管理,尝试为Azure应用添加对目标Teams应用的管理权限,但第三方应用可能受厂商限制无法配置,仅对租户内自定义部署的应用可能生效。
内容的提问来源于stack exchange,提问作者Leo Sanchez
相关产品推荐
相关产品推荐

