gpt4 book ai didi

javascript - 客户端可以是 Javascript 客户端时的 WCF 服务安全性

转载 作者:行者123 更新时间:2023-11-29 22:22:22 25 4
gpt4 key购买 nike

如何保护可由 Javascript 客户端使用的 WCF 服务?有什么具体的安全模型吗?

据我了解,WCF 支持使用传输和消息安全性对有线数据进行加密。但是 WCF 仍然不完全安全,因为任何人都可以使用该服务(缺少身份验证)。只有“来回”移动的数据在 channel 上被加密。这还不够。因此,我们引入了相互身份验证并选择证书作为凭证。客户需要做的是:连同所有 SOAP 请求,他应该发送一个有效的证书(客户端凭证也包含公钥和私钥,由 WCF 管理员颁发)由我的服务器信任的 CA 颁发。

我们正在使用 basicHttpBinding,因为我们的客户端可以是 Javascript/Ipad/.Net/DBL 客户端。我们能够使用 .Net/SOAPUI/JAVA 客户端使用此类服务​​。所以我们很擅长这种方法。

但今天在分析中我们发现 JavaScript 客户端无法使用我们的服务,因为它不支持相互身份验证(如果我错了请纠正我)。即使它支持相互身份验证并将有效证书发布到服务器,我们也不能让所有客户端(网络浏览器)提供客户端证书,因为它也包含一个公钥和一个私钥(请注意私钥!!)和我的服务器盲目地信任它。

现在我有点困惑了。有人可以建议一些 JavaScript 支持的安全模型,而不会危及任何安全性。像 RESTful WCF 这样的东西。

我知道 JavaScript 不支持 Message Security,它只支持 Transport Security。我不关心数据是如何通过网络加密的。我关心的是客户端如何通过我的 WCF 服务进行身份验证。

非常感谢

最佳答案

如果您已经在您的网站上使用表单例份验证,那么您可以通过将 AspNetCompatibilityRequirementsMode 启用为 Required 来利用 ASP.NET 管道来检查 FormAuthentication Cookie。更多详细信息,请参阅此 SO thread

如果您的服务是独立服务,并且它只是由您无法控制的不同客户端使用,那么您可以使用 oauth 身份验证,其中会有一个消费者 key ,该 key 将共享给所有经过身份验证的客户端.调用者将使用此 key 签署一些信息,服务器也将使用相同的 key 对其进行签名,然后进行比较。有关实现细节,请查看此 excellent article

关于javascript - 客户端可以是 Javascript 客户端时的 WCF 服务安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11662680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com