配置 SAP Cloud Integration

学习目标

  • 通过维护凭据、复制集成包、配置和部署集成流以及管理值映射来配置 SAP Cloud Integration。

SAP Cloud Integration 配置步骤

从选择预打包集成内容到运行它,整个过程可以分为四个主要步骤:

  1. 复制 一个集成包到你的租户工作区。 在发现视图中,搜索一个集成包并将其复制到你的工作区。

  2. 配置 集成流。 在设计视图中,配置相关的集成内容,例如集成流、值映射等。如果需要引用凭据,你必须先在操作视图中创建它们。

  3. 部署 集成内容。 配置完集成内容后,你可以从设计视图部署它。

  4. 监控 集成内容。 部署集成流后,你可以从监控/操作视图监控通过它们发送的消息。在那里,如有必要,你还可以取消部署集成内容。

此外,你还需要维护凭据,用于向目标系统发送消息。由于这与特定集成包无关,如果你已经知道需要何种凭据,甚至可以在复制该包之前就创建凭据。否则,你之后再做也可以,例如在配置第一个集成流时并行进行。我们从创建凭据开始,这样之后就不必在不同屏幕之间来回切换。

以下视频演示了直到部署步骤的整个过程。后续各节将详细介绍每个步骤。监控这一主题将在后面的章节中讨论。

视频:本节含 SAP 官方视频(视频 ID 1_r076t54j),需在 learning.sap.com 在线观看。

凭据维护

Cloud Integration 作为中间件,接收并转发消息。身份验证以及因此所需的凭据

对于本课程中的集成流,身份验证和所需的凭据在集成流程的两个位置使用(从 Cloud Integration 的视角来看)。

  • 入站连接:另一个系统(发送方系统)向集成流发送数据。Cloud Integration 需要验证发送方系统发送的凭据。

  • 出站连接:集成流向另一个系统(接收方系统)发送数据。Cloud Integration 需要提供接收方系统所验证的凭据。

集成流的配置对话框允许你维护入站和出站身份验证参数。

  • 对于入站连接,这是对调用该集成流所需的用户角色的定义。

  • 对于出站连接,这是用于向接收方系统进行身份验证的凭据名称或私钥别名。

实际授权和身份验证细节(例如用户名、密码、角色分配或证书上传)的维护在不同的位置进行。

出站凭据在 Cloud Integration WebUI 中维护,而对于入站连接,步骤会因底层环境(Neo 与 Cloud Foundry)而异。以下各节将引导你了解设置基本身份验证和基于证书的身份验证的各种选项。此处不讨论其他身份验证方法,因为它们不用于本课程的预打包集成内容。

在集成流中维护入站凭据 - 与环境无关

入站连接的实际身份验证由承载环境处理。在集成流中,你只需定义已通过身份验证的用户必须具有何种授权,才被允许调用相应的集成流。授权通过可分配给特定用户或组/角色集合的用户角色来体现。

在集成流配置对话框的发送方选项卡上,你可以定义调用方必须具有的用户角色。为此,请确保授权下拉列表设置为用户角色,并且已选择所需的用户角色,如下面的截图所示。

默认用户角色是 ESBMessaging.send。还可以定义其他角色,这将在与环境相关的章节中讨论,同时也会讨论用户及其分配的维护。

注意

尽管集成流允许你通过从授权下拉列表中选择相应选项,将客户端证书直接上传到发送方选项卡,但强烈建议不要使用此功能。有更好的替代方案,将在与环境相关的章节中讨论。

维护入站凭据 - Neo 环境

在 Neo 环境中,角色及其对用户或组的分配在 BTP Cockpit 中维护。相关位置为:

  • 角色: 要创建新角色或维护现有角色,请导航到 Applications → Subscriptions → Subscribed Java Applications → 选择 "*iflmap" 应用 → Roles

  • 角色分配: 要将角色分配给用户或组,请导航到 Security → Authorizations

你可以在 SAP Help Portal 上找到有关Authorizing Users or User Groups的更多详细信息。

在将适当的角色分配给特定用户后,该用户在成功通过身份验证后即可调用需要相应角色的集成流。在测试环境中,可以通过使用用户的用户 ID(通常是 S 用户或 P 用户)和密码进行基本身份验证来轻松完成此设置。

在生产环境中,建议使用客户端证书。无需将客户端证书上传到每个集成流(这在证书需要续订时可能导致巨大的维护工作量),可以通过证书到用户映射(Certificate-to-User Mapping)来实现这一点。

证书到用户映射允许你将客户端证书映射到具有特定角色分配的特定用户 ID。这使客户端能够使用客户端证书进行身份验证,同时仍获得正确的授权分配。证书到用户映射可以在 Cloud Integration 中的监控/操作区域维护:

你可以在 SAP Help Portal 上找到有关在 Neo 环境中设置入站连接的更多详细信息。

维护入站凭据 - Cloud Foundry 环境

