请求用户同意应用程序的 Calls.AccessMedia.All,但 AdminConsentRequired 存在问题

问题描述 投票:0回答:1

我有一个 Web 应用程序,可用作 Microsoft Teams 的记事本。本质上,我需要使用此应用程序的 Calls.AccessMedia.All 范围来访问 Microsoft Teams 录音。问题是,如果没有管理员批准请求,用户就无法同意此范围。

有人遇到过这样的问题吗?如果有,你是如何解决的?当需要用户无法同意的高权限范围时,对于这种情况,是否有一些最佳实践的逻辑?感谢您的帮助。

azure microsoft-graph-api microsoft-teams microsoft-graph-teams microsoft-graph-calendar
1个回答
0
投票

使用此应用程序的

Calls.AccessMedia.All
范围来访问 Microsoft Teams 录制内容。问题是,如果没有管理员批准请求,用户就无法同意此范围。

正如本MSDocument中提到的, 不幸的是,未经管理员同意,无法访问

Calls.AccessMedia.All
应用程序类型API权限,因为它是高权限的Microsoft Graph API范围

注意:

  • 用户同意:用户只能同意其帐户的低权限范围

  • 管理员同意:需要管理员同意才能为整个组织或特定用户授予高权限范围的同意。

要读取 Microsoft Teams 录制内容,您需要拥有

OnlineMeetings.Read.All
API 权限,该权限允许应用程序读取在线会议的属性和关系,包括在授予管理员同意的情况下录制信息。

同时

Calls.AccessMedia.All
允许应用程序在通话中直接访问媒体流,如果您需要访问此API,则需要授予管理员同意,因为它是高权限范围。

我注册了 Microsoft Entra ID 应用程序并授予管理员同意,如下所示:

enter image description here

使用以下参数生成访问令牌:

POST https://login.microsoftonline.com/<tenant_id>/oauth2/v2.0/token

client_id = <client_id>
client_secret= <client secret>
grant_type = client_credentials
scope = https://graph.microsoft.com/.default

enter image description here

解码 http://jwt.ms 上的访问令牌并确保

OnlineMeetings.Read.All
应存在。

获取会议录音:

GET https://graph.microsoft.com/v1.0/users/<user-id>/onlineMeetings/<meeting-id>/recordings

GET https://graph.microsoft.com/v1.0/users/<user-id>/onlineMeetings/<meeting-id>/recordings/<recording-id>

enter image description here

参考资料:

在线会议。阅读全部

Calls.AccessMedia.All

© www.soinside.com 2019 - 2024. All rights reserved.