2015-02-11 24 views
5

我期待通过互联网向客户提供一项服务。在这个阶段,api非常小,我只希望知道的客户能够访问该服务。我现在不需要能够识别客户,但是我设想,将来我需要能够识别客户,随着api的增长。最好的方式来保护互联网上的WCF服务与少数客户端

我想知道在短期内保护服务的最佳方式是什么,以期我可以授权客户端访问服务上特定方法的较长期限?

我在考虑使用传输安全 - 即SSL。我也应该看看使用信息安全与

clientCredentialType="certificate" 

其中CLASE每个客户都会有自己的证书将与服务验证他们的身份?

或者我应该简单地为每个客户端提供一个API密钥,以提供类似级别的客户端差异化?

欢迎任何其他建议。

请注意,这是服务接口的服务 - 即不是客户端应用程序。该服务的用户数量将受到限制,并且我预计不需要在数据级别应用安全性,而且在方法访问级别上也是如此。

+0

“安全”是什么意思?你的攻击者叫夏娃,马洛里还是什么?当然,最简单的通用解决方案之一就是Kerberos over SSL。 – Aron 2015-02-11 03:34:07

回答

0

你可以使用自定义的用户名/口令认证,验证用户或AD身份验证以控制谁可以使用该服务。

因为您不想识别用户,所以现在最好的解决方案就是使用自定义用户名/密码认证,并且允许每个人现在使用。将来,当您想要识别用户时,请更改代码并进行验证。

请参阅https://msdn.microsoft.com/en-us/library/aa702565(v=vs.110).aspx。在验证功能中,现在不要抛出任何异常

1

给他们每个密钥,他们必须提交一个SHA签名与他们的请求(他们传入的一些/所有参数的编码版本,所以你也可以做SHA并检查它的匹配) 。

1

现在最简单的方法是将SSL添加到您的IIS主机,然后更改客户端上的HTTPS连接,这样的...

 <security mode="Transport"> 
     <transport clientCredentialType="None" /> 
     </security> 
+0

这将提供安全性,但不会帮助OP确保只有指定的客户端才能使用该服务。 – DeanOC 2015-02-11 02:25:43

+0

是的,好点。 – 2015-02-11 22:37:07

相关问题