example.com の異なるサブドメインでホストされている複数の Rails (v3.2) アプリにシングル サインオン ソリューションを実装しようとしています。
1 つのアプリは ID プロバイダーとして機能し、認証に devise を使用し、users.example.com に配置されます。他のアプリは認証に ID プロバイダーに依存し、[app1.example.com, app2.example のドメインで devise+omniauth を使用します。 .com、および example.com]。このブログエントリは、私の実装の多くに影響を与えました: http://blog.joshsoftware.com/2010/12/16/multiple-applications-with-devise-omniauth-and-single-sign-on/
正常に動作していますが、セッションが共有されていないという問題が残っているため、ID プロバイダーにログインした後も、認証のために他の各アプリから呼び出しを行う必要があります。ユーザー。
secret_token.rb で同じシークレット トークン、session_store.rb と :domain => :all で同じセッション キーを使用してみました (値として「.example.com」と「example.com」も試しました)。まだ運がありません。
上記を実行すると、ID プロバイダーにログインした後、セッション変数「warden.user.user.key」が設定されていることを session.inspect で確認できます。すぐに app1.example.com のアプリに移動すると、session.inspect には同じ session_id と _csrf_token が表示されますが、「warden.user.user.key」変数が欠落しています。
何かばかげたことを見逃しているような気がします..何か考えはありますか?