WCF / ASP.NET身份验证

时间:2011-01-27 04:32:56

标签: asp.net wcf wcf-security

我的场景是一个3层应用程序,其中数据层是SQL Server数据库,中间层是Windows服务中托管的WCF应用程序,最后演示文稿是Asp.Net MVC应用程序。

像往常一样,中间层是执行所有业务逻辑的层。访问数据库,定义业务规则等等。

好的,到目前为止一切顺利!但现在这里的问题是:在这种情况下你如何处理安全问题?我的意思是,用户必须登录ASP.NET应用程序,但我不仅要在ASP中进行身份验证,还要在WCF中间层进行身份验证,因为WCF服务应该被更多应用程序访问。

我希望用户登录Asp.Net应用程序并让WCF知道凭据。在WCF中是否存在某种会话以指定登录用户?

在这种情况下,专业人员如何处理安全问题?我知道您可以通过邮件安全保护WCF服务,但Asp.Net和WCF如何在单个登录用户上同步?我希望根据用户的授权方式保护WCF操作。

2 个答案:

答案 0 :(得分:2)

我建议您考虑使用像HMAC(哈希消息身份验证代码)这样​​的方法来保护您的安全性或类似的基于令牌的方法。我们的想法是将您的请求签名到您的WCF层,该层可用于验证请求并识别发出请求的用户。

基本元素将是一个令牌和用于签署每个请求的某种共享秘密。令牌将允许您识别WCF端的用户,并查找共享密钥以验证请求。您还可以添加时间戳/随机数以防止重放攻击等。

我已经将这种方法用于构建在WCF上的一些REST服务 - 还有一个额外的好处,即客户端不需要存储用户名和密码,只需要用于通信的安全令牌。在您的情况下,您需要理清如何在ASP.NET层和WCF层之间交换令牌,但它将为您的WCF服务的任何使用者提供统一的身份验证方法。

答案 1 :(得分:0)