【问题标题】:Implementing REST based authentication实现基于 REST 的身份验证
【发布时间】:2014-04-12 18:03:16
【问题描述】:

我正在开发一个 REST 系统,并且即将开始开发一种用户进行身份验证以使用该服务的方式。在研究了哈希方法之后,我阅读了WikiPedia - Basic Authentication

但是我对实施有一些疑问。如果我理解正确,用户名和密码将被编码为 base 64 并发送到服务器。这就是我的困惑所在。

一旦服务器收到这样的请求,我假设我必须决定 base64 并根据哈希值检查它。但是,一旦完成,我不明白必须做些什么来验证用户未来的请求。

我必须检查每次通信发送的这个 base64 吗?我不想将 base64 保存在服务器上,以防止每次都必须检查密码,因为这会破坏仅使用散列密码的目的。此外,我的服务仅是 SSL,因此将用户名和密码作为参数在 REST 请求中作为身份验证手段而不是在 http 标头中传递有什么缺点吗?

【问题讨论】:

  • 这适用于 Java、.Net、Python、PHP、Perl 吗???
  • REST 没有必需/已定义 安全协议。 google、amazon 等实现身份验证的方式不同,您可以通过多种方式进行。 REST 独立于身份验证。

标签: java rest restful-authentication


【解决方案1】:

基本身份验证只是从客户端通过 HTTP 将用户名和密码发送到服务器的标准方式。它没有定义是否使用底层 SSL,或者这是否是几个调用中的第一个。

我想说的是:你可以决定。

但是,REST 是无状态的,因此您应该在每次连接到服务器时发送它,而不是创建某种会话。

基本身份验证相对于 REST 参数的优势在于,前者几乎是每个 Web 框架(例如 Java EE、Spring Security)的一部分。而后者会将额外的参数添加到您的所有请求中,并且需要您每次自己检查。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    • 2012-07-15
    相关资源
    最近更新 更多