2012-03-10 124 views
10

我有一个Rails应用程序,我想开始启用一些iOS集成。我有一个基本的身份验证系统,主要是从零开始,从Sorcery得到一些帮助。Rails:从零开始的令牌认证

我的理解是有两种基本选择移动融合:HTTP基本认证或令牌验证。从我迄今为止能够找到的东西看来,令牌认证是首选的方法。

我不熟悉什么令牌认证或它应该如何工作,我还没有真正能够找到任何体面的指南,除了一些关于如何使用相关模块的教程设计图书馆。

所以,我的问题是,什么是令牌认证的基本理论,并会在导轨距离刮令牌身份验证系统是什么样子?我知道为整个系统共享代码可能会让你的答案过度,但如果有人能帮助我理解这样的系统应该如何工作的基本原理图,我将非常感激。我也乐意接受任何现有材料的链接,关于如何从头开始做这件事,因为主要问题是我没有找到类似的东西。

谢谢!

回答

3

我认为这里有三个难点。

  1. 也有极少数的书籍集中在认证技术
  2. 关键字“令牌认证”是混淆在安全/认证领域使用。
  3. Rails相关文档往往是“如何”。

所以,谷歌搜索将不会为这个目的显示良好的资源。我知道这个领域的很好,但是很难,特别是由于原因2

在我的理解,“令牌”这里在系统中认证的身份工作,并提供认证系统和认证系统之间的桥梁。但要了解这一点,你必须了解整个系统。

让我提供一些指针关于认证技术书籍和一些文件在这里。

  1. 巴特勒兰普森做了许多与工作有关的认证,并且一些文章是理解认证/授权框架的非常好的材料。这可能会有所帮助。其中一个例子是Computer security in the real world(2004)
  2. 为公钥基础设施(PKI)编写的书可能会有帮助。有几个这样的。如Understanding PKI: Concepts, Standards, and Deployment Considerations, 2nd edition

希望这有助于。

10

设计和Authlogic有一个很好的令牌认证解决方案。您可以使用这些宝石之一或实现自己的检查他们的源代码的灵感。

下面是我的身份验证令牌如何理解工作:

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

我希望这会有所帮助。