2012-03-10 148 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鑰匙串將用戶憑證存儲在設備 上。

我希望這會有所幫助。