发送和接收消息过程中的安全性

下图显示了 BizTalk Server 接收、处理消息以及将消息发送到另一个应用程序或合作伙伴时,对消息执行的操作。

安全消息ebiz_plan_secoverview的安全功能
消息生存期中使用的安全功能

  1. 适配器的接收位置接收消息。 根据协议的具体情况,适配器在协议级别对发件人进行验证,以标识表示消息发件人的 Windows 用户帐户。

  2. 然后适配器将消息传递到管道,如果在适配器中还没有执行消息级别的验证,则此时在管道中执行该验证。

    1. 在解码阶段,管道将对消息进行解密,然后使用消息附带的证书或者本地计算机的“其他人”证书存储中配置的证书,来验证签名的有效性。 管道对签名进行验证后,解码组件将对证书链进行验证,直至到达受信任根证书颁发机构 (CA)。 如果将管道配置为对 S/MIME 消息进行解码,并且发件人使用 S/MIME 对消息进行了加密,则 MIME/SMIME 解码器将验证消息的签名,然后使用证书识别发件人。 有关如何使用 MIME/SMIME 解码器管道组件的详细信息,请参阅 实现消息安全

    2. 在参与方解析阶段,BizTalk Server 将使用从协议级别验证获取的证书信息和发件人安全 ID (SSID) 来确定消息的发件人是否是系统中已知的参与方。 发件人 SSID 是由适配器验证的用户限定名。 例如, 如果 BizTalk Server 通过 HTTP 适配器使用 Windows 验证接收消息,则发件人 SSID 为“域\用户名”格式。 BizTalk Server向消息分配群 ID (PID) ,该 ID 是已识别的参与方 ID 或来宾 ID。 有关如何使用参与方解析组件的详细信息,请参阅 使用证书进行参与方解析

    3. 如果将接收端口配置为要求验证发件人是系统中的已知参与方,而 BizTalk Server 找不到消息发件人的 PID,则 BizTalk Server 会根据接收端口的配置丢弃或挂起该消息。 BizTalk Server 提供此功能来规避拒绝服务攻击的威胁。 有关接收端口的身份验证选项的详细信息,请参阅 如何为接收端口配置身份验证选项

  3. 管道对消息进行验证后,会将该消息发送到 MessageBox 数据库。

    1. 如果排队的主机(运行管道的主机)未标识为受信任验证主机,则 MessageBox 数据库将用来宾 ID 覆盖 PID,用运行排队主机实例的服务帐户覆盖 SSID。 有关身份验证受信任主机的详细信息,请参阅 进程间消息的身份验证。 有关如何配置身份验证受信任主机的详细信息,请参阅 如何修改主机属性

    2. 如果运行管道的主机标记为受信任验证,则 MessageBox 数据库信任该 PID 和 SSID,并将此信息留在消息的上下文中,以便下游流程能使用此信息对消息的原始发件人进行验证和/或授权。

    3. 如果 BizTalk Server 需要接收授权,则 MessageBox 数据库将验证订阅消息的主机有接收该消息的授权。 有关接收授权的详细信息,请参阅 授权消息接收方

  4. BizTalk Server 对消息进行处理后,出站管道将在编码阶段对消息进行加密和/或数字签名。

另请参阅

实现消息安全性
规划消息安全性