跳转到主要内容
默认情况下,使用流程技能中的 Input 活动设置从电子邮件服务导入文档的用户只能使用 IMAP 服务器的基本身份验证方式。要通过 OAuth 2.0 协议启用 Google 和 Microsoft 电子邮件服务的身份验证,您需要:
  1. 在 Google Cloud Platform 和/或 Azure 门户中注册应用程序。
  2. 为这些应用程序生成帐户凭据(Client ID 和 Client secret)。
  3. 将生成的凭据提供给 Consul。
这些步骤可以在安装 Vantage 之前或之后完成。

在 Google 中注册应用

要创建应用,需要一个 Google 账户。

在 Google Cloud Platform 上创建项目

  1. 打开 Google Cloud Platform 的 New Project 页面。
  2. 为项目指定一个名称,然后单击 Create
Google Cloud Platform New Project 页面,其中显示项目名称字段
  1. 等待系统显示项目已创建的通知。
Google Cloud Platform 通知,显示项目创建确认信息

配置应用程序

  1. 转到 Google Cloud Console,并选择对应的项目。
Google Cloud Console 项目选择下拉列表
  1. 在屏幕左侧的菜单中,选择 APIs & Services > OAuth consent screen
Google Cloud Console 菜单中显示带有 OAuth consent screen 选项的 APIs & Services
  1. 选择 External 用户类型并单击 Create
  2. 为应用程序指定一个名称。在 User support email 下拉列表中选择你的 Gmail 地址。
OAuth consent screen 应用信息表单,其中包含应用名称和用户支持邮箱字段
  1. 在页面底部的 Developer contact information 部分中指定开发人员的电子邮箱,然后单击 Save and continue
带有电子邮箱字段的 Developer contact information 部分
  1. 单击 Add or remove scopes。这将在右侧打开 Update selected scopes 对话框。
  2. 将以下文本复制并粘贴到对话框底部的 Manually add scopes 字段中,然后单击 Add to table
openid https://www.googleapis.com/auth2/userinfo.email https://www.googleapis.com/auth2/userinfo.profile https://mail.google.com/
您也可以手动选择作用域。需要选择以下作用域:
  • openid
  • https://mail.google.com/
  • ../auth2/userinfo.email
  • ../auth2/userinfo.profile
  1. 单击 Update(更新)。这将关闭 Update selected scopes(更新选定作用域) 对话框并显示选定的作用域。
“Update selected scopes” 对话框显示所需的 OAuth 作用域
  1. 单击屏幕底部的 Save and continue(保存并继续)
  2. 单击 Save and continue(保存并继续),跳过 Test users(测试用户) 页面设置并转到 Summary(摘要) 页面。
Summary(摘要) 页面上,您将看到有关应用程序、电子邮件地址以及已配置权限的信息。

创建账户凭据

  1. 在屏幕左侧的菜单中选择 Credentials
  2. 点击 + Create credentials,然后选择 OAuth client ID
“Create credentials” 下拉菜单,显示 OAuth client ID 选项
  1. 选择 Web application 类型。
创建 OAuth client ID 表单,其中 Application type 下拉列表显示 Web application
  1. Authorized redirect URIs 部分,选择 + Add URI
Authorized redirect URIs 部分,带有 Add URI 按钮
  1. 在新出现的字段中指定重定向 URI:
https://<Vantage 主机名>/connectors-tokens-callback.html
包含 Vantage 回调 URL 和 CREATE 按钮的 Redirect URI 字段
  1. 点击 Create
弹出的对话框中会显示 Client IDClient secret 的值。 显示 Client ID 和 Client secret 值的 OAuth 客户端创建完成对话框 这些数据是在 Vantage 中设置 tokenmanagement 服务所必需的。您可以立即保存这些数据,或者稍后通过导航到 APIs & Services > Credentials 并选择您创建的 OAuth 2.0 客户端标识符来复制它们。

发布和验证

