Использование IdentityServer4 в ASP.NET Core 2.
Два клиента, релевантных для этого варианта использования, используют ASP.NET MVC5.
РЕДАКТИРОВАТЬ: использование куки для аутентификации, неявный поток.
Использование выхода из обратного канала:
* Участвуют 4 приложения - два клиента (назовем их клиентом A и клиентом B), экземпляр IdentityServer и сервер состояний для отслеживания запросов на выход из обратного канала.
- Клиент A инициирует выход из системы, делает недействительным cookie-файл для входа.
- Клиент. Пользователь перенаправляется в IdentityServer / account / logout с правильным id_token.
- IdentityServer делает недействительным cookie-файл для входа и вызывает действия выхода из обратного канала для всех вошедших в систему клиентов.
- Действие выхода из обратного канала клиента B подтверждает запрос и уведомляет сервер состояний о запросе на выход.
- Когда следующий запрос к клиенту B сделан, этот клиент запрашивает сервер состояний и получает информацию о невыполненном запросе на выход, что приводит к тому, что он отменяет cookie-файл выхода, что приводит к успешному выходу.
Сервер состояний отслеживает два параметра: sub
и sid
заявки от id_token.
У меня возникла следующая проблема:
Когда пользователи входят в клиент A, затем переходят к клиенту B и затем выполняют выход там, клиент B выходит из системы, а клиент A - до следующего запроса к нему. Таким образом, если пользователи теперь решают войти в клиент B с другой (или той же, неважно) учетной записью и только затем перейти к клиенту A, клиент A инициирует выход, потому что на сервере ожидающий запрос на выход. State Server, несмотря на то, что пользователи тем временем снова вошли в систему.
У кого-нибудь есть идеи, как это предотвратить?