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

使用 Azure PaaS 安全地公开 SAP 旧版中间件

使内部系统和外部合作伙伴能够与 SAP 后端交互是常见要求。 现有 SAP 环境通常依赖于旧版中间件 SAP 进程业务流程 (PO)进程集成 (PI),以满足其集成和转换需求。 为简单起见,本文使用“SAP 进程业务流程”来指代这两种产品/服务。

本文介绍 Azure 上的配置选项,重点讨论面向 Internet 的实现。

注意

SAP 会引出 SAP Integration Suite(具体而言是 SAP Cloud Integration),其作为 SAP PO 和 PI 的后继版本,在业务技术平台 (BTP) 上运行。 BTP 平台和服务在 Azure 上都可供使用。 有关详细信息,请参阅 SAP Discovery Center。 有关旧组件的维护支持时间线的详细信息,请参阅 SAP OSS 说明 1648480

概述

基于 SAP 中间件的现有实现通常依赖于名为 SAP Web Dispatcher 的 SAP 专有调度技术。 这项技术在 OSI 模型的第 7 层上运行。 它充当反向代理并满足下游 SAP 应用程序工作负载(如 SAP 企业资源计划 (ERP)、SAP 网关或 SAP 进程业务流程)的负载均衡需求。

调度方法包括传统的反向代理(如 Apache)、平台即服务 (PaaS) 选项(如 Azure 负载均衡器)以及固有的 SAP Web Dispatcher。 本文中所述的总体概念适用于上述选项。 有关使用非 SAP 负载均衡器的指导,请参阅 SAP 的 wiki

注意

本文中所述的所有设置都采用中心辐射型网络拓扑,其中共享服务会部署到中心内。 基于 SAP 的重要性,可能需要更多的隔离。 有关详细信息,请参阅 SAP 外围网络设计指南

主要 Azure 服务

Azure 应用程序网关处理基于 Internet 的公共和内部专用 HTTP 路由,以及跨 Azure 订阅的加密隧道。 示例包括安全自动缩放

Azure 应用程序网关侧重于公开 Web 应用程序,因此它提供 Web 应用程序防火墙 (WAF)。 其他虚拟网络中将通过 Azure 应用程序网关与 SAP 通信的工作负载可以通过专用链接进行连接,甚至可以跨租户连接。

通过 Azure 应用程序网关进行的跨租户通信的示意图。

Azure 防火墙为 OSI 模型第 4 到 7 层上的流量类型处理基于 Internet 的公共路由/或内部专用路由。 它提供直接来自 Microsoft 安全的筛选和威胁情报。

Azure API 管理专门为 API 处理基于 Internet 的公共路由和内部专用路由。 它提供请求限制、使用配额和限制、策略等治理功能以及 API 密钥来分解每个客户端的服务。

Azure VPN 网关Azure ExpressRoute 充当本地网络的入口点。 它们在图中被缩写为 VPN 和 XR。

安装注意事项

集成体系结构需求不同,具体取决于组织使用的接口。 中间文档 (IDoc) 框架商务应用程序编程接口 (BAPI)事务远程函数调用 (tRFC) 或普通 RFC这样的 SAP 专有技术需要特定的运行时环境。 它们在 OSI 模型的第 4 层到第 7 层上运行,这与通常依赖基于 HTP 的通信(OSI 模型的第 7 层)的新式 API 不同。 因此,不能以相同的方式处理接口。

本文重点介绍新式 API 和 HTTP,包括 Applicability Statement 2 (AS2) 等集成方案。 文件传输协议 (FTP) 用作处理非 HTTP 集成需求的示例。 有关 Microsoft 负载均衡解决方案的详细信息,请参阅负载均衡选项

注意

SAP 为其专有接口发布了专用连接器。 例如,请查看适用于 Java.NET 的 SAP 文档。 它们也受 Microsoft 网关支持。 请注意,IDoc 还可以通过 HTTP 发布。