应用程序的发布状态显示在 APIs & Services > OAuth consent screen(OAuth 同意界面) 部分。 OAuth 同意界面显示状态为 Testing,并带有 Publish App 按钮 状态为 Testing 的应用程序仅对已添加到测试人员列表中的用户可用。只有发布应用程序后,它才对拥有 Google 账户的任何用户可用。 单击 Publish apphttps://mail.google.com/ 作用域允许应用程序访问机密用户数据,因此会显示一条消息,提示应用程序需要经过验证。 要验证应用程序,您需要提供:
  • 指向该应用程序隐私政策的官方链接
  • 一个 YouTube 视频,用于演示使用该应用程序获取 Google 用户数据的声明目的
  • 一份致 Google 的说明文本,其中包含您为何需要访问机密用户数据的描述
  • 在 Google Search Console 中已验证的所有域名的完整列表
单击 Confirm。您的应用程序状态将变为 In Production 同时还会显示 Prepare for verification 按钮,使您能够提供所有必需的验证数据。 OAuth 同意界面显示状态为 In Production,并带有验证警告和 Prepare for Verification 按钮
在您的应用程序通过验证之前,最多只有 100 位用户可以使用它。用户计数器位于 OAuth 同意界面部分的底部,在项目整个生命周期内无法重置。
OAuth 用户上限显示 0 / 100 用户上限

在 Microsoft Azure 中注册应用程序

要创建应用程序,您需要一个具备应用注册和编辑权限的 Azure Active Directory 租户。 您可以在 Portal settings | Directories + subscriptions 页面中切换到正确的目录。

注册应用程序

  1. 转到 App registrations 页面。
  2. 单击 New registration
  3. 为应用程序指定名称,并选择受支持的帐户类型。
Azure 注册应用程序表单,显示 Name 字段和 Supported account types 选项
如果为应用程序选择了 Multitenant 类型,则该应用程序将可供任何 Azure AD 租户中的用户使用。此类应用程序需要通过验证,而验证仅对 Microsoft Partner Network 参与者开放。如果您不是参与者,请选择 Single tenant,这样您的应用程序仅可供您自己 Azure AD 租户中的用户使用。
  1. Redirect URI 部分,选择 Web 平台并指定重定向 URI:
https://<Vantage 主机名>/connectors-tokens-callback.html
Azure 中已选择 Web 平台的重定向 URI 部分
  1. 单击 Register

设置应用程序权限

  1. 转到 API permissions 选项卡。
Azure 门户侧边栏,其中 API permissions 菜单选项被高亮显示
  1. 单击 Add permission
  2. 在弹出的对话框中,选择 Microsoft Graph 部分。
Request API permissions 对话框,其中 Microsoft Graph 选项被高亮显示
  1. 选择 Delegated permissions
Microsoft Graph 权限对话框,已选中 Delegated permissions 选项
  1. 添加以下权限:
    • email
    • IMAP.AccessAsUser.All
    • offline_access
    • openid
    • profile
  2. 单击 Add permissions。此操作将关闭对话框,并显示所选权限。

创建客户端机密

  1. 转到 Authentication 选项卡。
Azure portal sidebar showing Authentication menu option highlighted
  1. Implicit grant and hybrid flows 部分,勾选 ID tokens (used for implicit and hybrid flows)
Implicit grant and hybrid flows section with ID tokens checkbox
  1. 点击屏幕顶部的 Save
  2. 转到 Certificates & secrets 选项卡并点击 New client secret
Certificates & secrets tab showing New client secret button
  1. 在打开的对话框中,为客户端机密指定名称并设置到期日期。
最长有效期为 24 个月。
  1. 点击 Add。此操作将关闭对话框,并显示有关新客户端机密的信息。
请务必复制并保存该机密的 Value,因为关闭页面后将无法再次访问它。在 Vantage 中配置 tokenmanagement 服务时需要使用此值。
Client secrets list showing the secret Value column highlighted 你还需要一个客户端标识符,可以从 Overview 选项卡中的 Application (client) ID 字段复制。将鼠标指针悬停在标识符的值上后会显示复制图标。 Azure application Overview showing Application (client) ID field highlighted

验证应用程序

要让来自任意 Azure AD 租户的用户都可以使用该应用程序,需要完成验证。若只使用来自单个 Azure AD 租户的账户,则不需要验证。 只有 Microsoft Partner Network 的成员才能进行验证。
  1. 转到 Branding & properties 选项卡。
Azure portal sidebar showing Branding & properties menu option highlighted
  1. 确认在 Publisher domain 字段中已指定域名。如有需要,单击 Configure a domain 配置您的域。
