在n层Web解决方案中进行身份验证(Web + REST服务)

时间:2011-12-02 14:00:26

标签: .net wcf authentication rest .net-4.0

背景

我有一组WCF REST服务和一个ASP.NET客户端应用程序。

关于业务,数据,流程和验证的一切都发生在服务的基础架构中。

ASP.NET客户端应用程序是这些WCF REST服务的使用者。

在不久的将来,这些WCF REST服务将被移动应用程序(Android,iOS和Windows Phone)使用。

问题

实施身份验证的最佳方式。

可能的方法

  • 令牌身份验证。首次成功登录会生成一个身份验证令牌,该令牌通过线路传输回客户端。下一个请求将发送存储在cookie中的身份验证令牌,因为服务层维护一个身份验证令牌存储。代币将在任意时间到期。

  • 会话状态身份验证商店。首次成功登录会将某个会话状态存储中的会话标记为已通过身份验证的会话。由于Web客户端将其会话标识符存储在cookie中,因此如果给定标识符的会话已经过身份验证,则下一个请求将传输它并进行服务层检查。会话将在任意时间到期。

问题

在我的情况下,我会选择第一个选项:令牌身份验证

无论如何,我担心安全问题,因为如果有人窃取了令牌或会话标识符,这可能会取代所有者的身份。

摘要:您的选择是什么?。我很感激你谈到安全问题。

请注意,如果你有另一种方法,你可以谈论它,我愿意接受其他可能的解决方案

谢谢。

1 个答案:

答案 0 :(得分:1)

我对此的看法是,REST意味着使用网络标准,而网络上“安全”传输的标准是SSL。其他任何东西都会有点时髦,需要为客户提供额外的部署工作,这些工作必须有可用的加密库。 SSL证书用于身份验证。他们帮助检测中间人攻击,例如可能使用DNS缓存中毒。

您可能还对以下有关RESTFul authentication的主题感兴趣。