Проблема с одним выходом - PullRequest
       15

Проблема с одним выходом

0 голосов
/ 04 апреля 2019

Я интегрировал Keycloak с моим приложением Spring Boot.У меня проблема с выходом из системы.Прямо сейчас я использую

POST http://localhost:8080/auth/realms//protocol/openid-connect/logout

Авторизация: Тип содержимого на предъявителя: application / x-www-form-urlencoded

Проблема в том, что этот API выхода из системы позволяет выходить из одного устройства.Давайте рассмотрим, если я войду с более чем одного устройства и выйду из одного, то все равно приложение моего другого устройства будет авторизовано. Есть ли какой-нибудь способ сделать мое приложение одиночным выходом из системы, поэтому, если я выхожу из системы с одного устройства Моя учетная запись выходит из системы со всех устройств.

1 Ответ

0 голосов
/ 09 апреля 2019

Глядя на ваш вопрос (пока без примеров кода), я предполагаю, что вы «разрешаете» разрешать множественный вход с разных устройств. И, возможно, вы ищете более этический ответ . В таком случае ваше решение должно основываться на состоянии токена.

Вообще говоря, вы не можете волшебным образом выйти со всех устройств одновременно на основе уровня KeyCloack. Например, если вы входите в gmail с разных устройств, при выходе из системы вы не выйдете из всех устройств, если у вас нет явного контроля над приложением, указывающего logout from all devices.

Вам потребуется проверка состояния токена в вашем приложении, которая определит, есть ли у вас действительное состояние токена (возможно, дополнительный атрибут SAML в вашем ответе SAML). Вы можете различать ваши запросы POSt как logout и logoutAll.

Но у вас все равно останется устаревшее состояние приложения на других устройствах, поскольку у вас есть сторонний поставщик удостоверений - KeyCloack. пока вы не выполните какое-либо действие, которое попытается проверить ваш токен и завершится ошибкой, вы выйдете из системы на основании запроса logoutAll.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...