2012-03-10 11 views
10

私はiOSとの統合を有効にしたいレールアプリがあります。私はSorceryから少しの助けを借りて、ほとんどゼロから構築された基本認証システムを持っています。Rails:ゼロからのトークン認証

モバイルインテグレーションには基本的に2つのオプションがあります:HTTP基本認証またはトークン認証。これまで私が見つけたことから、トークン認証が望ましい方法です。

私はトークン認証がどのように機能するのか、それがどのように動作するのかよく知らないし、実際に適切なガイドを見つけることができませんでした。 Deviseライブラリ。

私の質問は、トークン認証の基本的な理論は何ですか、そして、レールのスクラッチトークン認証システムはどのように見えますか?私は、システム全体のコードを共有することは、SOの答えが過度である可能性があることを理解していますが、そのようなシステムがどのように動作するかの基本的な図を理解できる人があれば、私はまた、何かを見つけることができていないという主な問題があるので、最初からこれをやる方法について、既存の良い資料へのリンクを喜んで受け入れます。

ありがとうございます!

答えて

3

私はここに3つの困難があると思います。

  1. は、認証技術
  2. キーワードに焦点を当てた非常に数冊の本があり、「トークン認証」セキュリティ/認証分野での使用に混乱しています。
  3. Rails関連のドキュメントは、「方法」となる傾向があります。

ので、グーグルでは、この目的のために良いリソースを明らかにしません。私はよく、このフィールドを知っているが、それは特に原因私の理解で

理由2に、難しい、「トークン」を、ここで、システム内の認証されたアイデンティティとして働き、および認証システムと認証システム間のブリッジを提供しています。しかし、これを理解するには、全体的なシステムを理解する必要があります。

は私が認証技術の書籍や、ここでいくつかの論文に関連して、いくつかのポインタを提供してみましょう。

  1. バトラーランプソンは、多くの仕事に関連する認証を行いました。記事のいくつかは、認証/承認フレームワークを理解するのに非常に良い資料です。それは役に立つかもしれません。例の1つはComputer security in the real world(2004)です。
  2. 公開鍵インフラストラクチャ(PKI)用に書かれた書籍が役立つかもしれません。そのようなものがいくつかあります。などUnderstanding PKI: Concepts, Standards, and Deployment Considerations, 2nd edition

これは役立ちます。

10

工夫とAuthlogicは素敵なトークン認証ソリューションを持っています。これらの宝石のいずれかを使用するか、インスピレーションのためにソースコードを独自にチェックして実装することができます。以下は

認証がどのように動作するかのトークンの私の理解です:

  1. ポスト要求を通じて、ユーザー名/パスワードの組み合わせを使用して、ユーザーがサインイン。
  2. ユーザーを認証して一意のトークンを生成し、 をdbに格納します。
  3. このトークンをiOSデバイスに送り返します。
  4. デバイスは、このトークンをメモリに保存します。
  5. 以降のAPI呼び出しでは、このトークンを 追加パラメータとして渡して、ユーザーを認証する必要があります。
  6. このプロセスを保護するには、このトークンの有効期限は で、iOSデバイスとサーバー 間の通信はSSLを使用して暗号化する必要があります。
  7. 便宜上、iOSのキーチェーンを使用して デバイスにユーザーの資格情報を保存することができます。

私はこれが役立つことを願っています。

2

ember-authには、deviseとemberの付いたレールのトークン認証に関する素晴らしいチュートリアルがあります。しかし、それは魔術師やカスタム認証システムにも適用できます。私はこれがember.jsアプリケーションの認証に最適なアプローチだと思います。

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