Skip to Content
Technical Articles
Author's profile photo Ivan Yin

如何在SAP分析云中创建一个启用SNC的SAP BW导入数据连接

从版本 2022.15(2022 QRC3) 开始,SAP Analytics Cloud分析云 (SAC) 支持使用安全网络通信 (Secure Network Communication, 即SNC) 创建到 SAP BW 的导入数据连接,以加密Cloud Agent和 SAP BW 之间的通信。在 SAP Note 3234061 中,您可以查看关于该配置的简要步骤。

本篇博客是记录我在内部测试SAC系统、Cloud Agent和BW中如何实现该功能的详细步骤。整个场景假定ABAP服务器端已经启用了SNC。如果没有,建议您先参考KBA 2979858在ABAP端完成前置配置。

此外,以下所有步骤目前仅在内部系统中进行验证。其中一些将来可能会更改,您可能需要根据不同的系统条件进行调整。

免责声明:所有屏幕截图、命令和其他信息均来自示例测试系统,不代表实际数据(任何相似之处纯属巧合)。

让我们一起开始配置吧!

 

步骤一:设置本地SAP Crypto Libraries

首先,我们需要在运行 Cloud Agent 的机器上准备 SAP Crypto Libraries。
  1. 按照本指南将 Cloud Agent更新到最新版本。
  2. 通过以下两种方法之一获取 SAP Crypto Libraries 文件:
    1. 您可以在从上面下载的 Cloud Agent 压缩包中提取到的文件夹中找到它们。相对路径为\C4AAGENT355_0-80000881\win64_x64\tp.sap.cryptolib。
    2. 按照 KBA 1954305 下载 SAP Crypto 库。
    3. 或者您可以合并这些文件以避免任何潜在问题:)
  3. 创建一个本地目录来存储 SAP Crypto 库。 (这里我使用C:\Users\Administrator\Desktop\SAPCRYPTO)
  4. 将步骤 2 中的所有文件复制到此位置 (C:\Users\Administrator\Desktop\SAPCRYPTO)
  5. 创建一个名为“sec”的子目录(C:\Users\Administrator\Desktop\SAPCRYPTO\sec)
  6. 创建一个名为“cpic”的子目录 (C:\Users\Administrator\Desktop\SAPCRYPTO\cpic)
  7. 创建 Windows 系统环境变量如下:
    Variable name Variable value
    SNC_LIB C:\Users\Administrator\Desktop\SAPCRYPTO
    SECUDIR C:\Users\Administrator\Desktop\SAPCRYPTO\sec
    CPIC_TRACE C:\Users\Administrator\Desktop\SAPCRYPTO\cpic
    CPIC_TRACE 0
    CPIC_TRACE_DIR C:\Users\Administrator\Desktop\SAPCRYPTO\cpic
  8. 编辑 Windows 系统环境变量 Path 并添加包含 sapcrypto 库的根目录(在本例中为 C:\Users\Administrator\Desktop\SAPCRYPTO)
  9. 打开 Windows 开始菜单->Tomcat 配置->登录。然后更改/确保Tomcat的登录用户是操作系统管理员(而不是LocalSystem)。
  10. 重新启动整个操作系统以确保所有更改都能生效。

步骤二:生成PSE证书

  1. 打开 Windows 命令行并切换到包含 sapgenpse.exe 的文件夹。(在本例中为 C:\Users\Administrator\Desktop\SAPCRYPTO)
  2. 运行命令 sapgenpse gen_pse -v -p <NAME_OF_PSE>
    • 将 <NAME_OF_PSE> 更改为您要分配给 PSE 文件的文件名。我将在这里使用 CloudAgent.pse。
  3. 出现提示时,提供 PSE PIN/密码。
  4. 出现提示时,为服务器提供一个专有名称。
    • 这里我使用 CN=Cloud Agent。
    • 您可以使用服务器的 DN。
  5. 完成后,结果应该类似于此,pse 文件将在 sec 文件夹下生成。
  6. 运行命令:sapgenpse export_own_cert -x <PSE PIN/Passphrase> -v -p <NAME_OF_PSE> -o <NAME_OF_CLIENT_CERT>
    • 将 <PSE PIN/Passphrase> 更改为您刚刚设置的密码。
    • 将 <NAME_OF_PSE> 更改为上面的 PSE 文件名。
    • 将 <NAME_OF_CLIENT_CERT> 更改为要分配给 CRT 文件的文件名。我使用证书的名称“CloudAgent.crt”
  7. 完成后,结果应与此类似,并且应在根文件夹 (C:\Users\Administrator\Desktop\SAPCRYPTO) 中生成 crt 文件。

 

