Выйти пользователя из нескольких клиентов IdentityServer

У нас есть проект, который использует IdentityServer4

https://github.com/IdentityServer/IdentityServer4

У нас есть 3 домена: auth, admin и www

IdentityServer работает на auth, а два других являются «клиентами».

  • www использует гибридный поток (файлы cookie)
  • admin использует неявный поток (это SPA, использующий oidc-client)

У нас есть единая страница входа, размещенная на auth. Когда пользователь входит в систему, он попадает в www. Некоторым пользователям разрешен доступ к admin, и они будут видеть ссылку в навигации.

После входа в систему, когда вы обращаетесь к администратору, вы можете видеть, что аутентификация происходит автоматически и возвращается к URL-адресу обратного вызова. Все работает нормально.

Однако, если я выйду из admin, я все равно смогу получить доступ к www, и наоборот. В идеале мы хотели бы, чтобы при выходе пользователь одновременно выходил из обоих клиентов.

Это возможно?


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


person Daniel Crisp    schedule 22.07.2016    source источник


Ответы (1)


Да, это возможно.

Документация для idsrv4 еще не завершена, но она работает примерно так

https://identityserver.github.io/Documentation/docsv2/advanced/signout.html

Это реализация спецификации выхода для JS https://openid.net/specs/openid-connect-session-1_0.html

..и для веб-приложений https://openid.net/specs/openid-connect-frontchannel-1_0.html

вам необходимо прочитать эти документы, чтобы понять механизмы

person leastprivilege    schedule 25.07.2016
comment
Спасибо Доминик. Вы знаете, что подход iframe check_session_iframe postMessage поддерживается oidc-client-js? - person Daniel Crisp; 26.07.2016
comment
Я добавил здесь проблему: github.com/IdentityModel/oidc-client- js / issues / 67 - person Daniel Crisp; 26.07.2016
comment
должно ли это работать, даже если я проверяю статус сеанса другого клиента? - person Daniel Crisp; 28.07.2016