在 Cloud Foundry 环境中,可以在 Cloud Integration WebUI 的监控区域中通过用户角色磁贴维护其他角色。以下截图展示了导航路径以及包含预定义角色 ESBMessaging.send 和自定义角色 CustomMessagingSend 的维护屏幕:

将角色分配给用户、角色集合或服务密钥是在 BTP Cockpit 中从相应的子账户进行的。

你可以使用菜单安全用户角色角色集合将此角色分配给身份提供者(IdP)用户。

注意

请注意,在将默认角色分配给 IdP 用户时,cockpit 中该角色的名称仅为 MessagingSend 不带 "ESB" 前缀,名称中也不带点号!

IdP 用户的替代方案是服务密钥。服务密钥可以与技术用户相类比。你可以在流程集成运行时实例下创建它们,并将它们用于基本身份验证以及客户端证书。

要创建服务密钥,请导航到服务实例和订阅,然后选择你的流程集成运行时实例或创建一个新实例。确保该实例的配置参数包含授权类型 "Client_credentials" 以及你的集成流所需的相应角色。这可以通过表单JSON 输入完成。包含默认角色和自定义角色的示例 JSON 可能如下所示:

{
"grant-types": [
"client_credentials"
],
"redirect-uris": [],
"roles": [
"ESBMessaging.send", "CustomMessagingSend"
],
"token-validity": 3600
}

注意

为服务密钥定义默认角色时,名称的拼写与 Cloud Integration WebUI 中完全一致:ESBMessaging.Send。

你可以在相应部分创建新的服务密钥,如下面的截图所示。作为密钥类型,你可以在以下三个选项中选择:

  • ClientId/Secret: 生成一个 clientid 和一个 clientsecret,可用作基本身份验证的用户名和密码。

  • Certificate: 生成新的客户端证书,包括签发证书颁发机构的证书,以及 Base64 格式的密钥对。因此,它可以在另一个系统中用作客户端证书。(可能需要转换文件格式,例如转换为 p12 文件,以便在单个文件中存储所有这些信息。)

  • External Certificate: 允许你上传现有证书,该证书必须 受负载均衡器信任 。

以下截图简要概述了使用服务密钥时最相关的选项,包括实例级别的配置参数(A)、用于基本身份验证的示例服务密钥(B),以及用于基于客户端证书的身份验证的服务密钥(C):

你可以在 SAP Help Portal 上找到有关在 Cloud Foundry 环境中设置入站连接的更多详细信息。

维护出站凭据

面向接收方系统的身份验证凭据不直接在集成流内部维护。相反,集成流只引用这些凭据。身份验证方法可以通过配置对话框中的身份验证参数进行控制。

本课程的集成流有两种选项:

  • 对于 Basic 身份验证,会显示第二个字段凭据名称。此字段需要填入先前创建的安全工件的名称。该工件包含用于向相应接收方系统进行身份验证的用户名和密码。它可以在操作/监控视图下的管理安全 → 安全材料中创建。

  • 如果选择了 Client Certificate,会显示第二个字段私钥别名。此字段需要填入密钥库中某个密钥对的名称,该密钥库同样可以在操作/监控视图下的密钥库中找到。 每个 Cloud Integration 租户都随附一个由 SAP 提供的默认密钥对,名称为:sap_cloudintegrationcertificate。在密钥库中选择它并选择下载证书链,即可下载证书链以用于维护接收方系统。

注意

你可以在知识库文章 3035435 中找到有关 SAP 提供的客户端证书的更多信息。

复制集成包

与在 SAP Business Accelerator Hub 上浏览预打包集成内容类似,你可以使用 Cloud Integration 租户的发现视图来定位所需的包,并将其复制到你的工作区以进行配置和部署。

本课程使用包 SAP Cloud for Customer Integration with SAP S/4HANA。搜索该包时请注意,包名称仍然指的是 SAP Cloud for Customer。此外,请注意有两个名称相似的包,分别带有 SAP S/4HANASAP S/4HANA Cloud。本课程聚焦于 SAP S/4HANA;不带 Cloud 的那个。

要复制该包,请在搜索结果列表中选中它,这会导航到概览页面。复制按钮位于右上角:

集成流配置

集成流通常包含会因环境而异的参数,例如目标系统的端点和相应的凭据。这些参数可以在集成流配置中维护,该配置可从包内的设计区域访问,方法是选择操作菜单 → 配置,或打开集成流并从中选择配置

注意

配置集成流不会修改它,因此不会失去升级能力。集成流的修改通过选择编辑来完成,该操作在设计区域内进行。

集成流的批量配置

通过勾选每行开头的复选框来选择多个集成流时,你可以选择表格顶部的操作按钮来批量配置这些集成流。此时会打开一个对话框,列出所选的集成流,旁边是配置屏幕。尽管你仍需逐个处理所选的集成流以维护参数,但此功能有助于在配置多个集成流时保持条理,因为它们会显示在一个新窗口中,你可以快速输入所有相关详细信息,而无需离开配置对话框。

