混合日历优势

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

  1. 为用户安排与连接到Google G Suite日历(Google Calendar)的任何日历客户端的协作会议。您无需安装插件或插件。在位置 字段中键入关键字(例如@webex或@meet)。

  2. 在 Webex 应用程序(桌面和移动)和物理终端上向用户显示会议列表。

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

  4. 当用户在Gmail中打开度假回复 时,更新用户的Webex应用程序存在状态(有时称为办公室外状态)。

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

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

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

数据处理

混合日历从日历系统中接收会议详细信息,并按以下方式使用这些详细信息:

  • 检查URI和URL的会议位置和正文,以加入会议
  • 邀请的标题作为会议标题
  • 开始和结束时间,以在Webex应用程序和某些设备上显示会议列表中的会议插槽
  • 受邀者填入会议列表中的与会者列表
  • 当需要加入时,受邀者向其发送“加入”按钮
  • 会议邀请机构填写Webex会议议程

该服务将加密数据发送到Webex云(并以加密形式存储数据),以提供会议列表和“加入”按钮。

该服务不会存储或传输未加密的数据。在存储和传输时,敏感数据(如会议说明、会议正文和受邀者的电子邮件地址)始终加密。

混合日历服务在有限的时间内保留会议数据。存储的数据涵盖过去7天到将来31天的会议。

对于数据加密,混合日历使用与Webex应用程序使用相同的Webex云加密服务。因此,云密钥管理服务器(KMS)提供密钥管理。如果您选择部署混合数据安全,您自己的本地KMS将提供密钥管理。(有关详细信息,请参阅 Webex应用程序安全文件。)

部署期间的验证和授权

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

应用程序验证过程

混合日历在Google中注册为应用程序。它使用具有全域委派的服务帐户,以避免需要用户同意。(有关详细信息,请参阅 https://developers.google.com/identity/protocols/OAuth2ServiceAccount。)

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

权限

使用情况

管理用户日历

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

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

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

管理基本邮件设置

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

在Control Hub中,只有具有特权访问权限的管理员才能为Hybrid Calendar提供客户组织。管理员必须将客户端标识和授权范围从 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

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