使用 OAuth 2.0 客户端凭据向 Google Workspace API 进行身份验证

本文档介绍如何设置身份验证,以使用 OAuth 2.0 客户端凭据访问 Google Workspace API。借助 OAuth 2.0 客户端凭据,您可以在最终用户的情境中检索令牌,例如访问 Google 表格所需的令牌。无论您的 SAP 系统托管在何处,只要系统支持 OAuth 2.0,您就可以使用 OAuth 2.0 客户端凭据向 Google Workspace API 进行身份验证。

如需使用 OAuth 2.0 客户端凭据向 Google Workspace API 进行身份验证,您需要在 Google Cloud 项目和 SAP 环境中完成以下配置:

Google Cloud 控制台配置

SAP 环境配置

ABAP SDK for Google Cloud 附带了以下核心组件,这些核心组件是基于 OAuth 2.0 客户端凭据的身份验证所必需的:

  • 您为 OAuth 2.0 客户端配置文件指定的 OAuth 2.0 服务提供方类型 /GOOG/ABAP_SDK
  • 您为客户端密钥配置指定的身份验证类 /GOOG/CL_OAUTH_GOOGLE
  • 用于预先填充 Google 特定 OAuth 参数(例如端点和必需参数设置)的 SAP Business Add-Ins (BAdIs) 实现。

但是,您还需要在 SAP 环境中完成以下配置:

OAuth 权限请求页面是一种提示,告知用户谁请求访问其数据,以及用户允许您的应用访问哪些类型的数据。

  1. 在 Google Cloud 控制台中,点击菜单 > API 和服务 > OAuth 权限请求页面

    转到 OAuth 同意屏幕

  2. 为您的应用选择外部用户类型,然后点击创建

  3. 如需填写应用注册表单,请指定以下详细信息:

    • 应用名称:需要征得用户同意的应用的名称。
    • 用户支持电子邮件:用户用于针对其同意问题与您联系的支持电子邮件。
    • 已获授权的网域:在 OAuth 同意请求期间使用的网域。
    • 开发者联系信息:Google 用于通知有关您的项目的任何更改的电子邮件地址。
  4. 点击 Save and Continue(保存并继续)。

创建 OAuth 2.0 客户端 ID

如需以最终用户身份进行身份验证并访问应用中的用户数据,您需要创建一个或多个 OAuth 2.0 客户端 ID。客户端 ID 用于向 Google 的 OAuth 服务器标识单个应用。

  1. 在 Google Cloud 控制台中,转到菜单 > API 和服务 > 凭据

    进入“凭据”页面

  2. 点击创建凭据 > OAuth 客户端 ID

  3. 应用类型字段中,选择 Web 应用

  4. 名称字段中,输入凭据的名称。此名称仅在 Google Cloud 控制台中显示。

  5. 已获授权的重定向 URI 下,点击添加 URI。 然后,输入您的 SAP 重定向 URI,OAuth 2.0 服务器可以向其发送响应。

    您可以在 SICF 事务中从 OAuth 2.0 设置获取 SAP 重定向 URI。

  6. 点击创建

  7. 记下客户端 ID客户端密钥

创建 OAuth 2.0 客户端配置文件

作为 ABAP 开发者,您可以创建一个具有您的业务需求所需的 OAuth 2.0 范围的 OAuth 客户端配置文件。如需了解适用于 Google API 的 OAuth 2.0 范围,请参阅适用于 Google API 的 OAuth 2.0 范围

SDK 附带示例 OAuth 客户端配置文件 /GOOG/OAUTH_PROFILE_SAMPLE,并为 Google Sheets API 配置了 OAuth 2.0 范围。

  1. 在 SAP GUI 中,输入事务代码 SE80
  2. 从下拉列表中选择 Development Object
  3. 如需在自定义命名空间中创建开发对象,请在对象名称上下文菜单中选择 Create > Others > OAuth 2.0 Client Profile
  4. 输入以下详细信息:

    • Client Profile 字段中,输入客户端配置文件的名称。
    • 类型字段中,选择 /GOOG/ABAP_SDK。 这是 ABAP SDK for Google Cloud 附带的默认提供方类型。
  5. 向客户端配置文件添加必要的范围。如需了解 OAuth 2.0 范围,请参阅适用于 Google API 的 OAuth 2.0 范围

  6. 将客户端配置文件保存到开发软件包。在传输请求中添加客户端配置文件,该请求可以传输到更高的环境。

配置 OAuth 2.0 客户端

