1

enable_single_sign_out: true を有効にしました。

Railsに1つ、Djangoに1つ、2つのアプリケーションがあります。

あるアプリケーションにログインしたときに、他のアプリケーションを更新するだけで、自動的にサインインできるようにしたいと考えています。

同じように、あるアプリケーションからサインアウトし、他のアプリケーションを更新すると、そこからもサインアウトします。

このシナリオを ruby​​cas-server で実装する方法。

現在、1 つのアプリケーションにログインして 2 番目のアプリケーションに移動し、ログインをクリックするだけで、自動的にログインします。ただし、両方のアプリケーションを個別に明示的にログアウトする必要があります。

4

1 に答える 1

2

Django クライアントについてはわかりません (rubycas-server のドキュメントによると、現在、すべてのクライアント アプリケーションがシングル サインアウトをサポートしているわけではありません)。Ruby CAS クライアントでシングル サインアウトをサポートするには、次の手順を実行する必要があります (クライアント アプリ):

  1. Rails セッション ストアは ActiveRecord に設定する必要があります。 config.action_controller.session_store = :active_record_store

  2. サーバーは RAILS_ROOT/tmp/sessions を読み書きできる必要があります。クラスタ環境にいる場合、このディレクトリの内容はすべてのサーバー インスタンス間で共有する必要があります。

  3. クロスサイト リクエスト フォージェリ保護を無効にする必要があります。あなたの application.rb で: self.allow_forgery_protection = false. (または、CAS フィルターの背後にあるアクションに対してのみ偽造防止を無効にすることもできます。)

詳細については、https ://github.com/gunark/rubycas-client#readme を参照してください。

于 2011-08-08T23:48:24.367 に答える