共用方式為

使用 Azure 逻辑应用在 B2B 工作流中交换 AS2 消息

适用范围:Azure 逻辑应用(消耗型 + 标准型)

若要在使用 Azure 逻辑应用创建的工作流中发送和接收 AS2 消息,请使用 AS2 (v2) 连接器。 此连接器提供支持和管理 AS2 通信的操作功能。 如果需要跟踪功能,仍然可以使用原始 AS2 连接器,但它即将被弃用。

除了跟踪功能,AS2(v2)连接器提供与原始 AS2 连接器相同的功能。 AS2(v2)连接器本地集成于 Azure 逻辑应用运行时,在消息大小、吞吐量和延迟方面提供显著的性能提升。 与原始 AS2 连接器不同,AS2(v2)连接器不需要创建与集成帐户的连接。 相反,如先决条件中所述,将集成帐户链接到计划使用连接器的逻辑应用资源。

本指南演示如何将 AS2(v2)和 AS2 的编码和解码作添加到现有逻辑应用工作流。 AS2 (v2) 连接器不提供任何触发器,因此可以使用任何触发器启动工作流。 本指南中的示例使用了请求触发器

连接器技术参考

AS2 连接器具有不同的版本,具体取决于 逻辑应用类型和主机环境

逻辑应用 环境 连接器版本
消耗 多租户 Azure 逻辑应用 AS2(v2)和 AS2 管理型连接器,它们显示在 “共享”下的连接器库中。 AS2 连接器具有一个触发器和多个动作。 AS2 (v2) 连接器仅提供操作。 可以使用任何适合您方案的触发器。 有关详细信息,请参阅:

- AS2 托管连接器参考
- AS2 (v2) 托管连接器操作
- AS2 消息限制
标准 单租户 Azure 逻辑应用、应用服务环境 v3(仅限 Windows 计划) AS2 (v2) 内置连接器,该连接器显示在 内置连接器库中,AS2 托管连接器显示在 “共享”下的连接器库中。 AS2 连接器具有一个触发器和多个操作。 AS2(v2)连接器的操作。 可以使用适合您场景的任何触发器。

内置版本在以下方面有所不同:

- 内置版本可以直接访问 Azure 虚拟网络。 不需要本地数据网关。

有关详细信息,请参阅:

- AS2 托管连接器参考
- AS2 (v2) 内置连接器操作
- AS2 消息限制

AS2 (v2) 操作

AS2 (v2) 连接器没有触发器。 下表描述了 AS2 (v2) 连接器在传输消息时用于建立安全性和可靠性的措施:

操作 说明
AS2 编码操作 可以通过消息处置通知 (MDN) 提供加密、数字签名和确认功能,这有助于为不可否认性提供支持。 例如,此操作会应用 AS2/HTTP 标头并执行以下任务(在配置好以后):

- 为传出消息签名。
- 加密传出消息。
- 压缩消息。
- 在 MIME 标头中传输文件名。
AS2 解码操作 通过消息处置通知(MDN)提供解密、数字签名和确认。 例如,此操作在配置后执行以下任务:

- 处理 AS2/HTTP 标头。
- 协调收到的 MDN 和原始的出站消息。
- 更新并关联不可否认性数据库中的记录。
- 写入 AS2 状态报告的记录。
- 输出 base64 编码的有效负载内容。
- 确定是否需要 MDN。 根据 AS2 协议,确定 MDN 应该是同步还是异步。
- 根据 AS2 协议生成同步或异步 MDN。
- 在 MDN 上设置关联令牌和属性。
- 验证签名。
- 解密消息。
- 解压缩消息。
- 检查并禁止消息 ID 重复。

先决条件

  • Azure 帐户和订阅。 如果还没有订阅,请注册 Azure 帐户

  • 要在其中使用 AS2 操作的逻辑应用资源和工作流。

  • 一个集成帐户资源,用于定义和存储可在企业集成与 B2B 工作流中使用的项目。

    • 集成帐户和逻辑应用资源必须存在于同一 Azure 订阅和 Azure 区域中。

    • 定义至少两个参与工作流中使用的 AS2 操作的参与方。 这两个合作伙伴的定义必须使用相同的业务标识限定符,即此方案的 AS2Identity。

    • 定义参与工作流的参与方之间的 AS2 协议。 每个协议需要指定主机和来宾合作伙伴。 你与其他合作伙伴之间的消息中的内容必须与协议类型匹配。 有关接收和发送消息时要使用的协议设置的信息,请参阅 AS2 消息设置

  • 在开始使用 AS2(v2)或 AS2 操作之前,必须将消耗逻辑应用标准逻辑应用链接到集成帐户。 添加 AS2(v2)或 AS2 操作时,可能还需要创建与集成帐户的连接:

    逻辑应用工作流 需要链接?
    消耗 - AS2 (v2) 连接器:无需连接
    - AS2 连接器:需要连接
    标准 - AS2 (v2) 连接器:无需连接
    - AS2 连接器:需要连接
  • 如果使用 Azure Key Vault 进行证书管理,请检查保管库密钥是否允许“加密” 和“解密” 操作。 否则,编码和解码操作会失败。

    1. Azure 门户中,打开密钥保管库资源。 在资源边栏的 “对象”下,选择 “键”。

    2. “密钥 ”页上,选择密钥。 在“ 版本 ”页上,选择所使用的密钥版本。

    3. “密钥版本 ”页上的 “允许的作”下,确认已选择 “加密 ”和 “解密 ”。

      屏幕截图显示 Azure 门户及其密钥库资源,其中密钥和密钥版本页面处于打开状态,并选择了“加密和解密”操作。

为 AS2 消息编码

