2012-01-26 6 views
0

Я создаю систему SingleSignOn, и у меня есть один большой вопрос.удалить cookie из другого домена

Позволяет сказать, что у меня есть 3 домена - domain1, domain2 и DOMAIN3

Я вошел во всех этих областях.

Я хочу, чтобы выйти в DOMAIN3, а затем автоматически регистрируются в domain1 и домен2.

Можно ли удалить некоторые печенья в domain1 и domain2, когда я нахожусь в DOMAIN3?

Решение заключается в перенаправлении из одного домена в другой, но это уродливое решение, и я хотел бы сделать это четко.

Возможно, у вас есть идеи о том, как решить эту проблему?

+0

Что вы используете для управления куки? –

ответ

0

Нет, вы не можете удалить cookie.
Подход к единому выходу: система SingleSignOn должна помнить зарегистрированных пользователей и приложений, в которых пользователь регистрируется, когда пользователь выходит из системы (или истекает срок действия билета/сеанса). Система SingleSignOn должна вызывать URL выхода из всех приложений, где пользователь был зарегистрирован. Этот подход реализован в Central Authentication Service.

0

Это однократная или одиночная проблема выхода из системы. Как правило, вы не можете удалять файлы cookie из доменов, отличных от тех, которые посещают пользователь (в противном случае вы могли бы манипулировать файлами Facebook, например). Тем не менее, я предполагаю, что у вас есть некоторый контроль над этими доменами, поэтому у вас есть несколько вариантов:

стороны клиента Параметры

Если домены поддомены одного и тот же корневой домен, например,

  • billing.example.com
  • crm.example.com
  • reports.example.com

Вы могли бы масштабы куки, чтобы быть присоединен к домену .example.com.

Если это невозможно (поскольку они являются доменами клиентов), но у вас есть список из них, вы можете запустить процесс выхода из системы по одному из приложений (либо выходить из системы, либо выйти из системы ajax и т. Д. В зависимости от что вы можете разместить на других доменах). Это не безопасное решение, но лучше, чем отсутствие выхода из системы.

сторона сервера Опция

способов сделать это на сторону сервера заключается в следующем:

Имеет выход из системы на одном из доменов аннулируют это печенье, а затем либо перенаправить или перезвоните к центральному единому входу сервер, чтобы он знал, что пользователь вышел из системы.Затем либо иметь один знак на сервере, чтобы вызвать вызов ко всем доменам, в которые пользователь вошел, и попросить их зарегистрировать этот пользователь или регулярно опросить домены на одном знаке на сервере, чтобы проверить был ли истек один знак в сеансах.

См одно из следующих действий для получения дополнительной информации: