你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

从命令行部署 SAP 数据连接器代理

本文提供用于部署 SAP 数据连接器代理的命令行选项。 对于典型的部署,我们建议使用 门户 而不是命令行,因为只能通过命令行管理通过命令行安装的数据连接器代理。

但是,如果使用配置文件来存储凭据而不是Azure 密钥保管库,或者如果你是想要手动部署数据连接器的高级用户(例如在 Kubernetes 群集中),请改用本文中的过程。

虽然可以在一台计算机上运行多个数据连接器代理,但建议仅从一个数据连接器代理开始,监视性能,然后缓慢增加连接器的数量。 我们还建议 安全 团队在 SAP BASIS 团队的帮助下执行此过程。

注意

本文仅与数据连接器代理相关,与 SAP 无代理数据连接器无关。

重要

根据世纪互联发布的公告,所有Microsoft Sentinel功能将于 2026 年 8 月 18 日在世纪互联区域运营的Azure正式停用。 由于即将停用,客户无法再将新订阅加入服务。

我们建议客户与由世纪互联运营的Microsoft Azure的帐户代表合作,评估此次停用对其自身运营的影响。

先决条件

有关详细信息,请参阅 SAP 文档用于 RFC 集成的 SAP SNC 入门 - SAP 博客

使用托管标识或已注册的应用程序部署数据连接器代理

此过程介绍如何创建新的代理,并通过命令行将其连接到 SAP 系统,并使用托管标识或已注册Microsoft Entra ID的应用程序进行身份验证。

若要部署数据连接器代理,请执行以下操作

  1. 下载并运行部署 kickstart 脚本:

    • 对于托管标识,请使用以下命令选项之一:

      • 对于Azure公有商业云:

        wget -O sapcon-sentinel-kickstart.sh https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/Solutions/SAP/sapcon-sentinel-kickstart.sh && bash ./sapcon-sentinel-kickstart.sh
        
      • 对于由世纪互联运营的Microsoft Azure,请将 添加到--cloud mooncake复制的命令的末尾。

      • 对于 Azure 政府 - US,请将 添加到--cloud fairfax复制的命令的末尾。

    • 对于已注册的应用程序,请使用以下命令从 Microsoft Sentinel GitHub 存储库下载部署 kickstart 脚本并将其标记为可执行:

      wget https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/Solutions/SAP/sapcon-sentinel-kickstart.sh
      chmod +x ./sapcon-sentinel-kickstart.sh
      

      运行脚本,指定在前面步骤中复制的应用程序 ID、机密 (“密码”) 、租户 ID 和密钥保管库名称。 例如:

      ./sapcon-sentinel-kickstart.sh --keymode kvsi --appid aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa --appsecret ssssssssssssssssssssssssssssssssss -tenantid bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb -kvaultname <key vault name>
      
    • 若要配置安全的 SNC 配置,请指定以下基参数:

      • --use-snc
      • --cryptolib <path to sapcryptolib.so>
      • --sapgenpse <path to sapgenpse>
      • --server-cert <path to server certificate public key>

      如果客户端证书采用 .crt.key 格式,请使用以下开关:

      • --client-cert <path to client certificate public key>
      • --client-key <path to client certificate private key>

      如果客户端证书采用 .pfx.p12 格式,请使用以下开关:

      • --client-pfx <pfx filename>
      • --client-pfx-passwd <password>

      如果客户端证书是由企业 CA 颁发的,请为信任链中的每个 CA 添加以下开关:

      • --cacert <path to ca certificate>

      例如:

      wget https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/Solutions/SAP/sapcon-sentinel-kickstart.sh
      chmod +x ./sapcon-sentinel-kickstart.sh    --use-snc     --cryptolib /home/azureuser/libsapcrypto.so     --sapgenpse /home/azureuser/sapgenpse     --client-cert /home/azureuser/client.crt --client-key /home/azureuser/client.key --cacert /home/azureuser/issuingca.crt    --cacert /home/azureuser/rootca.crt --server-cert /home/azureuser/server.crt
      

    该脚本更新 OS 组件,安装 Azure CLI 和 Docker 软件以及其他所需的实用工具, (jq、netcat、curl) ,并提示输入配置参数值。 为脚本提供额外的参数,以最大程度地减少提示数或自定义容器部署。 有关可用命令行选项的详细信息,请参阅 Kickstart 脚本参考

  2. 按照屏幕上的说明 输入 SAP 和密钥保管库详细信息并完成部署。 部署完成后,将显示一条确认消息:

    The process has been successfully completed, thank you!
    

    记下脚本输出中的 Docker 容器名称。 若要查看 VM 上的 docker 容器列表,请运行:

    docker ps -a
    

    在下一步中,将使用 docker 容器的名称。

  3. 部署 SAP 数据连接器代理需要使用 Microsoft Sentinel 业务应用程序代理操作员读取者角色,向代理的 VM 标识授予对启用 Microsoft Sentinel 的 Log Analytics 工作区的特定权限。

    若要在此步骤中运行命令,你必须是启用了 Microsoft Sentinel 的 Log Analytics 工作区的资源组所有者。 如果你不是工作区的资源组所有者,也可以在以后执行此过程。

    Microsoft Sentinel业务应用程序代理操作员读取者角色分配给 VM 的标识:

    1. 通过运行以下命令获取代理 ID,并将 <container_name> 占位符替换为使用 kickstart 脚本创建的 docker 容器的名称:

      docker inspect <container_name> | grep -oP '"SENTINEL_AGENT_GUID=\K[^"]+
      

      例如,返回的代理 ID 可能是 234fba02-3b34-4c55-8c0e-e6423ceb405b

    2. 通过运行以下命令,分配Microsoft Sentinel业务应用程序代理操作员读取者角色:

    az role assignment create --assignee-object-id <Object_ID> --role --assignee-principal-type ServicePrincipal "Microsoft Sentinel Business Applications Agent Operator" --scope /subscriptions/<SUB_ID>/resourcegroups/<RESOURCE_GROUP_NAME>/providers/microsoft.operationalinsights/workspaces/<WS_NAME>/providers/Microsoft.SecurityInsights/BusinessApplicationAgents/<AGENT_IDENTIFIER>
    
    az role assignment create --assignee-object-id <Object_ID> --role --assignee-principal-type ServicePrincipal "Reader" --scope /subscriptions/<SUB_ID>/resourcegroups/<RESOURCE_GROUP_NAME>/providers/microsoft.operationalinsights/workspaces/<WS_NAME>/providers/Microsoft.SecurityInsights/BusinessApplicationAgents/<AGENT_IDENTIFIER>
    

    按如下所示替换占位符值:

    占位符
    <OBJ_ID> VM 标识对象 ID。

    若要在 Azure中查找 VM 标识对象 ID,请执行以下操作:
    - 对于托管标识,对象 ID 在 VM 的 “标识 ”页上列出。
    - 对于服务主体,请转到 Azure 中的企业应用程序。 选择“ 所有应用程序 ”,然后选择 VM。 对象 ID 显示在 “概述 ”页上。
    <SUB_ID> 为 Microsoft Sentinel启用 Log Analytics 工作区的订阅 ID
    <RESOURCE_GROUP_NAME> 为 Microsoft Sentinel启用的 Log Analytics 工作区的资源组名称
    <WS_NAME> 为Microsoft Sentinel启用的 Log Analytics 工作区的名称
    <AGENT_IDENTIFIER> 上一步中运行命令后显示的代理 ID。
  4. 若要将 Docker 容器配置为自动启动,请运行以下命令,并将 <container-name> 占位符替换为容器的名称:

    docker update --restart unless-stopped <container-name>
    

部署过程生成一个包含 SAP 数据连接器代理的配置详细信息 的 systemconfig.json 文件。 该文件位于 /sapcon-app/sapcon/config/system VM 上的 目录中。

使用配置文件部署数据连接器

Azure 密钥保管库是存储身份验证凭据和配置数据的推荐方法。 如果阻止使用 Azure 密钥保管库,此过程介绍如何改为使用配置文件部署数据连接器代理容器。

若要部署数据连接器代理,请执行以下操作

  1. 创建要部署代理的虚拟机。

  2. SAP NetWeaver SDK 传输到要安装代理的计算机。

  3. 运行以下命令,从 Microsoft Sentinel GitHub 存储库下载部署 Kickstart 脚本并将其标记为可执行

    wget https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/Solutions/SAP/sapcon-sentinel-kickstart.sh
    chmod +x ./sapcon-sentinel-kickstart.sh
    
  4. 运行脚本

    ./sapcon-sentinel-kickstart.sh --keymode cfgf
    

    该脚本更新 OS 组件,安装 Azure CLI 和 Docker 软件以及其他所需的实用工具, (jq、netcat、curl) ,并提示输入配置参数值。 根据需要向脚本提供额外的参数,以最大程度地减少提示数或自定义容器部署。 有关详细信息,请参阅 Kickstart 脚本参考

  5. 按照屏幕上的说明 输入请求的详细信息并完成部署。 部署完成后,将显示一条确认消息:

    The process has been successfully completed, thank you!
    

    记下脚本输出中的 Docker 容器名称。 若要查看 VM 上的 docker 容器列表,请运行:

    docker ps -a
    

    在下一步中,将使用 docker 容器的名称。

  6. 部署 SAP 数据连接器代理需要使用 Microsoft Sentinel 业务应用程序代理操作员读取者角色,向代理的 VM 标识授予对启用 Microsoft Sentinel 的 Log Analytics 工作区的特定权限。

    若要运行此步骤中的命令,你必须是工作区的资源组所有者。 如果你不是工作区的资源组所有者,也可以在以后执行此步骤。

    Microsoft Sentinel业务应用程序代理操作员读取者角色分配给 VM 的标识:

    1. 通过运行以下命令获取代理 ID,并将 <container_name> 占位符替换为使用 Kickstart 脚本创建的 docker 容器的名称:

      docker inspect <container_name> | grep -oP '"SENTINEL_AGENT_GUID=\K[^"]+'
      

      例如,返回的代理 ID 可能是 234fba02-3b34-4c55-8c0e-e6423ceb405b

    2. 通过运行以下命令,分配Microsoft Sentinel业务应用程序代理操作员读取者角色:

      az role assignment create --assignee-object-id <Object_ID> --role --assignee-principal-type ServicePrincipal "Microsoft Sentinel Business Applications Agent Operator" --scope /subscriptions/<SUB_ID>/resourcegroups/<RESOURCE_GROUP_NAME>/providers/microsoft.operationalinsights/workspaces/<WS_NAME>/providers/Microsoft.SecurityInsights/BusinessApplicationAgents/<AGENT_IDENTIFIER>
      
      az role assignment create --assignee-object-id <Object_ID> --role --assignee-principal-type ServicePrincipal "Reader" --scope /subscriptions/<SUB_ID>/resourcegroups/<RESOURCE_GROUP_NAME>/providers/microsoft.operationalinsights/workspaces/<WS_NAME>/providers/Microsoft.SecurityInsights/BusinessApplicationAgents/<AGENT_IDENTIFIER>
      

      按如下所示替换占位符值:

      占位符
      <OBJ_ID> VM 标识对象 ID。

      若要在 Azure 中查找 VM 标识对象 ID:对于托管标识,该对象 ID 在 VM 的“标识”页上列出。 对于服务主体,请转到 Azure 中的企业应用程序。 选择“ 所有应用程序 ”,然后选择 VM。 对象 ID 显示在 “概述 ”页上。
      <SUB_ID> 为 Microsoft Sentinel 启用的 Log Analytics 工作区的订阅 ID
      <RESOURCE_GROUP_NAME> 为 Microsoft Sentinel启用的 Log Analytics 工作区的资源组名称
      <WS_NAME> 为Microsoft Sentinel启用的 Log Analytics 工作区的名称
      <AGENT_IDENTIFIER> 上一步中运行命令后显示的代理 ID。
  7. 运行以下命令,将 Docker 容器配置为自动启动。

    docker update --restart unless-stopped <container-name>
    

