Я пытаюсь реализовать олицетворение с использованием неявного типа предоставления через Identity Server 4.
Клиент является одностраничным приложением
Для входа я расширяю AuthorizeInteractionResponseGenerator
, чтобы проверить если переданы какие-либо acr_values: &acr_values="impersonate:SOME_USERNAME"
. Аутентификация пользователя, выход из системы текущего пользователя, вход в систему пользователя, которого мы хотим выдать за себя, и перенаправление клиенту.
Для выхода я украшаю IEndSessionRequestValidator
и расширяю его функциональные возможности, чтобы проверить, есть ли продолжающееся олицетворение, выйти из системы, войти в систему, олицетворяющую пользователя, и перенаправить на клиента.
Насколько мне известно, Identity Server 4 с ASP. NET Identity выдает ошибку ie и позволяет только 1 пользователю аутентифицироваться одновременно, что вызывает проблему, если я не инициирую процесс выхода и не переключаю олицетворенного пользователя.
Знаете ли вы, есть ли способ использовать неявный поток, отбросить обработчик ie и использовать подход без сохранения состояния? (Я пробовал использовать схему аутентификации JWT, но она по-прежнему использует приготовление сеанса ie, привязанное к серверу идентификации)