2009-02-27 21 views
7

VBulletinフォーラムには多くのユーザーがいます。今私は、同じユーザーベースのためにレールにいくつかのアプリを書きたいと思う。これまで、VBulletinはすべての認証とセッション管理を担当していました。どのようなことは、私のユーザーの両方onVBulletinのためのSSOを提供するための最良の方法であるとレールのアプリに私はV速報やカスタムメイドのアプリケーションでのシングルサインオンのプロセスに取り組んでいますVbulletinとレールアプリケーション間のシングルサインオン


を書いています。私はクッキーを使ってVbにログインすることができます。私はすべてにアクセスできます。しかし、アクセスが "プライベートメッセージ"を送信するとき。それは

が言う「 あなたはプライベートメッセージをオフにしている。あなたは、あなたのオプションを編集して、それらをオンにするまで、プライベートメッセージを送信しないことがあります。 」

は、「データソース」テーブルに設定されているすべての権限があります?。理想的。

おかげ マスター

答えて

7

あなたの2つのサイトが共通のドメインのサブドメイン(例えばforum.example.comrails.example.com)されている、または同じドメインを共有する(www.example.com。)サイトの一つは次のようになり(共有ドメインの場合はの前にに、example.comの場合は.example.com)、または両方のアプリケーションがアクセスできるように、共有ドメインの場合はwww.example.comのクッキーを設定します。

  • user ID
  • salt(ランダムログイン時に算出された値)、および共有秘密鍵は、秘密の文字列であるトリプレット(user ID + salt + shared secret key)にわたって計算
  • SHA-2 signatureボーによって知られているthサイト。

各サイトは、クッキーに保存されているSHA-2 signatureと一致する必要がありますSHA-2 signatureを計算するshared secret key(二つのアプリケーションによってのみ知られている)を使用し、クッキーからuser IDsaltを取得することができるだろう。

SHA-2 signaturesが一致する場合は、そのユーザーが認証されていると見なすことができます。そうでない場合は、ユーザーに再度ログインを強制します。

ログオフ時にクッキーを破棄する必要があります。

セッションハイジャックから保護するために、小さな印刷

、二つのサイト上で行われたすべての要求は(httpsを使用。)SSLを介して暗号化する必要があり、これが不可能な場合は、クライアントのIPアドレスに基づいてハッシュブラウザタイプとバージョン(User-agent)は、ログイン時に計算され、Cookieに保存されるべきである。各リクエストを処理する前に、クライアントのIPアドレスとユーザーエージェントに対して再チェックする必要があります。ハッシュベースのアプローチは、あいまいさによるセキュリティであり、だまされる可能性があります。さらに、プロキシプールの背後からインターネットにアクセスしたり、TORを使用しているユーザは、別のプロキシまたは出口ノード(別のIPアドレスを持つ)が要求を転送するたびに、システムによって追い出される可能性があります。

関連する問題