出于安全考虑,需要对较低级别的协议使用防火墙,并使用 WAF 通过传输层安全 (TLS) 处理基于 HTTP 的流量。 若要生效,TLS 会话需要在 WAF 级别终止。 要支持零信任方法,建议之后再次重新加密以提供端到端加密。

AS2 等集成协议可以使用标准 WAF 规则发出警报。 建议使用应用程序网关 WAF 会审工作簿来识别并更好地了解触发规则的原因,以便可以有效地安全地进行修正。 Open Web Application Security Project (OWASP) 提供了标准规则。 有关此主题的详细视频会话(重点介绍 SAP Fiori 公开),请参阅 Azure 上的 SAP 网络广播

可以使用相互 TLS (mTLS)(也称为相互身份验证)进一步增强安全性。 与普通 TLS 不同,它会验证客户端标识。

注意

虚拟机 (VM) 池需要负载均衡器。 为提高可读性,本文中的图表不显示负载均衡器。

注意

如果不需要 SAP Web Dispatcher 提供的特定于 SAP 的均衡功能,可以将其替换为 Azure 负载均衡器。 此替代方案有利于托管 PaaS 产品/服务,而不是基础结构即服务 (IaaS) 设置。

方案:侧重于入站 HTTP 连接

SAP Web Dispatcher 不提供 WAF。 因此,建议使用 Azure 应用程序网关进行更安全的设置。 SAP Web Dispatcher 和进程业务流程继续负责通过大小调整指南并发请求限制帮助保护 SAP 后端免受请求过载的影响。 SAP 工作负载中没有可用的限制功能。

可以通过 SAP Web Dispatcher 上的访问控制列表避免意外访问。

SAP 进程业务流程通信方面的一种方案是入站流。 流量可能源自本地、外部应用或用户,或内部系统。 以下示例侧重于 HTTPS。

显示入站 HTTP 方案的关系图,其中包含 Azure 上的 SAP 进程业务流程。

方案:侧重于 HTTP/FTP 连接

对于反向通信方向,SAP 进程业务流程可以使用虚拟网络路由通过 Internet 接入点访问本地工作负载或基于 Internet 的目标。 Azure 应用程序网关在此类方案中充当反向代理。 对于非 HTTP 通信,考虑添加 Azure 防火墙。 有关详细信息,请参阅本文后面的方案:基于文件网关组件的比较

以下出站方案显示了两种可能的方法。 一种是通过调用 Web 服务(例如 SOAP 适配器)的 Azure 应用程序网关使用 HTTPS。 另一种是使用 FTP over SSH (SFTP) 通过 Azure 防火墙将文件传输到业务合作伙伴的 SFTP 服务器。

显示出站方案的关系图,其中包含 Azure 上的 SAP 进程业务流程。

方案:侧重于 API 管理

与入站和出站连接方案相比,内部模式下的 Azure API 管理(仅限专用 IP 和虚拟网络集成)的引入增加了内置功能,例如:

显示入站方案的关系图,其中包含 Azure API 管理和 Azure 上的 SAP 进程业务流程。

不需要 WAF 时,可以使用公共 IP 地址以外部模式部署 Azure API 管理。 此部署可简化设置,同时保留限制和 API 治理功能。 可为所有 Azure PaaS 产品/服务实现基本保护

显示入站方案的关系图,其中包含外部模式下的 Azure API 管理和 SAP 进程业务流程。

方案:Global Reach

Azure 应用程序网关是区域绑定的服务。 与上文所述的方案相比,Azure Front Door 可确保跨区域全局路由,包括 Web 应用程序防火墙。 若要详细了解差异,请参阅此比较

下图将 SAP Web Dispatcher、SAP 进程业务流程和后端浓缩为单个图像,以提高可读性。

显示全球访问方案的关系图,其中包含 Azure 上的 SAP 进程业务流程。

方案:基于文件

