IdentityServer4 проблема выхода из обратного канала - PullRequest
0 голосов
/ 03 сентября 2018

Использование IdentityServer4 в ASP.NET Core 2. Два клиента, релевантных для этого варианта использования, используют ASP.NET MVC5.

РЕДАКТИРОВАТЬ: использование куки для аутентификации, неявный поток.

Использование выхода из обратного канала:
* Участвуют 4 приложения - два клиента (назовем их клиентом A и клиентом B), экземпляр IdentityServer и сервер состояний для отслеживания запросов на выход из обратного канала.

  1. Клиент A инициирует выход из системы, делает недействительным cookie-файл для входа.
  2. Клиент. Пользователь перенаправляется в IdentityServer / account / logout с правильным id_token.
  3. IdentityServer делает недействительным cookie-файл для входа и вызывает действия выхода из обратного канала для всех вошедших в систему клиентов.
  4. Действие выхода из обратного канала клиента B подтверждает запрос и уведомляет сервер состояний о запросе на выход.
  5. Когда следующий запрос к клиенту B сделан, этот клиент запрашивает сервер состояний и получает информацию о невыполненном запросе на выход, что приводит к тому, что он отменяет cookie-файл выхода, что приводит к успешному выходу.

Сервер состояний отслеживает два параметра: sub и sid заявки от id_token.

У меня возникла следующая проблема:

Когда пользователи входят в клиент A, затем переходят к клиенту B и затем выполняют выход там, клиент B выходит из системы, а клиент A - до следующего запроса к нему. Таким образом, если пользователи теперь решают войти в клиент B с другой (или той же, неважно) учетной записью и только затем перейти к клиенту A, клиент A инициирует выход, потому что на сервере ожидающий запрос на выход. State Server, несмотря на то, что пользователи тем временем снова вошли в систему.

У кого-нибудь есть идеи, как это предотвратить?

1 Ответ

0 голосов
/ 06 сентября 2018

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

...