功能

目前,该集成提供以下主要功能:

  1. 支持最终用户使用任何连接到 Google G Suite Calendar (Google Calendar) 的日历客户端安排协作会议,而无需安装插件或分机。 只需在“位置”字段中输入关键字(例如,@webex 或 @meet)。

  2. 在用户的台式机、移动设备和硬终端的 Webex 应用程序中显示会议列表。

  3. 弹出带有“加入”按钮的通知,也称为一键通 (OBTP)。

  4. 更新用户的 Webex 在线状态(当用户在 Gmail 中开启假期响应者时,有时称为“外出”状态)。

本文概述了基于云的混合日历服务如何将 Google Calendar 与 Webex 云集成来提供这些功能。

有关其他混合日历服务集成的类似概述,请参阅以下文章:

关于最新功能与部署信息,请参阅https://www.cisco.com/go/hybrid-services-calendar

数据处理

混合日历服务从日历系统接收会议详情,并分析可用于加入会议的 URI 和 URL 的会议位置和正文。 该服务使用开始和结束时间以及受邀者等其他信息来填充 Cisco Webex 应用程序和某些设备上的会议列表,并提供一键通 (OBTP)。 服务不会存储或发送未加密的敏感数据,如会议描述、会议正文或受邀者的电子邮件地址。 为了提供会议列表和 OBTP,该数据经过加密后发送到 Webex 云(并以加密形式存储在云中)。

对于数据加密,混合日历服务使用与 Webex 应用程序相同的 Webex 云加密服务。 因此,密钥管理可通过云密钥管理服务器 (KMS) 提供;如果您选择部署混合数据安全,则由您自己的本地部署 KMS 提供。(有关更多详细信息,请参阅 Cisco Webex 安全白皮书。)

部署期间的身份验证和授权

混合日历服务对 Google 授权服务器使用 OAuth 2.0 客户端凭证授权流。

应用程序身份验证过程

混合日历服务已注册为配合 Google 使用的应用程序。 因此,它使用具有全域授权的服务帐户,因而无需用户同意。 (有关其他详细信息,请参阅https://developers.google.com/identity/protocols/OAuth2ServiceAccount。)

混合日历服务必须具有以下应用程序权限:

权限

使用情况

管理用户日历

https://www.googleapis.com/auth/calendar

  • 使用加入详情更新会议文本。

  • 确定用户语言以进行本地化。

管理基本邮件设置

https://www.googleapis.com/auth/gmail.settings.basic
  • 阅读“不在办公室”状态。

Cisco Webex Control Hub 中,只有具有特许访问权限的管理员才能为混合日历服务预先配置客户的组织。 管理员必须将客户端标识和授权范围从 Control Hub 复制并粘贴到 Google G Suite 域管理控制台的 Manage API 客户端访问部分。

该流程包含以下高级步骤:

  1. 使用服务帐户凭证时,该应用程序从 Google 授权服务器获取用户级访问令牌来获取对用户日历的访问权限。

  2. 应用程序使用 Google Calendar API 调用中的访问令牌来获取对日历信息的访问权限。

预配置过程

激活用户以访问日历

在成功将混合日历服务预配置为注册应用程序后,管理员必须显式激活用户,以允许该服务访问其各自的 G Suite 日历。

如要成功激活用户以便访问日历,必须满足以下条件:
  • 用户在 Control Hub 中的电子邮件地址必须与其在组织的 Google G Suite 租户中的 Google 日历帐户匹配。

  • 管理员必须验证用户电子邮件地址中的域,或用户需要成功登录 Webex 来验证其电子邮件地址。

激活用户后会通知混合日历服务验证它是否具有访问 G Suite 中用户日历的正确权限。

成功验证是使用混合日历服务功能的必要条件。 如果服务无法验证用户,会将用户置于错误状态。 该服务强制执行一项策略,仅访问成功激活的用户的日历以便继续处理。

正在进行的操作

混合日历服务使用 Google Calendar REST API。 此 API 支持对 Google Calendar 进行各种操作。 但是,混合日历服务仅使用与日历使用相关的命令子集。

表 1. 当前由混合日历服务使用的操作

REST API

使用情况

GET calendars/calendarId/events

日历活动的列表。

GET calendars/calendarId/events/{eventId}/instances

指定的重复活动的实例。

GET /calendars/calendarId/events/{eventId}

日历中单个活动的相关信息。

PATCH /calendars/{calendarId}/events/{eventId}

更新日历活动的属性(包括加入信息和扩展属性)。

POST /calendars/calendarId/events/quickAdd

创建基于简单文本字符串的活动。

POST /calendars/calendarId/events/watch

订阅对用户日历更改的相关通知。

POST /channels/stop

取消订阅对用户日历更改的相关通知。

GET /users/me/settings/{setting}

检索用户的区域设置。

GET /users/{userId}/settings/vacation

获取用户的假期响应者设置。

POST /calendars/{calendarId}/acl

创建访问控制规则。

DELETE /calendars/{calendarId}/acl

删除访问控制规则。