Azure应用注册:如何在应用上下文使用OnlineMeetings.ReadWrite.All创建会议
问题解答
核心结论
不可行。要通过应用权限(client_credentials模式)代表租户内任意用户创建Teams会议,必须配置应用访问策略,这是Microsoft Graph针对OnlineMeetings相关应用权限的强制要求,没有绕开的方式。
原因分析
你尝试的client_credentials授权模式本身合规,但OnlineMeetings.ReadWrite.All应用权限的生效依赖额外的应用访问策略配置:
- 微软Graph为管控应用对会议资源的访问范围,要求所有使用该应用权限的注册应用,必须通过PowerShell将其添加到允许访问指定用户/用户组的策略中。
- 未配置该策略时,即使应用拥有
OnlineMeetings.ReadWrite.All权限,调用POST /users/{userId}/onlineMeetings/createOrGet接口也会返回权限不足的错误。
正确实现步骤
- 确认权限配置:确保Azure应用注册已添加
OnlineMeetings.ReadWrite.All应用权限,且完成了管理员同意。 - 配置应用访问策略:通过PowerShell执行以下操作:
- 安装并导入Microsoft Teams模块:
Install-Module -Name MicrosoftTeams -Force -AllowClobber Connect-MicrosoftTeams - 创建应用访问策略:
New-CsApplicationAccessPolicy -Identity "AllowAllUsers" -AppIds @("你的应用注册ID") -Description "允许应用代表所有用户创建会议" - 将策略应用到租户所有用户:
Grant-CsApplicationAccessPolicy -PolicyName "AllowAllUsers" -Global
- 安装并导入Microsoft Teams模块:
- 获取访问令牌:使用
client_credentials模式,授权范围仅需指定https://graph.microsoft.com/.default(offline_access属于委派权限模式的范围,此处无需添加)。 - 调用接口:用获取到的令牌调用
POST /users/{userId}/onlineMeetings/createOrGet接口,即可代表指定用户创建会议。
补充说明
- 应用权限模式本身无需用户同意(仅需管理员完成权限同意),但应用访问策略是必须的配置环节,无法跳过。
- 若不想配置应用访问策略,只能切换到委派权限模式,但该模式需要用户登录授权,无法直接代表任意用户创建会议(除非使用用户模拟,但仍需用户凭据或授权)。
内容的提问来源于stack exchange,提问作者Pradeep Patel
相关产品推荐
相关产品推荐