作为 SAP 管理员,您可以将 OAuth 客户端配置文件与 Google Cloud 客户端凭据相关联。

这是您需要在 SAP 环境(开发、测试和生产)中的每个 SAP 系统上执行的一次性活动。

  1. 在 SAP GUI 中,输入事务代码 OA2C_CONFIG。 SAP 登录页面会在默认浏览器中打开。
  2. 使用您的 SAP 凭据登录。
  3. 如需创建 OAuth 2.0 客户端,请点击 Create
  4. Create a new OAuth 2.0 client 对话框中,执行以下操作:
    1. 选择您之前在 SAP 系统中创建 OAuth 2.0 客户端配置文件中创建的 OAuth 2.0 客户端配置文件。
    2. 输入配置名称。
    3. 输入您之前在创建 OAuth 2.0 客户端 ID 凭据中创建的 Google Cloud 凭据中的 OAuth 2.0 客户端 ID。
    4. 点击确定
  5. Administration 标签页上的 General Setting 部分中,输入您之前在创建 OAuth 2.0 客户端 ID 凭据中创建的 Google Cloud 凭据中的客户端密钥。
  6. 如果您使用代理服务器从 SAP 系统路由出站 HTTP/HTTPS 流量,则需要在 Access Settings 部分中维护以下代理主机详细信息:

    • 代理主机
    • 代理端口
    • 代理用户
    • 代理密码
  7. 点击保存

配置客户端密钥

  1. 在 SAP GUI 中,执行事务代码 /GOOG/SDK_IMG

    或者,执行事务代码 SPRO,然后点击 SAP Reference IMG

  2. 点击 ABAP SDK for Google Cloud > 基本设置 > 配置客户端密钥
  3. 点击新建条目
  4. 输入以下字段的值:

    字段 说明
    Google Cloud 密钥名称 指定客户端密钥配置的名称。
    Google Cloud 服务账号名称 将此字段留空。
    Google Cloud 范围 将此字段留空。
    Google Cloud 项目标识符 指定包含目标 API 的 Google Cloud 项目的 ID。
    命令名称 将此字段留空。
    授权类 指定身份验证类 /GOOG/CL_OAUTH_GOOGLE
    令牌缓存 将此字段留空。
    令牌刷新秒数 将此字段留空。
    授权参数 1 指定您之前在 SAP 系统中创建 OAuth 2.0 客户端配置文件中创建的 OAuth 客户端配置文件的名称。
    授权参数 2

    指定您在 OAuth 2.0 客户端中为客户端 ID 定义的配置名称。

    如果您已将单个 OAuth 客户端配置文件与多个客户端 ID 相关联,则此字段为必填字段。

    如需了解详情,请参阅多个 Google Cloud 项目场景

  5. 保存新条目。

请求 OAuth 2.0 访问令牌

作为最终用户,您需要请求 OAuth 2.0 访问令牌以允许访问 API 资源。

这是每个用户需要在 SAP 环境(开发、测试和生产)中的每个 SAP 系统上执行的一次性活动。如果修改了 OAuth 范围,则用户需要重复此活动。

  1. 在 SAP GUI 中,输入事务代码 OA2C_GRANT。 SAP 登录页面会在默认浏览器中打开。
  2. 使用您的 SAP 凭据登录。
  3. 选择您要用于访问 API 的客户端 ID。
  4. 点击 Request OAuth 2.0 Tokens
  5. Sign in with Google 权限请求页面中,输入您的 Google 账号凭据,然后点击 Allow

    Access Status 列中的绿色指示符表示允许根据 OAuth 2.0 客户端配置文件访问 API 资源。

多个 Google Cloud 项目场景

如果您在多个 Google Cloud 项目中启用了 Google Cloud API,请按照以下指导使用 OAuth 2.0 客户端凭据设置身份验证:

验证身份验证配置

如需验证身份验证配置,请执行以下步骤:

  1. 在 SAP GUI 中,执行事务代码 /GOOG/SDK_IMG

    或者,执行事务代码 SPRO,然后点击 SAP Reference IMG

  2. 点击 ABAP SDK for Google Cloud > 实用程序 > 验证身份验证配置

  3. 输入客户端密钥名称。

  4. 点击 Execute 以检查整体流是否已成功配置。

    结果列中的绿色对勾标记表示所有配置步骤均已成功完成。

获取支持

如果您在解决 ABAP SDK for Google Cloud 问题时需要帮助,请执行以下操作: