繁体   English   中英

仅带有服务证书的WCF消息安全性

[英]WCF Message Security With Service Certificate Only

我是WCF的新手,我想知道是否可以执行Message Security,在其中我仅将x.509证书用于服务,而对于客户端安全,Windows凭据是否可以使用Windows凭据,这行得通吗? 尝试在网络上搜索,但是或者没有关于这种方法的讨论,或者我在Google搜索中使用了错误的措词,非常感谢您的帮助,谢谢大家。

基本上,我将在绑定中包含以下内容:

<wsHttpBinding>
    <binding name="msgBinding">
        <security mode="Message">
            <message clientCredentialType="Windows" />
        </security>
    </binding>
</wsHttpBinding>

和我的行为:

<behavior name="wsHttpCertificateBehavior">
    ...
    <serviceCredentials>
        <serviceCertificate findValue="MyCert" x509FindType="FindBySubjectName" storeLocation="CurrentUser" storeName="My" />
    </serviceCredentials>
</behavior>

你为什么要这样做? 您的安全要求是什么?

您是否要使用服务证书来保护消息传输,然后将Windows安全性用于客户端以进行身份​​验证和授权?

Windows安全性仅在您位于同一域或设置了某种联合安全性时才有效。 如果您在同一个域中,请对两者都使用Windows安全性。 如果您不在同一域中,则不能为客户端使用Windows凭据,因为服务器将无法验证它们。 您要么必须使用由服务方的证书颁发机构颁发的客户端证书,要么使用自定义凭据。

但是,如果您在同一个域上,但仍需要服务端证书,则必须在服务的配置文件中指定serviceCertificate并使用HTTPS定义终结点地址,也就是说,如果您作为独立服务托管。 如果您托管在IIS中,则可以在IIS网站的设置中定义证书。

您可能会发现此有用的应用程序部署方案

嘿,谢谢您对Mogounus的帮助。 我的问题很复杂,但是总之,我的要求是在服务器端使用证书,在进行了更多研究之后,我认为我现在已经知道了。 因此,如果我理解正确,则在具有消息安全性的两个客户端/服务器上都使用证书时,客户端将使用其私钥对消息签名,然后附加其发布密钥,并使用服务器的发布密钥进行加密,只有该服务器才能解密并因此获得签名的消息以及客户端的pub密钥,以验证签名的数据。

以我为例,它已经正常工作了,我只需要验证服务是否使用了正确的东西进行签名/加密,但这似乎是不可能的,因为在邮件打包时,它已经被加密,并且看不到内容。

我在搜索此答案时意识到的另一个问题是,并非我的所有客户端都在同一个域中,因此必须在客户端使用user / pwd或certs。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM