Единый вход / выход не работает на rubycas-сервере

Я включил enable_single_sign_out: true.

У меня есть два приложения, одно в Rails, другое в Django,

Я хочу, чтобы при входе в одно приложение я просто обновлял свое другое приложение и автоматически входил в систему.

Сам, кстати, если бы я выпал из одного приложения и обновил другое приложение, я бы тоже вышел из него.

Как реализовать этот сценарий с rubycas-сервером.

В настоящее время, когда я захожу в одно приложение, захожу во второе и просто нажимаю на кнопку "Войти", он автоматически входит в систему. Но я должен явно выйти из обоих приложений по отдельности.

1 ответ

Я не знаю о клиенте Django (в документации rubycas-server говорится, что в настоящее время не все клиентские приложения поддерживают единый выход), но для того, чтобы клиент Ruby CAS поддерживал единый выход, необходимо сделать следующее (в клиентское приложение):

  1. Хранилище сеансов Rails должно быть установлено в ActiveRecord:config.action_controller.session_store = :active_record_store

  2. Сервер должен иметь возможность чтения и записи в RAILS_ROOT/tmp/ сеансы. Если вы находитесь в кластерной среде, содержимое этого каталога должно быть общим для всех экземпляров сервера.

  3. Защита от подделки межсайтовых запросов должна быть отключена. В вашем application.rb: self.allow_forgery_protection = false, (Вернее, вы можете отключить защиту от подделки только для действий, которые находятся за фильтром CAS.)

Дополнительную информацию можно найти здесь: https://github.com/gunark/rubycas-client

Другие вопросы по тегам