2013-04-05 2 views
3

У меня есть продукт, который аутентифицируется с использованием Shibboleth.Глобальный выход с использованием в Shibboleth путем удаления IDP cookie

Когда пользователь инициирует выход из системы на веб-сайте

  1. Веб-сервер отправляет запрос выхода из системы на Shibboleth SP.
  2. SP удаляет сообщение cookie при получении запроса.
  3. Однако, если пользователь возвращается на сайт страницу Логин не будет предложено

Для конфигурации, показанной ниже, я использую Шибболет Service Provider данный здесь https://www.testshib.org/install.html#SP. Он настроен на использование testshib.org детали из поставщику удостоверений, которые могут быть считаны here

Shibboleth Signout

Я считаю, что IdP не удаляя его куки сессии и повторно войти в систему пользователя на шаге 3.

Больше на IDP печенье:

Это wiki-source состояния IdP использует два печенья _idp_authn_lc_key, который удаляется после аутентификации. а второй является куки сессии «_idp_session», для которой он утверждает, что:

Как только пользователь был идентифицирован у них будет долгоживущей сеанс с МВУ, который отслеживается с помощью печенья по имени _idp_session. Этот файл содержит только информацию, необходимую для идентификации сеанса IdP пользователя . Этот файл cookie создается как «session» cookie и будет удален, когда браузер захочет удалить такие файлы cookie (часто, когда браузер не работает).

Мой вопрос

  • Какие изменения мне нужно сделать на SP просить IdP удалить то же самое и эффективно создать GLOBAL LOGOUT?
+0

Посмотрите этот протокол HTTPS: //wiki.shibboleth.net/confluence/display/SHIB2/IdPEnableSLO # IdPEnableSLO-FullSAMLLogout – Michael

+0

Я достиг того, чего вы хотите здесь, направляя мой URL-адрес выхода IdP. Ваш IdP _should_ предоставит вам это. Я не уверен, есть ли у TestShib один, или у него есть документация. Изменить: похоже, что TestShib не предоставляет никакой поддержки для этого. – dperjar

ответ

2

Для чего вам будет очень сложно заставить IdP отключить пользователя. Подход cookie представляет собой деталь реализации, и не все IdP используют его, и это может измениться. Некоторые IdP могут предлагать URL выхода, но, честно говоря, это потенциально что-то плохое для пользователей (можете ли вы представить, можете ли вы найти способ постоянно деавторизовать пользователя не только с вашего сайта, но и с их сеансами с любыми другими SP?). Вы действительно можете контролировать свои собственные сеансы у поставщика услуг.

Почему бы не принудительно повторить аутентификацию, когда ваш пользователь вернется/возвращается к вашим SP? Если они недавно не были аутентифицированы в IdP после посещения (это поле, которое вы возвращаете из обмена SAML), просто отправьте их обратно в IdP и передайте флаг принудительной перезагрузки.

Если вы используете программное обеспечение Шибболет, он даже построен в: https://wiki.cac.washington.edu/display/infra/Configure+a+Service+Provider+to+Force+Re-Authentication

+0

У меня тоже есть эта проблема, и на самом деле IdP, к которому я подключаюсь, требует от нас использовать «ForceAuthn» на Shibboleth, однако функция работает неправильно. Это приводит к повторной аутентификации, но не тот пользователь зарегистрирован. Пример: пользователь A входит в систему, выходит из системы SP, возвращается в SP, пользователь B вводит учетные данные, но сеанс начинается с идентификатора пользователя A. Есть ли у вас какие-либо предположения? –

Смежные вопросы