配置应用程序对联机会议或虚拟事件的访问

对于使用应用程序权限访问某些云通信 API 的应用,除了 Microsoft Graph 应用程序权限外,租户管理员还必须配置应用程序访问策略。 有关详细信息,请参阅 支持的应用程序权限

以下部分介绍需要应用程序访问策略的两个主要方案。

允许应用程序代表用户访问联机会议

在某些情况下,例如后台服务或在没有登录用户的服务器上运行的守护程序应用,应用可以代表用户调用 Microsoft Graph 并执行操作。 例如,应用可能需要 Microsoft Graph 根据已发布的日程安排安排多个会议, (如课程) 或外部日程安排工具。 在这种情况下,应用程序可以代表任何用户进行操作。 因此,请务必确保用户拥有访问联机会议所需的权限,例如作为组织者或共同组织者。

允许应用程序访问用户创建的虚拟事件

如果未显示已登录用户,应用可以使用应用程序权限调用 Microsoft Graph 来访问虚拟事件。 例如,应用可以调用 Microsoft Graph 来查找用户已创建的虚拟事件,或者检索用户创建的虚拟事件的出席报告,而无需使用该用户的委派权限。 在这些情况下,用户必须是该虚拟活动的组织者。

按照以下步骤为云通信资源(例如联机会议和虚拟事件)配置应用程序访问策略。 这些步骤不适用于其他 Microsoft Graph 资源。

比较联机会议和虚拟事件的应用程序访问策略

下表比较了在涉及两个用户的各种情况下联机会议和虚拟事件的应用程序访问策略。 这些方案涉及两个用户 (user_1user_2) 以及以下应用程序访问策略:

  • Policy_1 包含一个应用 ID (app_1)
  • Policy_2 包含一个应用 ID (app_2)
  • Policy_3 包含应用 ID (app_1 和app_2)
应用场景 在线会议 虚拟事件
policy_1分配给user_1,policy_2分配给 user_2 app_1只能以user_1身份访问联机会议
app_2只能以user_2身份访问联机会议
app_1只能访问由 user_1 创建的虚拟事件
app_2只能访问由 user_2 创建的虚拟事件
policy_1 分配给 user_1user_2 app_1可以user_1访问联机会议
app_1可以user_2访问联机会议
app_1可以访问由 user_1 创建的虚拟事件
app_1可以访问由 user_2 创建的虚拟事件
policy_3分配给user_1,则不会向user_2分配任何策略 app_1app_2可以user_1访问联机会议
任何应用都无法以user_2访问联机会议
app_1app_2可以访问user_1创建的虚拟事件
任何应用都无法访问user_2创建的虚拟事件
policy_3 分配给整个租户 app_1app_2都可以以user_1user_2的形式访问联机会议 app_1app_2都可以访问由 user_1user_2 创建的虚拟事件

配置应用程序访问策略

若要配置应用程序访问策略并允许应用程序使用应用程序权限访问联机会议,请执行以下操作:

  1. 确定应用的应用程序 (客户端) ID,以及授权应用访问联机会议的用户 ID。

  2. 使用管理员帐户连接到 Skype for Business PowerShell。 有关详细信息,请参阅 使用 PowerShell 管理 Skype for Business Online

  3. 创建包含应用 ID 列表的应用程序访问策略。

    运行以下 cmdlet,替换 IdentityAppIdsDescription (可选的) 参数。

    New-CsApplicationAccessPolicy -Identity Test-policy -AppIds "ddb80e06-92f3-4978-bc22-a0eee85e6a9e", "ccb80e06-92f3-4978-bc22-a0eee85e6a9e", "bbb80e06-92f3-4978-bc22-a0eee85e6a9e" -Description "description here"
    
  4. 向用户授予策略,以允许策略中包含的应用 ID 代表被授权用户访问 1 个) 联机会议,以及 2 个) 由授权用户创建的虚拟事件。

    运行以下 cmdlet,替换 PolicyNameIdentity 参数。

    Grant-CsApplicationAccessPolicy -PolicyName Test-policy -Identity "748d2cbb-3b55-40ed-8c34-2eae5932b22a"
    
  5. (可选) 向整个租户授予策略。 这将适用于未分配应用程序访问策略的用户。 有关详细信息,请参阅 相关内容 部分中的 cmdlet 链接。

    运行以下 cmdlet,替换 PolicyName 参数。

    Grant-CsApplicationAccessPolicy -PolicyName Test-policy -Global
    

注意

  • 标识 是指创建策略时的策略名称,但在授予策略时是指用户 ID。
  • 授予策略时,该策略将应用于联机会议和虚拟活动。 如果希望单独管理联机会议和虚拟事件,建议使用两个单独的应用程序。
  • 对应用程序访问策略的更改可能需要长达 30 分钟才能在 Microsoft Graph REST API 调用中生效。

受支持的权限和其他资源

管理员可以使用 ApplicationAccessPolicy cmdlet 控制已授予以下任何应用程序权限的应用的联机会议和虚拟事件访问权限:

  • OnlineMeetings.Read.All
  • OnlineMeetings.ReadWrite.All
  • OnlineMeetingArtifact.Read.All
  • OnlineMeetingTranscript.Read.All
  • OnlineMeetingRecording.Read.All
  • VirtualEvent.Read.All

有关配置应用程序访问策略的详细信息,请参阅适合于 New-ApplicationAccessPolicy 的 PowerShell cmdlet 参考

错误

如果在未配置应用程序访问策略的情况下尝试通过 API 调用来访问联机会议或虚拟事件,可能会遇到以下错误:

{
    "error": {
        "code": "Forbidden",
        "message": "No application access policy found for this app",
        "innerError": {
            "date": "<date_redacted>",
            "request-id": "599d9cb0-56ac-4dc5-b6f8-1456a1414609"
        }
    }
}

按照本文中的步骤创建和/或授予应用程序访问策略,该策略包含用户 ID 的应用 ID。