使用 Azure 逻辑应用程序中的工作流交换 AS2 消息

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

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

AS2 (v2) 连接器只是不能提供跟踪功能,它的其他功能与原始 AS2 连接器相同,原生就能与 Azure 逻辑应用运行时一起运行,并在消息大小、吞吐量和延迟方面提供明显的性能改进。 与原始 AS2 连接器不同,AS2 (v2) 连接器不要求创建与集成帐户的连接。 但要求执行先决条件中所述的操作,确保将集成帐户链接到你计划在其中使用连接器的逻辑应用资源。

本操作指南介绍如何向现有的逻辑应用工作流添加 AS2 编码和解码操作。 AS2 (v2) 连接器不包含任何触发器,因此你可以使用任何触发器来启动工作流。 本指南中的示例使用了请求触发器

连接器技术参考

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

逻辑应用 环境 连接器版本
消耗 多租户 Azure 逻辑应用 AS2 (v2) 和 AS2 托管连接器(标准类)。 AS2 (v2) 连接器仅提供操作,但你可以使用适合你的方案的任何触发器。 有关详细信息,请查看以下文档:

- AS2 托管连接器参考
- AS2 (v2) 托管连接器操作
- AS2 消息限制
标准 单租户 Azure 逻辑应用和应用服务环境 v3(仅限 Windows 计划) AS2 (v2) 内置连接器和 AS2 托管连接器。 内置版本在以下方面有所不同:

- 内置版本仅提供操作,但你可以使用适合你的方案的任何触发器。

- 内置版本可以直接访问 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 连接器:需要连接,但不需要链接
  • 如果使用 Azure Key Vault 进行证书管理,请检查保管库密钥是否允许“加密” 和“解密” 操作。 否则,编码和解码操作会失败。

    1. Azure 门户中打开你的密钥保管库。 在密钥保管库菜单中的“设置”下,选择“密钥” 。

    2. 在“密钥”窗格中选择你的密钥。 在“版本”窗格中,选择你正在使用的密钥版本。

    3. 在“密钥版本”窗格中的“允许的操作”下,确认选择了“加密”和“解密”操作,例如 :

      显示 Azure 门户的屏幕截图,其中打开了“密钥保管库”、“密钥”和“密钥版本”窗格,并选择了“加密”和“解密”操作。

为 AS2 消息编码

选择“消耗”或“标准”逻辑应用工作流的选项卡:

AS2 v2 连接器

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

  2. 在设计器中,按照这些常规步骤将名为“AS2 编码”的 AS2 (v2) 操作添加到工作流

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

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

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

    显示具有消息编码属性的“AS2 编码”操作的屏幕截图。

AS2 连接器

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

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

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

    属性 必选 说明
    连接名称 连接名称
    集成帐户 从可用的集成帐户列表中,选择要使用的帐户。

    例如:

    显示“消耗”工作流和“对 AS2 消息进行编码”连接信息的屏幕截图。

  4. 完成操作后,选择“创建”。

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

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

    1. 将光标置于“正文”框中,以打开动态内容列表。
    2. 在部分名称“收到 HTTP 请求时”旁边,选择“查看更多”。
    3. 在输出列表中选择“正文”。

    显示包含消息编码属性的“对 AS2 消息进行编码”操作的屏幕截图。

为 AS2 消息解码

选择“消耗”或“标准”逻辑应用工作流的选项卡:

AS2 v2 连接器

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

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

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

    属性 必选 说明
    body 要解码的消息的正文,例如,“请求”触发器的“正文”输出。

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

    1. 将光标置于“标头”框中,以打开动态内容列表。
    2. 在部分名称“收到 HTTP 请求时”旁边,选择“查看更多”。
    3. 在输出列表中选择“标头”。

    例如:

    显示“AS2 解码”操作的屏幕截图,其中输入了“请求”触发器的“正文”和“标头”输出。

AS2 连接器

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

  2. 在设计器中,按照这些常规步骤将名为“解码 AS2 消息”的 AS2 操作添加到工作流

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

    属性 必选 说明
    连接名称 连接名称
    集成帐户 从可用的集成帐户列表中,选择要使用的帐户。

    例如:

    显示“消耗”工作流和“解码 AS2 消息”连接信息的屏幕截图。

  4. 完成操作后,选择“创建”。

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

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

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

    1. 将光标置于“标头”框中,以打开动态内容列表。
    2. 在部分名称“收到 HTTP 请求时”旁边,选择“查看更多”。
    3. 在输出列表中选择“标头”。

    显示包含消息解码属性的“解码 AS2 消息”操作的屏幕截图。

示例

若要尝试部署完全正常运行的逻辑应用和示例 AS2 (v2) 方案,请查看 AS2 (v2) 逻辑应用模板和方案

排查问题

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

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