Thinktecture IdentityServer3 — единый выход для распределенной системы

Я создаю распределенную систему с несколькими клиентами, которые используют один сервер идентификации для аутентификации. Это обеспечивает единый вход между этими клиентами.

Когда пользователь выходит из одного из клиентов и, таким образом, выходит из сервера идентификации, может ли сервер идентификации вывести пользователя из системы всех других клиентов?

Я видел этот вопрос здесь: Thinktecture Identity Server 3 Single Sign Out

Если ответ отрицательный, должен ли поставщик удостоверений перенаправлять пользователя на URL-адреса выхода каждого клиента, который интегрируется с ним? Или сервер идентификации знает, с какими клиентами пользователь аутентифицировался, и может быть избирательным в перенаправлении?

Изменить:

Или поставщик удостоверений может явно вызывать службу на каждом клиенте, чтобы истечь сеанс этого пользователя?


person MrDeveloper    schedule 04.06.2015    source источник


Ответы (1)


Для реализации единого входа у вас обычно есть страница на STS с тегами img для каждой RP:

<div>
    <img src="http://rp1.com?wa=wsignoutcleanup1.0" />
    <img src="http://rp2.com?wa=wsignoutcleanup1.0" />
</div>

И таймер или кусок JS для перенаправления, когда все изображения загружены. STS может помнить, а может и не помнить, на какой RP пользователь вошел в систему. Запрашивать wsingoutcleanup, когда вы не вошли в систему, не имеет большого значения.

Более подробная информация доступна здесь:

При этом я не знаю, как это обрабатывается в IdentityServer.

person Guillaume    schedule 04.06.2015
comment
Это может показаться небезопасным, поскольку мы просим пользователя (объект, которому мы меньше всего доверяем и над которым не имеем никакого контроля) нести ответственность за выход пользователя из всех служб. Я предполагаю, что именно поэтому при выполнении единого выхода мы иногда видим сообщение «Нам не удалось успешно выйти из системы», чтобы предупредить пользователя об этом факте. - person MrDeveloper; 04.06.2015
comment
img указывает, работал ли выход из системы на RP. Страница выхода из системы может отображать список со значком, указывающим, был ли выход из системы успешным для каждой RP. - person Guillaume; 18.08.2016