Azure Branding & properties page showing Publisher domain field with Update domain option
域名旁边显示的警告图标表示使用该域的应用程序无法通过验证。单击 Update domain,指定与 Azure Active Directory 租户关联的其他有效域。或者,验证一个新域。
  1. Publisher verification 部分中指定您的 MPN ID,然后单击 Verify and save
如果您没有添加 MPN ID 所需的权限,请确认已满足所有发布者验证要求。
验证成功后,相应的图标会显示在 Publisher display name 字段旁边。

将凭据传递给 Consul

如果已安装 Vantage,则需要使用 Consul 手动输入为 Microsoft 和/或 Google 邮件服务身份验证生成的账户凭据。 OAuth 2.0 协议特有的功能列在 TokenManagement 服务中。
在开始设置之前,请确认已安装 kubectl 命令行工具,并且您已连接到 Kubernetes 集群。
  1. 通过运行以下命令访问 Consul Web 界面:
kubectl port-forward -n abbyy-infrastructure service/consul-ui 8500:80
然后访问 http://localhost:8500/ui/dc1/kv/secret/
  1. 在打开的 Key/Value 选项卡中,选择相应的 Vantage 部署作用域。然后选择 vantage 项目。
Consul vantage project showing list of services with tokenmanagement highlighted
  1. 选择 tokenmanagement 服务。
Consul tokenmanagement service showing oAuthClientConfiguration section
  1. 转到 oAuthClientConfiguration 部分。
Consul oAuthClientConfiguration showing google and microsoft options
  1. 选择要为其指定用户数据的服务(googlemicrosoft)。
Consul oAuthClientConfiguration section showing google service with clientId and clientSecret keys
  1. 选择 clientId 键。
  2. 将之前保存的 Client ID 值复制并粘贴到输入字段中,然后单击 Save
Consul clientId value editor with Save button
  1. clientSecret 键重复步骤 6 和 7。
如有需要,可针对其他电子邮件服务重复步骤 5 至 8。
  1. 通过运行以下命令重新启动 tokenmanagement 服务:
kubectl -n abbyy-vantage rollout restart $(kubectl -n abbyy-vantage get deployments -l app.kubernetes.io/component=tokenmanagement -o name)

更新客户端机密

客户端机密值用于在服务器端标识客户端,并属于机密信息。出于安全考虑,应定期更新这些数据。某些服务(如 Azure Active Directory)会限制此类数据的有效期。 创建新的客户端机密后,还应更新相应的 Consul 键的值。
更新客户端机密后,用户需要在文档技能的 Input 活动中从头重新配置与其电子邮件服务的连接。否则,Vantage 将无法连接到邮箱并从中导入电子邮件。

在 Google 中更新客户端机密

  1. 打开 Google Cloud Console 并选择相应的项目。
  2. 在左侧菜单中选择 APIs & Services > Credentials
  3. OAuth 2.0 Client IDs 部分,选择用于连接 IMAP 服务器进行身份验证的标识符。
  4. 单击 Reset secret
显示 Reset Secret 按钮的 Google Cloud OAuth 客户端详细信息
  1. 在弹出的对话框中单击 Reset。这将更新 Client secret 的值,并使之前的值失效。
  2. 下载包含凭据的 JSON 文件。或者,从屏幕右侧复制 Client secret 的值。
显示 Download JSON 按钮和 Client secret 字段的 Google Cloud OAuth 客户端详细信息

在 Microsoft Azure 中更新客户端机密

  1. 转到 App registrations 页面,并选择用于通过 IMAP 服务器进行身份验证的应用程序。
Azure App registrations page showing Owned applications list with Example App
  1. 转到 Certificates & secrets 选项卡并单击 New client secret
  2. 在打开的对话框中,为客户端机密指定名称和过期日期。
  3. 单击 Add。对话框将关闭,并显示新客户端机密的信息。请务必复制并保存其 Value,因为关闭此页面后将无法再次访问该值。
  4. 如果当前客户端机密尚未过期,可以将其删除,以确保仅使用新的客户端机密来标识客户端。

在 Consul 中更新 Client Secret

按照将凭据传递给 Consul一节中的步骤进行操作,跳过第 6 和第 7 步(复制 clientId 值)。