2011-12-14 11 views
6
私は全体のドメインシングルサインオンを使用するマルチサイトのアプリケーションを開発する必要があり

は(Gmailなど複数のGoogleサービス、ドキュメント、Google +とGoogleアカウントのようなもの):複数のドメイン間でシングルサインインを使用するマルチサイトアプリケーションですか?

multi applications, multi domains, single sign on

  • がchildenサイトのユーザーを使用するには、署名する必要があります親サイトのアップ。
  • 各サイトには、ユーザーのログイン、ポイント、 請求書以外の独自のロジックがあります。
  • 子アプリケーションからは、グローバルユーザー アカウントにサインインし、ユーザーポイントを使い、一部のサービスの請求書を生成できる必要があります。
  • ポイントを管理する請求書とパネルの登録フォームは、親サイト/アプリケーションからのみ が利用可能です。

これをRails 3.1に実装する最良の方法は何ですか?スケーラビリティ、パフォーマンス、およびセキュリティは重要です。

  • シングルまたは複数のレールアプリケーション?
  • 単一または複数のデータベース?
  • メインアプリケーションまたは個別のアプリケーション/エンジンとしてのグローバルサービス?
  • シングルサインインの実装方法は? DB内の単一のセッションIDまたはfacebook oauthのようなもの?
  • 子サイトからのリクエストの結果、支出ポイントを実装して請求書を生成する方法は?
+0

あなたはどのようなアプローチを取るのですか? – Karolis

+0

@ david-sulcから、カスタムデータを受け取る '@ token.get( '/ customaction')'と答えました。 – rogal111

答えて

5

OmniAuthを複数の(独立した)Railsアプリケーションで実装することができます。これらは、対象としています:件名に

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

+0

ありがとう、今親サイトへのリクエストを実装する方法。 "ユーザーポイントを使う"方法。 Oauth2は '@ token.get( '/ customaction')'を持っています、それは適切ですか? – rogal111

-1

したがって、モデルUserをメインアプリケーションに作成して移行するとします。次に、このDatbaseに他のアプリケーションからアクセスする必要があります。それは問題ありません。まず、このような子アプリケーションのconfig/database.ymlするには、メインアプリケーションのデータベース接続の定義を追加する必要があります。

parent_connection: 
    adapter: your_adapter_here 
    host: your_host_here 
    username: username 
    password: password 
    database: main_application_production 

次にあなたがscaffolderたりかなってユーザーと呼ばれるモデルが、ないを作成します。このような。

class User < ActiveRecord::Base 
    establish_connection :parent_connection # This uses the specified connection 
end 

デフォルトでは、環境の名前と一致する接続が選択されています。バリエーションを指定するだけです。これでメインアプリケーションのようにUserクラスにアクセスできます。

+0

私はモデルから選択されたDBへの接続を確立する方法を知っていますが、これは全体の問題のほんの一部です。スケーラビリティ、パフォーマンス、セキュリティの問題をどのように解決するか、ソリューション/ソフトデザインパターン/戦略/モデルが必要です。 – rogal111

+0

-1、データベースの行に2つのアプリを結合するデザインが悪いWebサービスを使用してください –

関連する問題