【问题标题】:Rails: token authentication from scratchRails:从头开始令牌认证
【发布时间】:2012-03-27 20:37:22
【问题描述】:

我有一个 Rails 应用程序,我想开始启用一些 iOS 集成。在Sorcery 的帮助下,我有一个基本的身份验证系统,主要是从零开始构建的。

我的理解是移动集成基本上有两种选择:HTTP Basic Auth 或 Token Auth。从我目前能够找到的情况来看,令牌身份验证似乎是首选方法。

我不熟悉令牌身份验证是什么或它应该如何工作,除了一些关于如何在设计中使用相关模块的教程外,我还没有真正找到任何合适的指南图书馆。

所以,我的问题是,令牌认证的基本理论是什么,rails 中从头开始的令牌认证系统是什么样的?我知道共享整个系统的代码对于 SO 答案来说可能是多余的,但如果有人能帮助我理解这样一个系统应该如何工作的基本示意图,我将非常感激。我也很乐意接受有关如何从头开始执行此操作的任何现有材料的链接,因为主要问题是我无法找到类似的东西。

谢谢!

【问题讨论】:

    标签: ruby-on-rails authentication token


    【解决方案1】:

    我认为这里有三个困难。

    1. 专注于身份验证技术的书籍很少
    2. 在安全/身份验证字段中使用“令牌身份验证”关键字会造成混淆。
    3. Rails 相关文档往往是“如何做”。

    因此,谷歌搜索不会为此目的显示好的资源。我很了解这个领域,但是很难,尤其是原因2。

    在我的理解中,这里的“token”作为系统中的认证身份,在认证系统和授权系统之间架起了一座桥梁。但是要理解这一点,您必须了解整个系统。

    让我在这里提供一些关于身份验证技术书籍和一些论文的指针。

    1. Butler Lampson 做了很多与身份验证相关的工作,其中一些文章是了解身份验证/授权框架的很好材料。这可能会有所帮助。其中一个例子是Computer security in the real world(2004)
    2. 为公钥基础设施 (PKI) 编写的书可能会有所帮助。有几个这样的。如Understanding PKI: Concepts, Standards, and Deployment Considerations, 2nd edition

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      Devise 和 Authlogic 有一个很好的 Token Authentication 解决方案。您可以使用这些 gem 之一,也可以自己实施检查它们的源代码以获取灵感。

      以下是我对令牌身份验证工作原理的理解:

      1. 用户使用用户名/密码组合通过 发布请求。
      2. 您对用户进行身份验证并生成唯一的令牌并 将其存储在数据库中。
      3. 您将此令牌发送回 iOS 设备。
      4. 设备将此令牌存储在内存中。
      5. 随后对 api 的任何调用都需要将此令牌作为 验证用户的附加参数。
      6. 为了让这个过程安全,这个令牌需要有一个过期时间 日期和 iOS 设备与服务器之间的通信 必须通过 SSL 加密。
      7. 为方便起见,您可以将用户凭据存储在设备上 使用 iOS 钥匙串。

      我希望这会有所帮助。

      【讨论】:

        【解决方案3】:

        ember-auth 有一个很好的教程,用于使用 devise 和 ember 对 Rails 进行令牌身份验证。但是,它也可以应用于巫术或自定义身份验证系统。我认为这是对 ember.js 应用进行身份验证的最佳方法。

        https://github.com/heartsentwined/ember-auth-rails-demo

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-05-31
          • 2013-05-29
          • 1970-01-01
          • 1970-01-01
          • 2014-05-27
          • 1970-01-01
          相关资源
          最近更新 更多