本文档介绍了如何设置身份验证,以使用 API 密钥访问 Google Cloud API。只有少数 Google Cloud API 使用 API 密钥进行身份验证,例如 Google Maps Platform。查看您要使用的服务或 API 的身份验证文档,以确定它是否支持 API 密钥。无论您的 SAP 系统在何处托管,只要您要使用的 API 支持 API 密钥,您便可以使用 API 密钥进行身份验证。
如需使用 API 密钥向 Google Cloud API 进行身份验证,请使用以下方法之一:
使用存储在 SAP SSF 中的 API 密钥进行身份验证
简要配置步骤如下:
创建 API 密钥
对于使用 API 密钥进行身份验证,您需要创建 API 密钥。API 密钥字符串是加密的字符串,例如 AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe
。ABAP SDK for Google Cloud 在调用 Google Cloud API 时,会使用 HTTP 请求中的 API 密钥字符串,以便安全地进行身份验证。
Google Cloud 提供了多种创建 API 密钥的方式。
如需使用 Google Cloud 控制台创建 API 密钥,请执行以下步骤:
在 Google Cloud 控制台中,进入凭据页面:
点击创建凭据,然后从菜单中选择 API 密钥。
已创建的 API 密钥对话框会显示 API 密钥字符串。请复制您的密钥字符串,并确保其安全。您需要使用此 API 密钥来配置向 Google Cloud 进行的身份验证。
默认情况下,API 密钥不受限制。我们建议您通过选择可使用此 API 密钥的 API 来限制 API 密钥。如需详细了解如何添加 API 限制,请参阅添加 API 限制。
将 API 密钥存储在 SSF 中
ABAP SDK for Google Cloud 提供了使用 SAP 安全存储和转发机制 (SSF) 安全地存储 API 密钥的选项。
通过使用 SSF 选项,您可以将 API 密钥以加密格式存储在表 /GOOG/APIKEY_BIN
中。调用 API 时,系统会从表 /GOOG/APIKEY_BIN
检索 API 密钥,对其进行解密,然后将其附加到 API 端点 URI。
出于安全考虑,您无法使用标准工具以及 SE16
、SE16N
或 SE11
等事务查看 /GOOG/APIKEY_BIN
的内容。
前提条件
如需使用存储在 SAP SSF 中的 API 密钥进行身份验证,您必须在 SAP 系统中安装版本 8.5 及更高版本的 SAP 加密库。如需详细了解 SAP 加密库,请参阅 1848999 - CommonCryptoLib 8 (SAPCRYPTOLIB) 的中心说明和 397175 - SAP 加密软件 - 导出控制。
如需验证 SAP 加密库的版本,请执行以下步骤:
- 在 SAP GUI 中,输入事务代码
STRUST
。 - 进入 Environment 菜单,然后点击 Display SSF Version。
设置 SSF 应用
在表 SSFAPPLIC
中,创建一个用于加密 API 密钥的新 SSF 应用 ZG_APK
。ZG_APK
是默认的 SSF 应用名称。
或者,您也可以使用偏好的名称创建 SSF 应用,或使用具有其他名称的现有 SSF 应用。如果您要使用其他 SSF 应用进行加密,则需要在客户端密钥表的 Authorization Parameter 1
中配置 SSF 应用名称。
如需在 SSFAPPLIC
表中创建新条目,请执行以下步骤:
- 在 SAP GUI 中,输入事务代码
SE16
。 - 在表名称字段中,输入
SSFAPPLIC
,然后创建一个新条目。 - 在
APPLIC
字段中,输入ZG_APK
。 在以下字段中指定值。
字段 值 APPLIC
ZG_APK
B_TOOLKIT
选择相应标志。 B_FORMAT
选择相应标志。 B_PAB
选择相应标志。 B_PROFID
选择相应标志。 B_PROFILE
选择相应标志。 B_HASHALG
将此字段留空。 B_ENCRALG
将此字段留空。 B_INCCERTS
将此字段留空。 B_DETACHED
将此字段留空。 B_ASKPWD
将此字段留空。 B_DISTRIB
选择相应标志。 DESCRIPT
API Key Encryption for GCP
保存新条目。
创建 SSF 参数
在 SAP GUI 中,输入事务代码
SM30
。打开视图
VSSFARGS
。为应用
ZG_APK
(API Key Encryption for GCP
) 创建一个新条目。系统会自动填充应用特定 SSF 参数。保存新条目。
创建个人安全环境 (PSE)
在 SAP GUI 中,输入事务代码
STRUST
。在适用于 GCP 的 SSF API 密钥加密节点下,右键点击并选择创建。
在 Algorithm 字段中,选择
RSA
。其他字段保留系统填充的默认值。保存新条目。
存储 API 密钥
在 SAP GUI 中,执行事务代码
/GOOG/SDK_IMG
。或者,执行事务代码
SPRO
,然后点击 SAP Reference IMG。点击 ABAP SDK for Google Cloud > 基本设置 > 配置 API 密钥(使用 SSF)。
在 Google Key Name 中,输入客户端密钥配置的名称。
在 API Key 字段中,输入您之前在创建 API 密钥中创建的 API 密钥。
选择保存。
点击 Execute 以存储 API 密钥。
配置客户端密钥
在 SAP GUI 中,执行事务代码
/GOOG/SDK_IMG
。或者,执行事务代码
SPRO
,然后点击 SAP Reference IMG。点击 ABAP SDK for Google Cloud > 基本设置 > 配置客户端密钥。
点击新建条目。
输入以下字段的值:
字段 说明 Google Cloud 密钥名称 指定客户端密钥配置的名称。 例如 DEMO_API_KEY
。Google Cloud 服务账号名称 将此字段留空。 Google Cloud 范围 指定 API 访问权限范围 https://www.googleapis.com/auth/cloud-platform
。项目 ID 指定包含目标 API 的 Google Cloud 项目的 ID。 命令名称 将此字段留空。 授权类 指定授权类 /GOOG/CL_AUTH_API_KEY_SSF
。令牌缓存 此标志用于确定是否已缓存从 Google Cloud 检索到的访问令牌。
我们建议您完成与 Google Cloud 的连接的配置和测试后启用令牌缓存。如需详细了解令牌缓存,请参阅启用令牌缓存。
令牌刷新秒数 指定访问令牌在多久后(以秒为单位)会到期并且必须刷新。默认值为 3500
。授权参数 1 如果 SSF 应用名称与 ZG_APK
不同,请指定您的 SSF 应用名称。授权参数 2 将此字段留空。 保存新条目。
创建新的 RFC 目标
对于您计划通过 ABAP SDK for Google Cloud 使用的 API,请创建新的 RFC 目标。
如需了解如何创建 RFC 目标,请参阅 RFC 目标。
如果没有创建和配置 RFC 目标,则 ABAP SDK for Google Cloud 会使用各个 API 客户端桩中维护的默认 API 端点运行。
配置服务映射
为您计划通过 ABAP SDK for Google Cloud 使用的 API 配置服务映射表。
在 SAP GUI 中,执行事务代码
/GOOG/SDK_IMG
。或者,执行事务代码
SPRO
,然后点击 SAP Reference IMG。点击 ABAP SDK for Google Cloud > 基本设置 > 配置服务映射。
点击新建条目。
为您计划使用的 API 指定 RFC 目标,例如
addressvalidation v1
。如果您要使用其他 API,请为这些 API 指定 RFC 目标。名称 服务名称 RFC 目标 Google Cloud 密钥名称 addressvalidation:v1
ZGOOG_ADDRVALDN_V1
保存新条目。
删除 API 密钥
如果 API 密钥不再使用,您可以从 SAP 系统中删除该 API 密钥。
如需删除 API 密钥,请执行以下步骤:
在 SAP GUI 中,执行事务代码
/GOOG/SDK_IMG
。或者,执行事务代码
SPRO
,然后点击 SAP Reference IMG。点击 ABAP SDK for Google Cloud > 基本设置 > 配置 API 密钥(使用 SSF)。
在 Google Key Name 字段中,输入客户端密钥配置的名称。
选择删除。
点击执行以删除 API 密钥。
使用存储在 Secret Manager 中的 API 密钥进行身份验证
简要配置步骤如下:
- 创建 API 密钥
- 创建 Secret 并存储 API 密钥
- 配置客户端密钥以访问 Secret Manager
- 为 Secret 配置客户端密钥
- 创建新的 RFC 目标
- 配置服务映射
- 验证从 Secret Manager 检索的 API 密钥
- 验证身份验证配置
创建 API 密钥
对于使用 API 密钥进行身份验证,您需要创建 API 密钥。API 密钥字符串是加密的字符串,例如 AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe
。ABAP SDK for Google Cloud 在调用 Google Cloud API 时,会使用 HTTP 请求中的 API 密钥字符串,以便安全地进行身份验证。
Google Cloud 提供了多种创建 API 密钥的方式。
如需使用 Google Cloud 控制台创建 API 密钥,请执行以下步骤:
在 Google Cloud 控制台中,进入凭据页面:
点击创建凭据,然后从菜单中选择 API 密钥。
已创建的 API 密钥对话框会显示 API 密钥字符串。请复制您的密钥字符串,并确保其安全。您需要使用此 API 密钥来配置向 Google Cloud 进行的身份验证。
默认情况下,API 密钥不受限制。我们建议您通过选择可使用此 API 密钥的 API 来限制 API 密钥。如需详细了解如何添加 API 限制,请参阅添加 API 限制。
创建 Secret 并存储 API 密钥
ABAP SDK for Google Cloud 提供了使用 Google Cloud 的 Secret Manager 服务安全地存储 API 密钥的选项。为了安全存储 API 密钥字符串,Secret Manager 可让您遵循安全使用 API 密钥的最佳实践。
如需创建 Secret 并存储 API 密钥,请执行以下步骤:
启用 Secret Manager API。
在 Google Cloud 控制台中,创建一个 Secret,并将 API 密钥存储为最新版本。
如需了解如何创建 Secret,请参阅创建 Secret。
默认情况下,ABAP SDK for Google Cloud 仅检索 Secret 的最新版本。
配置客户端密钥以访问 Secret Manager
Secret Manager API 使用令牌进行身份验证。因此,您需要根据 SAP 部署设置基于令牌的身份验证来访问 Secret Manager API。
可以使用以下方法之一设置基于令牌的身份验证来访问 Secret Manager API:
记下您为访问 Secret Manager 创建的客户端密钥名称。
为 Secret 配置客户端密钥
在 SAP GUI 中,执行事务代码
/GOOG/SDK_IMG
。或者,执行事务代码
SPRO
,然后点击 SAP Reference IMG。点击 ABAP SDK for Google Cloud > 基本设置 > 配置客户端密钥。
点击新建条目。
输入以下字段的值:
字段 说明 Google Cloud 密钥名称 指定客户端密钥配置的名称。 例如 DEMO_API_KEY
。Google Cloud 服务账号名称 将此字段留空。 Google Cloud 范围 指定 API 访问权限范围 https://www.googleapis.com/auth/cloud-platform
。项目 ID 指定包含目标 API 的 Google Cloud 项目的 ID。 命令名称 将此字段留空。 授权类 指定 /GOOG/CL_AUTH_API_KEY_SM
。令牌缓存 此标志用于确定是否已缓存从 Google Cloud 检索到的访问令牌。
我们建议您完成与 Google Cloud 的连接的配置和测试后启用令牌缓存。如需详细了解令牌缓存,请参阅启用令牌缓存。
令牌刷新秒数 指定访问令牌在多久后(以秒为单位)会到期并且必须刷新。默认值为 3500
。授权参数 1 指定您为访问 Secret Manager 创建的客户端密钥的名称。例如 CLIENT_KEY_SM
。授权参数 2 指定存储了 API 密钥的 Secret 的名称。例如 TEST_SECRET
。保存新条目。
创建新的 RFC 目标
对于您计划通过 ABAP SDK for Google Cloud 使用的 API,请创建新的 RFC 目标。
如需了解如何创建 RFC 目标,请参阅 RFC 目标。
如果没有创建和配置 RFC 目标,则 ABAP SDK for Google Cloud 会使用各个 API 客户端桩中维护的默认 API 端点运行。
配置服务映射
为您计划通过 ABAP SDK for Google Cloud 使用的 API 配置服务映射表。
在 SAP GUI 中,执行事务代码
/GOOG/SDK_IMG
。或者,执行事务代码
SPRO
,然后点击 SAP Reference IMG。点击 ABAP SDK for Google Cloud > 基本设置 > 配置服务映射。
点击新建条目。
为您计划使用的 API 指定 RFC 目标,例如
addressvalidation v1
。如果您要使用其他 API,请为这些 API 指定 RFC 目标。名称 服务名称 RFC 目标 Google Cloud 密钥名称 addressvalidation:v1
ZGOOG_ADDRVALDN_V1
保存新条目。
验证从 Secret Manager 检索的 API 密钥
如需验证从 Secret Manager 检索的 API 密钥,请执行以下步骤:
-
在 SAP GUI 中,执行事务代码
/GOOG/SDK_IMG
。或者,执行事务代码
SPRO
,然后点击 SAP Reference IMG。 - 点击 ABAP SDK for Google Cloud > 实用程序 > 验证 API 密钥检索(使用 Secret Manager)。
- 指定客户端密钥名称。
- 点击 Execute 以检查是否已成功从 Secret Manager 检索 API 密钥。
验证身份验证配置
如需验证身份验证配置,请执行以下步骤:
在 SAP GUI 中,执行事务代码
/GOOG/SDK_IMG
。或者,执行事务代码
SPRO
,然后点击 SAP Reference IMG。点击 ABAP SDK for Google Cloud > 实用程序 > 验证身份验证配置。
输入客户端密钥名称。
点击 Execute 以检查整体流是否已成功配置。
结果列中的绿色对勾标记表示所有配置步骤均已成功完成。
获取支持
如果您在解决 ABAP SDK for Google Cloud 问题时需要帮助,请执行以下操作:
在 Cloud 论坛上提出问题并与社区讨论 ABAP SDK for Google Cloud。
收集所有可用的诊断信息,并与 Cloud Customer Care 联系。如需了解如何与 Customer Care 团队联系,请参阅获取 Google Cloud 上的 SAP 支持。