【问题标题】:Authentication and REST身份验证和 REST
【发布时间】:2011-11-01 23:54:49
【问题描述】:

我已经实施了一个胜利服务。我想扩展它以通过 REST 启用一些功能。我已经使用 WCF 休息功能实现了它,它可以按我的意愿工作。到目前为止一切顺利。

我的问题是安全和身份验证。据我所知,身份验证没有“一种方式”,我已经阅读了几篇关于它的文章......还有这里和其他论坛,互联网上的博客......我完全迷失了。我已经阅读了关于 SSL、OAUTH、HMAC 等的优缺点。

我需要的功能是以某种方式对用户进行身份验证,用户名/密码对我来说是最好的方式。

这些用户来自互联网浏览器,但稍后我计划在未来拥有更多客户端,例如 Android 或 iPhone 应用程序。

那么,您认为哪种方法最好(也是最简单的...)对用户进行身份验证以进行 REST 协议?

谢谢!

.Net4/WCF/Visual Studio 2010

【问题讨论】:

标签: .net security authentication rest


【解决方案1】:

那么,您认为哪种方法最好(也是最简单的...)对用户进行身份验证以进行 REST 协议?

最简单的RESTful认证方案肯定是HTTP基本认证。当然,它不是很安全,但它可以是第一步。

在服务器端,您只需设置一个 HTTP 反向代理(Apache、Cherokee 或任何其他),就可以使用零代码实现。

在客户端,大部分时间也是零代码(使用 Java、.Net、jQuery.ajax、普通 XMLHttpRequest 等)。

【讨论】:

  • 为什么说它不是很安全?
  • 在 HTTP 上,基本身份验证意味着以明文形式发送登录名和密码...但是,为了防止窃听,您可以将基本身份验证与 HTTPS 混合使用。
【解决方案2】:

根据定义,任何身份验证方式都需要每个用户的状态。即使该状态是密码或 api 密钥的形式。但是我曾经使用过的每个 REST api 都忽略了 REST 的这一部分,因为它们都需要一个 API 密钥。当考虑到安全性时,REST 可能不是最佳选择。浏览器擅长跟踪会话 ID,并且使用会话 ID 比 API 密钥更安全,因为该值过期。使用会话 ID 是一种非常安全且经过验证的设计模式,尽管它“较少 RESTful”。但是,开销要求非常低。

【讨论】:

    【解决方案3】:

    如果您想通过 HTTP 对 HTTP 或 REST 服务进行身份验证,只需遵循 AWS 的操作即可。它有效,它在生产中,有实现示例(客户端和服务器端)。

    http://s3.amazonaws.com/doc/s3-developer-guide/RESTAuthentication.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-15
      • 2010-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-20
      • 2015-04-14
      • 2015-04-15
      相关资源
      最近更新 更多