使用访问令牌进行身份验证

本文档介绍如何设置身份验证,以便在 SAP 系统在 Compute Engine 虚拟机实例上托管时访问 Google Cloud API。

设置身份验证

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

  1. 在 Google Cloud 控制台中,为需要身份验证的 Google Cloud 项目启用 IAM Service Account Credentials API。除了 IAM Service Account Credentials API 之外,您还需要启用计划使用 SDK 访问的任何其他受支持的 API

    转到 API 库

    如需了解如何启用 Google Cloud API,请参阅启用 API

  2. 在 Google Cloud 控制台中,为主机虚拟机实例创建 IAM 服务账号。

    转到“服务账号”

    如需了解如何创建服务账号,请参阅创建服务账号

  3. Service Account Token Creator 角色授予服务账号。 如需查看相关说明,请参阅授予单个角色

  4. 将服务账号关联到运行 SAP 工作负载的虚拟机实例。此外,请将虚拟机的访问权限范围设置为 cloud-platform

    • 如果您使用 Google Cloud 控制台指定服务账号,则虚拟机的访问权限范围会自动默认为 cloud-platform 范围。
    • 如果您使用 Google Cloud CLI 或 Compute Engine API 指定服务账号,则需要将 API 访问权限范围设置为 Allow full access to all Cloud APIs

      如需了解相关说明,请参阅创建虚拟机并关联服务账号

      更新范围后,重启虚拟机。如果您有多个虚拟机实例用于同一 SAP 安装,则必须在所有这些虚拟机实例上完成此步骤。

  5. 在 Google Cloud 控制台中,创建一个专用 IAM 服务账号以访问 Google Cloud API。

    转到“服务账号”

    如需查看相关说明,请参阅创建服务账号

  6. 向服务账号授予访问 API 功能所需的 IAM 角色。如需了解 Google Cloud API 的角色要求,请参阅各个 API 文档并遵循最小权限原则。如需详细了解 API 特定预定义角色,请参阅查找适用于 Google Cloud API 的 IAM 角色

  7. 如果您在与包含 Google Cloud API 的项目不同的项目中创建了服务账号,则必须为服务账号开设执行其他步骤。如需了解详情,请参阅在跨项目环境中设置服务账号

  8. 在 SAP 系统中,配置客户端密钥:

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

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

    2. 点击 ABAP SDK for Google Cloud > 基本设置 > 配置客户端密钥

    3. 点击新建条目

    4. 输入以下字段的值:

      字段 说明
      Google Cloud 密钥名称 指定客户端密钥配置的名称。例如 TEST_PUBSUB
      Google Cloud 服务账号名称

      指定您已授予 Google Cloud API 访问权限的服务账号的名称。例如,sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com

      如果包含 SDK 的 SAP 系统的主机虚拟机所在的项目与启用了 Google Cloud API 的项目不同,请指定用于访问 Google Cloud API 的服务账号。如需了解详情,请参阅在跨项目环境中设置服务账号

      Google Cloud 范围 指定 API 访问权限范围 https://www.googleapis.com/auth/cloud-platform
      Google Cloud 项目标识符 指定包含目标 API 的 Google Cloud 项目的 ID。
      命令名称 将此字段留空。
      授权类 指定授权类 /GOOG/CL_AUTH_GOOGLE
      令牌缓存

      此标志用于确定是否已缓存从 Google Cloud 检索到的访问令牌。

      我们建议您在完成与 Google Cloud 的连接的配置和测试后启用令牌缓存。如需详细了解令牌缓存,请参阅启用令牌缓存

      令牌刷新秒数 访问令牌在多久后(以秒为单位)会到期并且必须刷新。默认值为 3500
      授权参数 1 将此字段留空。
      授权参数 2 将此字段留空。
    5. 保存新条目。

  9. 在 SAP 系统中,为您计划通过 ABAP SDK for Google Cloud 使用的 API 创建新的 RFC 目标。

    如需了解如何创建 RFC 目标,请参阅 RFC 目标

  10. 在 SAP 系统中,为 IAM API 以及您计划通过 ABAP SDK for Google Cloud 使用的其他 API 配置服务映射表。

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

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

    2. 点击 ABAP SDK for Google Cloud > 基本设置 > 配置服务映射

    3. 点击新建条目

    4. 为 IAM API 和其他 API 指定 RFC 目标,例如 Pub/Sub API v1

      名称 服务名称 RFC 目标
      Google Cloud 密钥名称 iamcredentials.googleapis.com ZGOOG_IAMCREDENTIALS
      Google Cloud 密钥名称 pubsub:v1 ZGOOG_PUBSUB_V1
    5. 保存新条目。

  11. 在 SAP 系统中,验证身份验证配置。如需了解详情,请参阅验证身份验证配置

