入站消息认证

为了验证消息发件人的身份,BizTalk Server 可以使用证书信息或 Windows 集成安全性对消息的发件人进行验证。 下图显示了可用于对入站消息进行身份验证BizTalk Server中的安全功能。

ebiz_plan_secoverview_auth_inbound
BizTalk Server 用于验证入站消息的安全功能。

BizTalk Server 收到加密的签名消息时,它会执行以下步骤以确保识别出发送消息的参与方。

  1. 当消息到达 BizTalk Server 接收位置时,接收处理程序会试图获取来自发送流程的发件人 Windows 安全 ID (SSID)。 签名消息通过监听程序的验证后,接收位置会将该 SSID 往下游传递。 如果通过 BizTalk 消息队列或 HTTP 适配器等可获取客户端证书信息,则 BizTalk Server 接收位置可获取该证书信息,然后沿着接收管道传递该证书消息以用于参与方解析。 如果接收处理程序无法获取 SSID,则此字段留空。

    接收处理程序将消息发送到接收管道,在接收管道中将会解密消息、验证数字签名,如果该接收管道含有参与方解析组件,还会进行参与方解析。 如果发件人对传入消息使用了签名证书,则 MIME/SMIME 解码器组件会覆盖从适配器获取的任何证书信息。

  2. 如果发件人对消息进行了加密,则 MIME/SMIME 解码器会从主机实例服务帐户的个人证书存储中检索解密证书,然后使用私钥对消息进行解密。

    如果发件人对消息进行了签名,则 MIME/SMIME 解码器会验证该数字签名,它先验证负载哈希以确定签名是否被篡改,然后从证书存储中检索证书来验证该签名。 如果消息本身就包含签名人的公钥,则 MIME/SMIME 解码器不会从证书存储中检索证书,而使用消息中提供的公钥。

  3. 通常管道中的最后一个处理步骤是参与方解析。 使用 BizTalk 浏览器或 BizTalk Server 管理控制台,可以创建参与方、将参与方映射到签名证书或创建参与方别名。 在 BizTalk 浏览器中定义的所有参与方都有一个唯一的参与方标识符 (PID)。 BizTalk Server 获取该 PID,然后将它放在消息上下文中。 BizTalk 使用以下方法之一获取 PID:

    1. 当发件人对消息进行了签名或者接收处理程序无法获取客户端证书,并且您选择了使用证书来解析参与方的选项时,BizTalk 会使用相应的签名或客户端证书来查找 PID。 开始接收参与方的消息之前,必须在属性中配置参与方及其证书。 有关如何配置参与方的详细信息,请参阅 使用证书进行参与方解析

    2. 当发件人没有对消息使用签名证书,并且您选择了使用发件人的安全 ID (SSID) 来解析参与方的选项时,参与方解析组件会使用 SSID 来查找 PID。 开始接收参与方的消息之前,必须将参与方配置为使用 SSID 作为别名。 有关参与方解析组件的详细信息,请参阅 参与方解析管道组件

      注意

      BizTalk Server 定义参与方的别名时,使用的是帐户名而不是实际的 Windows SID。

    3. 如果无法解析参与方,则管道会将 PID 设为“来宾”。

  4. 当接收端口标记为“要求验证”,并且 BizTalk Server 获取了有效 PID 并将其解析为已知参与方时,消息会被排入 MessageBox 数据库的队列。 当 SSID 为空或者 PID 是来宾 ID 时,BizTalk Server 将丢弃消息或者将消息发送到挂起的队列中(具体情况取决于“要求验证”属性的配置)。 使用“要求验证”属性可以尽量减小从未知参与方接收大量消息的负面影响。 有关接收端口的身份验证选项的详细信息,请参阅 如何为接收端口配置身份验证选项

另请参阅

进程间的消息验证
出站消息保护
对消息的发件人进行身份验证
向消息收件人授权
如何配置用于接收已签名消息的BizTalk Server
BizTalk Server 用于签名消息的证书