步骤三:交换证书

导入Cloud Agent证书到SAP BW系统

  1. 登录BW/ABAP系统并运行STRUST T-code.
  2. 展开 “SNC (SAPCryptolib)” 然后点击Certificate > Import Certificate.
  3. 选择之前生成好的CRT证书(CloudAgent.crt) 然后点击绿色对号图标导入。
  4. 点击 “Add to Certificate list” 把证书添加到SAP PSE文件中。

从SAP系统中导出证书

  1.  在”Own Certificate” 中双击Subject DN,以选定该证书 (“Certificate”部分将会随之展现该证书详细信息)。
  2. 点击 “Export Certificate”.
  3. 为导出证书提供导出路径和文件名 (这里我给它命名为G75.crt)
  4. 选择”Base64″ 文件格式。
  5. 点击绿色对号图标导出,然后把文件复制到root文件夹(C:\Users\Administrator\Desktop\SAPCRYPTO).
  6. 返回 “Trust Manager” 界面并点击保存图标以完成上面所有的配置更改!(非常重要!!!)

将SNC ACL Entry添加到SAP系统

  1. 进入T-code SNC0 然后点击”New Entries”.
  2. 提供一个System ID (例如:CloudAgent)
  3. 提供一个Cloud Agent证书的SNC name, 以 p: 开头 (这里设置的值应该和Step2.4一致。本文中为 p:CN=CloudAgent).
  4. 勾选 “Entry for RFC activated,” “Entry for CPIC activated” 以及 “Entry for ext. ID activated” 三个选项。
  5. 保存然后SNC Data部分的状态应该会变成 “Canonical name defined“.

在Cloud Agent机器上完成信任

  1. 打开Windows命令行然后切换到包含sapgenpse.exe的文件夹。(C:\Users\Administrator\Desktop\SAPCRYPTO)
  2. 运行 sapgenpse maintain_pk -v -a <NAME_OF_SERVER_CERT> -p <NAME_OF_PSE>
    • 将 <NAME_OF_SERVER_CERT> 替换成刚才从BW导出的证书(G75.crt)。
    • 将 <NAME_OF_PSE>替换成步骤2.2生成的PSE文件(CloudAgent.pse)。
  3. 填写PSE PIN/Passphrase。
  4. 完成之后,得到和下图类似的结果:
  5. 运行 sapgenpse seclogin -x <PSE PIN/Passphrase> -p <NAME_OF_PSE>
    • 您应该使用Tomcat的启动用户去运行这个命令。
    • <PSE PIN/Passphrase>替换成 步骤2.3设置的值。
    • 将<NAME_OF_PSE>替换成步骤2.2生成的PSE文件(CloudAgent.pse
  6. 运行 sapgenpse get_my_name -p <NAME_OF_PSE>
  7. 运行 sapgenpse maintain_pk -l -p <NAME_OF_PSE>
  8. 完成之后,得到和下图类似的结果:
  9. 重启Tomcat.

步骤四:在SAC中启用SNC

    1. 登录 SAC 然后切换到System > Administration > Date Source Configuration.
    2. 创建或者编辑Cloud agent location.
    3. 开启 Enable SNC support选项。
    4. 添加SAP crypto library的完整路径。本文里,该值为 C:\Users\Administrator\Desktop\SAPCRYPTO\sapcrypto.dll
    5. 输入Cloud Agent的SNC name。该值在步骤三 > Adding SNC ACL Entry in SAP System中设置。本文里该值为p:CN=CloudAgent.
    6. 选择SNC quality of protection或者使用默认值。
    7. 切换到SAC > Connections.
    8. 创建一个新的或者编辑一个已存的BW导入数据连接。
    9. 选择我们刚刚已经启用SNC的Cloud agent location。
    10. 勾选Enable Secure Network Communication (SNC)。
    11. 属于BW系统的SNC name. 你可以在STRUTS的subject DN中或者在命令sapgenpse maintain_pk -v -a <NAME_OF_SERVER_CERT> -p <NAME_OF_PSE>的结果中找到这个值。本文中该值为p:CN=G75 OU=XX C=XX。
    12. 填写其他必要信息并保存。

 

之后,您就可以在SNC的保护下使用此连接创建模型。

如果您有任何进一步的问题,请在这里留言!

Assigned Tags

      2 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Qingwei Li
      Qingwei Li

      细节满满,大赞!!!

      Author's profile photo Jeff Fu
      Jeff Fu

      可以可以!