

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 SAP 凭据存储
<a name="credential-store"></a>

SAP 凭据存储在 SAP 业务技术平台中用于安全地存储用于秘密访问密钥身份验证的凭据。 AWS您必须订阅才能使用该服务。

以下说明假设您已经配置了 SDK 配置文件。有关更多信息，请参阅[配置 适用于 SAP ABAP 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-sapabap/latest/developer-guide/configuring.html)。

在开始配置之前，请确保满足先决条件。有关更多信息，请参阅 [SAP 凭据存储](https://docs.aws.amazon.com/sdk-for-sapabap/latest/developer-guide/prerequisites.html#credential-store)。

**Topics**
+ [配置步骤](#configuration)
+ [将 SAP 凭据存储与 SDK 配合使用](#connection)

## 配置步骤
<a name="configuration"></a>

**Topics**
+ [步骤 1：配置身份验证设置](#authentication)
+ [步骤 2：创建服务密钥](#service-key)
+ [步骤 3：将服务密钥转换为`.p12`格式](#conversion)
+ [第 4 步：连接到 SAP BTP、ABAP 环境](#connection)

### 步骤 1：配置身份验证设置
<a name="authentication"></a>

使用以下步骤配置用于身份验证的凭据存储设置。

1. 导航到 SAP 凭据存储实例的**设置**选项卡。

1. 选择**编辑配置**：
   + 选择**双向 TLS** 作为默认身份验证类型。
   + 在 “有效负载加密状态” 中选择 “**禁用**”。有效载荷在传输过程中使用 HTTPS 加密。但是，目前无法对有效载荷进行双重加密。

1. 选择**保存**。

### 步骤 2：创建服务密钥
<a name="service-key"></a>

使用以下步骤为凭据存储创建服务密钥。

1. 在 SAP 凭据存储应用程序的左侧窗格中，导航到**服务密钥**。

1. 选择 “**创建服务密钥**”。

1. 输入服务密钥的名称，然后选择**创建**。

服务密钥是根据所选的身份验证类型创建的。下载服务密钥，并妥善保管，以备日后使用。

### 步骤 3：将服务密钥转换为`.p12`格式
<a name="conversion"></a>

为通信系统创建出站用户需要`.p12`格式为的客户端证书。使用以下步骤根据凭据存储服务密钥中提供的证书详细信息生成证书。`.p12`

1. 从 **SAP 信任中心服务下载 SAP 云根 CA** [证书（SAP](https://support.sap.com/en/offerings-programs/support-services/trust-center-services.html) 需要）。

1. 以任何文本文件格式打开 SAP 云根 CA 证书。在文件末尾，按 Enter，然后从服务密钥的证书字段中复制粘贴证书。将换行符替换为实际的换行符`\n`（Enter），然后以`.cer`文件格式保存整个证书。

1. 从服务密钥的密钥字段中复制密钥。必须将此私钥视为敏感数据。将其粘贴到文本文件中，然后将换行符替换为实际`\n`的换行符（Enter）。将私钥保存在文本文件中。

1. 使用前面步骤中生成的证书和私钥，运行以下命令来生成`.p12`证书。

   ```
   openssl pkcs12 -export -out <.p12_filename> -inkey <private_key.key> -in <certificate.cer>
   ```

   该命令需要验证导出密码。保留密码以备将来使用。

删除保存在私钥中的`.key`文本文件。

### 第 4 步：连接到 SAP BTP、ABAP 环境
<a name="connection"></a>

将 SAP BTP、ABAP 环境配置为连接 SAP 凭据存储。

**Topics**
+ [通信系统](#system)
+ [沟通安排](#arrangement)

#### 通信系统
<a name="system"></a>

使用以下步骤创建通信系统，该系统允许从 SAP BTP、ABAP 环境到 SAP 凭据存储区进行通信。

1. 打开 ABAP 环境系统的 Fiori 启动板。

1. 选择 “**通信系统**” 图块以打开应用程序。

1. 选择**新建**。

1. 输入通信系统的名称和 ID，然后选择**创建**。例如，您可以为系统命名`ZSAP_CREDSTORE`。

1. 输入其他必填信息：
   + **主机名**：从服务密钥 URL 中复制主机名。例如，如果 URL 是`https://credstore.mesh.cf.us10.hana.ondemand.com/api/v1/credentials`，则主机名是`credstore.mesh.cf.us10.hana.ondemand.com`。
   + **出站通信用户**：选择`+`此选项可添加新用户。

     1. 选择 **SSL 客户端证书**作为身份验证机制。

     1. 选择**上传新证书**：
        + 浏览在上一步中生成的`.p12`证书。
        + 输入描述。
        + 输入用于生成`.p12`证书的导出密码。
        + 选择**上传**。

     1. 选择 “**创建**” 以创建出站用户。

1. 选择**保存**。

1. 删除在上一步中下载的服务密钥。

#### 沟通安排
<a name="arrangement"></a>

使用以下步骤创建通信安排，为出站通信提供通信场景。

1. 打开 ABAP 环境系统的 Fiori 启动板。

1. 选择 “**通信安排**” 图块以打开应用程序。

1. 选择**新建**。

1. 选择通信场景`/AWS1/CRED_COMM_SCENARIO`，然后输入通信安排的名称。例如 `Z_AWS_SDK_TO_SAP_CREDSTORE`。

1. 选择**创建**。

1. 在 “通信系统” 字段中，浏览到在上一步中创建的通信系统。其他信息是自动填充系统的帖子选择。

1. 选择**保存**。

1. 选择 “**检查连接**” 以测试您的连接。

设置完成后，ABAP 环境可以使用通信安排，通过出站服务 (HTTP) 使用 SAP 凭据存储服务。

## 将 SAP 凭据存储与 SDK 配合使用
<a name="connection"></a>

**Topics**
+ [步骤 1：创建命名空间和凭证](#create-namespace)
+ [步骤 2：配置自定义业务配置应用程序](#business-configuration)

### 步骤 1：创建命名空间和凭证
<a name="create-namespace"></a>

使用 SAP 帮助 — 创建、[编辑和删除凭据，在 SAP 凭据存储中创建命名空间和](https://help.sap.com/docs/credential-store/sap-credential-store/create-edit-and-delete-credential)凭据。

输入以下详细信息以创建**密钥**类型的凭证。
+ **命名空间**-输入命名空间的名称，并将相关凭据组合在一起。
+ **名称**-输入密钥的名称。我们建议`aws-0123456789012-username`，在哪里：
  + `0123456789012`是凭 AWS 账户 证向其授予访问权限的 ID
  + `username`是证书所属的 IAM 用户名
+ **值**-输入 base-64 编码的私有访问密钥。使用以下命令对您的私有访问密钥进行 base-64 编码。

  ```
  xargs echo -n | base64 # just press enter, do not enter arguments on the command line
  MySecretAccessKey
  Ctrl-D
  ```

  该命令从标准输入中读取私有访问密钥，并将其传递给 base64，不带尾随换行符。它将以 base-64 编码的秘密访问密钥输出到屏幕。将值复制到 SAP 凭据存储区后，请清除或关闭终端。
+ **用户名**-输入您的访问密钥 ID。
+ 选择**创建**。

创建了一个具有一个凭据的新命名空间，并且可以在此命名空间中添加、删除或修改证书。

遵循最低权限原则来管理对存储在命名空间中的凭据的访问权限。

### 步骤 2：配置自定义业务配置应用程序
<a name="business-configuration"></a>

使用以下步骤配置自定义业务配置应用程序，以定义用于由 SDK 进行身份验证的凭据。

1. 打开 ABAP 环境系统的 Fiori 启动板。

1. 浏览**自定义业务配置**图块以打开应用程序。

1. 打开 **SDK 配置文件**业务配置。

1. 选择必须为 SAP 凭据存储配置身份验证设置的 SDK 配置文件。

1. 在所选配置文件的 “**身份验证和设置**” 选项卡中，选择 “**编辑**”，然后输入以下详细信息：
   + **身份验证方法**-**从 SAP 凭据存储中选择凭据**。
   + **命名空间**-输入在 SAP 凭据存储中创建的命名空间。有关更多信息，请参阅 [步骤 1：创建命名空间和凭证](#create-namespace)。
   + **密钥名称**-输入已创建的密钥凭据的名称。有关更多信息，请参阅 [步骤 1：创建命名空间和凭证](#create-namespace)。
   + **通信安排**-输入已创建的通信安排的名称。有关更多信息，请参阅 [沟通安排](#arrangement)。

1. 选择 “**应用**” 以转至 “**AWS SDK 配置文件**” 屏幕。

1. 选择 “**选择传输**”，使用值 help 选择传输。

1. 选择**保存**。