在跨项目环境中设置服务账号

包含 SDK 的 SAP 系统的主机虚拟机可以位于与启用了 Google Cloud API 的不同 Google Cloud 项目中。在这种情况下,您必须设置具有所需 IAM 角色的服务账号,以便 SDK 可以从不同项目访问 API。

下表展示了针对跨项目 API 访问的服务账号设置的示例。

环境 SAP 主机虚拟机 Google Cloud API
Google Cloud 项目 project-sap-host project-google-apis
分配给 SAP 主机虚拟机的服务账号 sa-sap-host@project-sap-host.iam.gserviceaccount.com 不适用
用于访问 Google Cloud API 的服务账号 sa-google-apis@project-sap-host.iam.gserviceaccount.com 不适用
服务账号的 IAM 角色 在项目 project-sap-host 中,向服务账号 sa-sap-host@project-sap-host.iam.gserviceaccount.com 授予 Service Account Token Creator 角色。 在项目 project-google-apis 中,将服务账号 sa-google-apis@project-sap-host.iam.gserviceaccount.com 添加为主账号,并向该服务账号授予适当的角色以连接到 Google Cloud API。

如需设置服务账号,请执行以下步骤:

  1. 在包含 SAP 主机虚拟机的 Google Cloud 项目中,为 SAP 主机虚拟机的服务账号授予 Service Account Token Creator 角色。如需详细了解这些步骤,请参阅授予单个角色
  2. 在包含 SAP 主机虚拟机的 Google Cloud 项目中,创建一个服务账号。记下服务账号的名称。您需要在将服务账号作为主账号添加到包含 Google Cloud API 的另一个项目时指定此名称。
  3. 在包含 Google Cloud API 的另一个项目中,将服务账号添加为主账号,并授予适当的角色以连接到 Google Cloud API。如需将服务账号添加到包含 Google Cloud API 的 Google Cloud 项目,请执行以下步骤:

    1. 在 Google Cloud 控制台中,进入“IAM 权限”页面:

      打开 IAM 权限

    2. 确认页面顶部附近显示了包含目标 Google Cloud API 的项目的名称。 例如:

      项目“PROJECT_NAME”的权限

      如果未显示,请切换项目。

    3. 在 IAM 页面上,点击 授予访问权限。系统会打开授予对“PROJECT_NAME”的访问权限对话框。

    4. 新的主账号字段中,指定服务账号的名称。

    5. 选择角色字段中,指定相关角色。 例如,对于 Pub/Sub,如需修改主题和订阅以及发布和使用消息的权限,您可以指定 Pub/Sub Editor 角色 (roles/pubsub.editor)。

      如需详细了解 API 特定预定义角色,请参阅 IAM 基本角色和预定义角色参考文档

    6. 根据 API 使用要求添加其他角色。 通过应用最小权限原则,实施 Google 推荐的最佳实践。

    7. 点击保存。该服务账号会显示在 IAM 页面上的项目主账号列表中。

验证身份验证配置

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

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

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

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

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

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

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

获取支持

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