提示

为避免混淆发送方和接收方选项卡的参数,建议每次只对方向相同的集成流(从 SAP Business Suite 发出与发往 SAP Business Suite)使用批量配置功能。

典型的发送方和接收方通道参数

用于 SAP Sales and Service Cloud 与 SAP S/4HANA 集成的集成流,其配置参数非常相似。

发送方选项卡包含与发送系统相关的参数,例如工作节点侦听传入消息的地址或路径,以及允许向该集成流发送数据所需的授权

接收方选项卡包含目标系统的参数,例如主机端口身份验证详细信息。将代理类型设置为本地部署(On-Premise)时,可以指定目标系统可通过云连接器访问。对于所有其他位置,则使用 Internet(即使目标系统位于本地部署网络内,但使用了反向代理)。

以下截图展示了集成流 Replicate Business Partner from SAP Business Suite配置对话框,其中发送方是 SAP S/4HANA,接收方是 SAP Sales and Service Cloud 租户。

注意

配置集成流时一个常见的陷阱是混淆发送方和接收方参数。始终注意集成流的"方向",也就是说,哪个系统是发送方,哪个系统是接收方。如果使用批量配置功能,请始终一次性选择方向相同的集成流。

Cloud Integration 值映射

值映射的作用与 SAP Sales and Service Cloud 中的代码列表映射类似。然而,由于数据类型的限制,某些情况下无法使用代码列表映射,映射必须在集成流内部完成,更准确地说,是在集成流内的消息映射中完成。此外,当源系统或目标系统不提供此类功能时,也可以使用它们。

有两种不同的映射表达式:

  • fixValueMappings:源值和目标值在集成流内部维护。

  • valueMapping:源值和目标值在集成流外部的 Value Mapping 工件中维护,并可供多个集成流使用。

本节重点介绍第二种方法,即使用独立的值映射工件。要使用值映射,消息映射必须包含一个 valueMapping 表达式,用于指定源和目标的代理(agency)与标识符。这用于定位值映射工件中的正确映射条目。值映射可以被多个集成流或消息映射复用,而映射条目则在中心位置维护。

以下截图展示了包 SAP Cloud for Customer Integration with SAP ERP 附带的值映射。

代理 CODERP 分别指定源系统和目标系统,而标识符则指定被映射的相应系统的代码列表或数据类型。实际的映射值可以在列表下方的表格中找到。

值映射与代码列表映射

尽管 SAP Sales and Service Cloud 提供代码列表映射,但由于接口或数据类型的技术限制,某些代码无法映射。在这种情况下,SAP Cloud Integration 上的值映射可以解决该问题。

上一个截图中可以看到的 SAP Sales and Service Cloud 与 SAP ERP 之间 ABC/客户分类的映射就是一个很好的例子:

  • SAP ERP 中的标识符称为 CustomerClassificationCode,可以包含长度为 2 的值(例如 "07")。

  • SAP Sales and Service Cloud 中的标识符称为 CustomerABCClassification,受该字段的数据类型限制,最大长度为 1(例如值 "A")。

由于 SAP Sales and Service Cloud 中该字段的数据类型不允许超过 1 个字符的值,系统在收到此类值时会抛出错误。这与所维护的代码列表映射条目无关,因为代码列表映射只能在消息被读取之后应用。但数据类型的正确性是在读取消息期间验证的。因此,在这种情况下必须使用 SAP Cloud Integration 内部的值映射。

本课其余配图

CPI-Configure iFlow Cred Comb

CPI-Configure iFlow-Inb. Cred

CPI-Neo BTP Roles

CPI-Cert-To-User-Mapping

CPI-CF User Roles

CPI-CF-Inbound-Credentials

CPI-Configure iFlow-Outb.Cred

CopyIntegrationPackage

CI-ConfigureiFlowMenu

SAP_HANA_Cloud_Integration_(HCI)_Overview_009

CI-ConfigureiFlowChannels

SAPCloudIntegrationValueMapping

本课其余配图

CPI-Configure iFlow Cred Comb

CPI-Configure iFlow-Inb. Cred

CPI-Neo BTP Roles

CPI-CF User Roles

CPI-Configure iFlow-Outb.Cred

SAP_HANA_Cloud_Integration_(HCI)_Overview_009

本课其余配图

CPI-Configure iFlow Cred Comb

CPI-Configure iFlow-Inb. Cred

CPI-Neo BTP Roles

CPI-CF User Roles

CPI-Configure iFlow-Outb.Cred

SAP_HANA_Cloud_Integration_(HCI)_Overview_009

本课其余配图

CPI-Configure iFlow Cred Comb

CPI-Configure iFlow-Inb. Cred

CPI-Neo BTP Roles

CPI-CF User Roles

CPI-Configure iFlow-Outb.Cred

SAP_HANA_Cloud_Integration_(HCI)_Overview_009