跳转到主要内容
默认情况下,在 Process 技能中使用 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 页面,显示项目名称 field
  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/
您也可以手动选择 scope。需要选择以下 scope:
  • openid
  • https://mail.google.com/
  • ../auth2/userinfo.email
  • ../auth2/userinfo.profile
  1. 单击 Update。这将关闭 Update selected scopes 对话框并显示所选的 scope。
“Update selected scopes” 对话框,显示所需的 OAuth scope
  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 client 创建完成对话框 这些数据是用于在 Vantage 中设置 tokenmanagement 服务所必需的。您可以立即保存它们,或者稍后导航到 APIs & Services > Credentials,并选择您创建的 OAuth 2.0 client 标识符来复制它们。

发布和验证

应用程序的发布状态显示在 APIs & Services > OAuth consent screen 部分。 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 consent screen 部分的底部,并且在项目的整个生命周期内无法重置。
OAuth 用户上限显示当前用户数为 0,用户上限为 100

在 Microsoft Azure 中注册应用程序

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

注册应用程序

  1. 导航到 App registrations 页面。
  2. 单击 New registration
  3. 为应用程序指定名称并选择支持的帐户类型。
Azure Register an application form showing Name field and Supported account types options
如果为应用程序选择了 Multitenant 类型,则它将对任意 Azure AD 租户中的用户可用。此类应用程序需要通过验证,而验证仅对 Microsoft Partner Network 成员开放。如果您不是成员,请选择 Single tenant,这样应用程序仅对您自己 Azure AD 租户中的用户可用。
  1. Redirect URI 部分,选择 Web 平台并指定重定向 URI:
https://<Vantage 主机名>/connectors-tokens-callback.html
已选择 Web 平台的 Azure 重定向 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 permissions 对话框中已选中的 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 项目,显示服务列表,其中 tokenmanagement 高亮显示
  1. 选择 tokenmanagement 服务。
Consul 中的 tokenmanagement 服务,显示 oAuthClientConfiguration 部分
  1. 进入 oAuthClientConfiguration 部分。
Consul 中的 oAuthClientConfiguration,显示 google 和 microsoft 选项
  1. 选择要为其指定用户数据的服务(googlemicrosoft)。
Consul 中的 oAuthClientConfiguration 部分,显示包含 clientId 和 clientSecret 键的 google 服务
  1. 选择 clientId 键。
  2. 将之前保存的 Client ID 值复制并粘贴到输入字段中,然后单击 Save
Consul clientId 值编辑器,其中包含 Save 按钮
  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)

更新 Client Secret

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

在 Google 中更新 Client Secret

  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 field 的 Google Cloud OAuth 客户端详细信息

在 Microsoft Azure 中更新 Client Secret

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

在 Consul 中更新 Client Secret

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