功能

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

  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 的会议位置和正文。 该服务使用开始与结束时间以及受邀者等其它信息来填充Webex 应用程序应用程序以及特定设备上,并提供一键操作 (OBTP)。 服务不会存储或发送未加密的敏感数据,如会议描述、会议正文或受邀者的电子邮件地址。 为了提供会议列表和 OBTP,该数据经过加密后发送到 Webex 云(并以加密形式存储在云中)。

对于数据加密,混合日历使用与 Webex相同的云加密服务Webex 应用程序应用程序使用。 因此,密钥管理由云密钥管理服务器 (KMS) 提供,或者(如果您选择部署)混合数据安全,通过您自己的本地 KMS。(有关更多详细信息,请参阅 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
  • 阅读“不在办公室”状态。

作为Control Hub,只有具有特许访问权限的管理员可以为客户的组织设置混合日历。 管理员必须复制并粘贴客户端标识和授权范围(从Control Hub到 Google G Suite 域 管理控制台的管理 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

删除访问控制规则。

POST /calendars/{calendarId}/events

在日历中创建活动。

DELETE /calendars/{calendarId}/events/{eventId}

从日历中删除活动。

GET /freeBusy

显示指定时间范围内用户的可用性和忙/闲状态。