2009-12-23 66 views
5

我正在WCF中实现一项服务,需要通过用户名/密码进行自定义用户身份验证。此服务配置为WebScript(JSON)服务。如何使用WCF/JSON对用户进行身份验证和跟踪?

我想知道是否有可能获得安全上下文,所以我不必在每次调用中都包含散列或用户/密码。我知道我可以为此使用证书,但是我需要具有验证的使用/传递机制。

我打算使用AJAX(jQuery)与此服务交谈,并且应该可以使用基本的HTTP身份验证。

该服务稍后还会公开其他端点,例如通过TCP,并且这确实支持“正确的”身份验证。

WCF的安全性有很多种方法,我觉得有点失落,感觉就像我读得越多,知道得越少。

回答

3

鉴于您将为此使用jQuery(它假设为HTTP传输),您首先要做的是确保此端点的方案是HTTPS。如果不是,那么你会遇到很多麻烦,因为你受到中间人攻击。

这篇博客显示了如何去创建一个自定义的用户名/密码验证:

http://blogs.msdn.com/pedram/archive/2007/10/05/wcf-authentication-custom-username-and-password-validator.aspx

如果您正在使用HTTPS,那么你应该能够设置安全模式,而不是传输消息的而且它应该工作。

这就是说,对于这项服务,如果你不想每次都传递用户和密码,那么你需要在后端使用基于会话的服务,这需要使用一个cookie(但这将在绑定中为您处理)。

3

除了使用HTTPS,我建议看看this article关于使用WCF构建REST服务。有一个关于使用HMAC的部分有一些好的想法。根据您的情况,您可能还需要考虑将auth卸载到另一个提供程序(OpenId实现程序),并只保留侧面无密码的配置文件。

相关问题