BizTalk:来电身份验证

时间:2012-09-11 20:53:49

标签: authentication ssl-certificate biztalk biztalk-2010

在一个上升的BizTalk 2010项目中,我们将拥有一个客户调用以提交数据的Web服务,以及客户调用以请求数据的Web服务。在biztalk应用程序级别,这将通过将业务流程公开为wcf服务来实现。

在服务器级别,我们将拥有一个2节点Web场,一个2节点biztalk组和一个sql集群。 Web服务显然将部署在Web场中,编排,发送/接收端口将在BizTalk组服务器上运行。

我们希望对呼叫者进行身份验证并将其身份映射到活动目录帐户,这样在业务流程级别,我们就能够访问呼叫者的AD身份,并将帐户名称传递给存储过程。数据库中。

据推测,我们可以通过SSL证书处理身份映射,但我们之前没有这样做过。那里有一些很好的样本/教程吗?

1 个答案:

答案 0 :(得分:0)

如果添加端点行为以将WindowsIdentity中的名称添加到WCF标头,该怎么办?这样(至少在我的情况下)身份更容易在管道中进一步提供,但这足以满足您的“帐户名”目的吗?

#region IDispatchMessageInspector Members

public object AfterReceiveRequest(
    ref System.ServiceModel.Channels.Message request,
    System.ServiceModel.IClientChannel channel,
    System.ServiceModel.InstanceContext instanceContext)
{
    if (ServiceSecurityContext.Current == null || 
        ServiceSecurityContext.Current.WindowsIdentity == null) 
        return null;

    WindowsUserName windowsUserName = new WindowsUserName();
    request.Headers.Add(MessageHeader.CreateHeader(
        windowsUserName.Name, windowsUserName.Namespace,
        ServiceSecurityContext.Current.WindowsIdentity.Name));
    return null;
}

public void BeforeSendReply(ref Message reply, object correlationState)
{
    return;
}

#endregion

使用客户端证书时实际上同样适用,但使用PrimaryIdentity而不是WindowsIdentity来获取BizTalk方名称。这与活动目录帐户没有直接链接。