如上述方案所示,无法使用 Azure API 管理、应用程序网关或 Azure Front Door 处理 FTP 等非 HTTP 协议。 相反,托管的 Azure 防火墙实例或等效的网络虚拟设备 (NVA) 可接管保护入站请求的角色。

文件需要先进行存储,然后才能由 SAP 进行处理。 建议使用 SFTP。 Azure Blob 存储以本机方式支持 SFTP。

基于文件的方案的示意图,其中包含 Azure Blob 存储和 Azure 上的 SAP 进程业务流程。

如有必要,Azure 市场中提供了备用 SFTP 选项。

下图显示了此方案的一个变体,其中包含外部和本地集成目标。 不同类型的安全 FTP 说明了通信路径。

显示基于文件的方案的关系图,其中包含本地文件共享以及使用 Azure 上的 SAP 进程业务流程的外部方。

若要了解作为 Blob 存储替代方法的网络文件系统 (NFS) 文件共享,请参阅 Azure 文件存储中的 NFS 文件共享

方案:特定于 SAP RISE

SAP RISE 部署在技术上与前面描述的方案相同,只是 SAP 本身管理目标 SAP 工作负载。 已介绍的概念在此处也适用。

下图显示了两种示例设置。 有关详细信息,请参阅 SAP RISE 参考指南

重要

联系 SAP 以确保在 NSG 中允许和打开方案的通信端口。

HTTP 入站

在第一个设置中,客户治理集成层,包括 SAP 进程业务流程和完整的入站路径。 只有最终 SAP 目标在 RISE 订阅上运行。 与 RISE 托管工作负载进行的通信通过虚拟网络对等互连(通常在中心)进行配置。 潜在集成可能是由外部方发布到 SAP ERP Web 服务 /sap/bc/idoc_xml 的 IDoc。

显示入站方案的关系图,其中包含 Azure API 管理和 RISE 环境中的 Azure 上的自托管 SAP 进程业务流程。

第二个示例演示一个设置,其中 SAP RISE 运行整个集成链(API 管理层除外)。

显示入站方案的关系图,其中包含 Azure API 管理和 RISE 环境中的 Azure 上的 SAP 托管 SAP 进程业务流程。

文件出站

在此方案中,SAP 托管的进程业务流程实例将文件写入 Azure 上的客户管理的文件共享或本地工作负载。 客户处理接入点。

显示文件共享方案的关系图,其中包含 RISE 环境中的 Azure 上的 SAP 进程业务流程。

网关设置比较

注意

性能和成本指标采用生产级层级。 有关详细详细,请参阅 Azure 定价计算器。 另请参阅以下文章:Azure 防火墙性能应用程序网关高流量支持Azure API 管理实例的容量

对本文中讨论的网关组件进行比较的表。

根据使用的集成协议,可能需要多个组件。 有关将 Azure 应用程序网关与 Azure 防火墙链接的各种组合的优势的详细信息,请参阅用于虚拟网络的 Azure 防火墙和应用程序网关

集成经验规则

要确定本文中描述的哪些集成方案最适合需求,请根据具体情况对其进行评估。 请考虑启用以下功能:

使用 Azure 集成服务替代 SAP 进程业务流程

借助 Azure 集成服务项目组合,可以通过本机方式处理 SAP 进程业务流程涵盖的集成方案。 有关如何使用云原生方式设计 SAP IFlow 模式的见解,请参阅此博客系列。 连接器指南包含有关 AS2EDIFACT 的更多详细信息。

有关详细信息,请查看所需 SAP 接口的 Azure 逻辑应用连接器

后续步骤

使用应用程序网关和 API 管理来保护 API

将内部虚拟网络中的 API 管理与应用程序网关集成

部署应用程序网关 WAF 会审工作簿,以更好地了解 SAP 相关 WAF 警报

了解适用于 SAP 的应用程序网关 WAF

了解合并 Azure 防火墙和 Azure 应用程序网关的含义

在 Azure API 管理中使用 SAP OData API