若要使用 AS2(v2) 连接器或 AS2 连接器对消息进行编码,请执行相应的步骤。

AS2 v2 连接器

若要使用 AS2(v2) 连接器对消息进行编码,请执行以下步骤:

  1. Azure 门户的设计器中,打开你的逻辑应用资源和工作流。

  2. 在设计器中,按照以下 常规步骤 将名为 AS2(v2) 的操作 AS2 编码 添加到您的工作流中。

  3. 在操作信息窗格中提供以下信息:

    参数 必选 说明
    要编码的消息 要编码的消息有效负载,例如“请求”触发器的“正文”输出。

    1. 在“要编码的消息”框内选择内容,然后选择闪电图标以打开动态内容列表。
    2. 在 收到 HTTP 请求时,在节名称旁边,选择“ 查看更多”。
    3.从列表中选择“ 正文”。
    AS2 发件人 AS2 协议指定的消息发送方的企业标识符,例如 Fabrikam。
    AS2 收件人 AS2 协议指定的消息接收方的企业标识符,例如 Contoso。

    例如,消息有效负载是从“请求”触发器输出的“正文”内容:

    屏幕截图显示了工作流设计器和 AS2 编码操作以及消息编码属性。

AS2 连接器

若要使用 AS2 连接器对消息进行编码,请执行以下步骤:

  1. Azure 门户的设计器中,打开你的逻辑应用资源和工作流。

  2. 在设计器中,按照以下常规步骤,将名为编码为 AS2 消息的 AS2 操作添加到工作流。

  3. 当系统提示创建与集成帐户的连接时,请提供以下信息:

    参数 必选 说明
    连接名称 连接的名称。
    集成帐户 ID 集成帐户的名称。
    集成帐户 SAS URL 集成帐户的回调 URL。

    例如:

    屏幕截图显示编码为 AS2 消息连接信息。

  4. 完成后,选择“ 新建”。

  5. 在操作信息窗格中提供以下信息。

    参数 必选 说明
    AS2 发送方 AS2 协议指定的消息发送方的企业标识符,例如 Fabrikam。
    AS2 接收方 AS2 协议指定的消息接收方的企业标识符,例如 Contoso。
    body 要编码的消息有效负载,例如“请求”触发器的“正文”输出。

    1.在 正文 框中选择,然后选择闪电图标以打开动态内容列表。
    2. 在节名称收到 HTTP 请求时旁边,选择「查看更多」。
    3.从列表中选择“正文”。

    屏幕截图显示了“编码到 AS2”消息操作,使用消息编码属性。

为 AS2 消息解码

若要使用 AS2(v2) 连接器或 AS2 连接器解码消息,请执行相应的步骤。

AS2 v2 连接器

若要使用 AS2(v2) 连接器解码消息,请执行以下步骤:

  1. Azure 门户的设计器中,打开你的逻辑应用资源和工作流。

  2. 在设计器中,按照以下 常规步骤 将名为 AS2 解码的 AS2(v2)操作 添加到工作流中。

  3. 在操作信息窗格中提供以下信息:

    参数 必选 说明
    要解码的消息 要解码的消息有效负载,例如“请求”触发器的“正文”输出。

    1. 在 待解码消息 框内选择,然后选择闪电图标以打开动态内容列表。
    2. 在 收到 HTTP 请求时,在节名称旁边,选择“ 查看更多”。
    3.从列表中选择“ 正文”。
    消息标头 要解码的消息的标头,例如,“请求”触发器的“标头”输出。

    1. 在 “消息头 ”框中选择,然后选择函数图标以打开表达式编辑器。
    2. 在编辑器框中,输入以下表达式:

    triggerOutputs()?['headers']

    3. 完成后,选择“ 添加”。

    例如:

    屏幕截图显示了工作流设计器以及 AS2 解码操作与消息解码属性。

AS2 连接器

若要使用 AS2 连接器解码消息,请执行以下步骤:

  1. Azure 门户的设计器中,打开你的逻辑应用资源和工作流。

  2. 在设计器中,按照以下 通用步骤,将名为 “解码 AS2 消息” 的 AS2 操作添加到工作流中。

  3. 当系统提示创建与集成帐户的连接时,请提供以下信息:

    参数 必选 说明
    连接名称 连接的名称。
    集成帐户 ID 集成帐户的名称。
    集成帐户 SAS URL 集成帐户的回调 URL。

    例如:

    截图显示了 AS2 消息解码连接信息。

  4. 完成后,选择“ 新建”。

  5. 在操作信息窗格中提供以下信息:

    参数 必选 说明
    body 消息有效负载,例如“请求”触发器的“正文”输出。

    1.在 正文 框中选择,然后选择闪电图标以打开动态内容列表。
    2. 在节名称 收到 HTTP 请求时 旁边,选择查看更多
    3.从列表中选择“ 正文”。
    标头 要解码的消息的标头,例如,“请求”触发器的“标头”输出。

    1. 在 “标头 ”框中选择,然后选择函数图标以打开表达式编辑器。

    2. 在编辑器框中,输入以下表达式:

    triggerOutputs()?['headers']

    3. 完成后,选择“ 添加”。

    例如:

    屏幕截图显示了解码 AS2 消息动作,正文是从请求触发器中输入的。

示例

若要部署功能完备的逻辑应用工作流和示例 AS2(v2)方案,请参阅 AS2 (v2) 逻辑应用模板和方案

排查问题

  • 发送已签名或加密的消息时出现问题

    请考虑使用不同的 SHA256 算法格式。 AS2 规范不提供有关 SHA256 格式的任何信息,因此每个提供者都使用其自己的实现或格式。