2011-12-29 9 views
1

これは一種の疑問な質問かもしれませんが、Googleをチェックしてヒットしませんでした。私たちは、複数のRailsアプリケーションを均等に見せるようにホストしたいと考えています。私たちはすべてのアプリが同じルック・アンド・フィールを持ち、すべてのアプリが同じサインオン・データベースを使用するようにします。WebサービスによるRails認証

私は、サイトのテーマを宝石に入れて、各アプリのgithubリポジトリからその宝石を要求するだけで達成できると思います。しかし、認証は扱いにくいです。

サイトのさまざまな部分(店舗、チャットフォーラムなど)ごとに異なるアプリを作成しないで「無料」でこれを達成できることはわかっています。もし彼らがRails Enginesのようなものであれば、基本的には同じ名前のルートを使って同じアプリケーションにドロップすることができ、認証を行う単一のプラグインがあります。

ただし、技術的に可能であれば、さまざまな理由から、これらの別々のアプリを保ちたいと考えています。 1つ目の理由はスケーラビリティです。これはホストされたサイトなので、チャットフォーラムをスピンアップする必要なく、店舗のインスタンスを(おそらく、ホリデーセールラッシュを処理するために)スピンアップする柔軟性が必要です。また、絡み合わないコードの部分を完全に分離できるようにしたいと考えています。

理想的には、データベースは分離されています(「キッチンシンクを含むすべてをdbに入れてください」ということは避けてください)が、クロスアプリを実行する「安い」方法authは同じプラグイン(Deviseなど)を使用するだけで、同じDBをポイントするだけです。

これを行う方法は、Webサービスコールを介して認証することです。これは先行技術です - これは誰でも "すべてのアプリケーションで認証を共有できるようにする"という宝石を持っていますか?あるいは、私はこのように物を作ることによって痛みの世界に入っていますか?

ありがとうございます!

答えて

0

あなたはで説明したアプローチシングルサインオンを行うことができます:

http://blog.joshsoftware.com/2010/12/16/multiple-applications-with-devise-omniauth-and-single-sign-on/

のOAuthと工夫とアプローチシングルサインオンは、いくつかの欠点を有しています。私が持っていた主な問題は、複数のアプリケーション間でタイムアウト時間を延ばすことができなかったことです。

+0

ありがとう、私はこれを調べました。それは良いアイデアのように見えるが、コードはまだ生のままである。確かに、セキュリティと同じくらい重要なことについて、「プッシュボタンアンドゴー」状態ではありません。複数のアプリが本当に正しい方法であるかどうかを判断するために、アプリのアーキテクチャを再考しています。 –

関連する問題