部署过程生成一个包含 SAP 数据连接器代理的配置详细信息 的 systemconfig.json 文件。 该文件位于 /sapcon-app/sapcon/config/system VM 上的 目录中。

准备 kickstart 脚本,以便与 SNC 进行安全通信

此过程介绍如何准备部署脚本,以配置使用 SNC 与 SAP 系统进行安全通信的设置。 如果使用 SNC,则必须在部署数据连接器代理之前执行此过程。

配置容器以便与 SNC 进行安全通信

  1. libsapcrypto.sosapgenpse 文件传输到要在其中创建容器的系统。

  2. 将客户端证书(包括私钥和公钥)传输到要在其中创建容器的系统。

    客户端证书和密钥可以是 .p12.pfx 或 Base64 .crt.key 格式。

  3. 仅将服务器证书 (公钥) 传输到要在其中创建容器的系统。

    服务器证书必须采用 Base64 .crt 格式。

  4. 如果客户端证书是由企业证书颁发机构颁发的,请将颁发 CA 证书和根 CA 证书转移到要在其中创建容器的系统。

  5. 从 Microsoft Sentinel GitHub 存储库获取 kickstart 脚本:

    wget https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/Solutions/SAP/sapcon-sentinel-kickstart.sh
    
  6. 更改脚本的权限,使其可执行:

    chmod +x ./sapcon-sentinel-kickstart.sh
    

有关详细信息,请参阅 sap 应用程序数据连接器代理Microsoft Sentinel的 Kickstart 部署脚本参考

为了获得最佳结果来监视 SAP PAHI 表,请打开 systemconfig.json 文件进行编辑,并在 部分下 [ABAP Table Selector](reference-systemconfig-json.md#abap-table-selector) 启用 PAHI_FULLPAHI_INCREMENTAL 参数。

有关详细信息,请参阅 Systemconfig.json文件引用验证 PAHI 表是否定期更新

检查连接性和运行状况

部署 SAP 数据连接器代理后,检查代理的运行状况和连接。 有关详细信息,请参阅 监视 SAP 系统的运行状况和角色

后续步骤

部署连接器后,继续为 SAP 应用程序内容部署Microsoft Sentinel解决方案: