C# GRP C аутентификация, нужен совет - PullRequest
0 голосов
/ 08 февраля 2020

net приложение core 3.0 и сервер net core 3.1, оба они общаются через GRP C, аутентификация выполняется через запрос, то есть при первом входе в систему пользователь получает сгенерированный идентификатор сеанса и получает 1 минуту, что означает, что если другой пользователь пытается ввести учетные данные первого пользователя. Сервер возвращает того пользователя, который уже вошел в систему, если первый пользователь отключается или теряет соединение с сервером после истечения времени идентификатора сеанса, второй пользователь может войти в систему. Также пользователь может принудительно отключить другого пользователя с помощью управления своим профилем, изменение идентификатора сеанса (сервер устанавливает пустой идентификатор сеанса).

Проблема: каждый раз, когда пользователь отправляет запрос на сервер, сервер должен делать запрос к БД, чтобы проверить, является ли идентификатор сеанса действительным и не истек, что довольно дорого, в среднем время отклика составляет ~ 120 мс

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

Должен ли я придерживаться JWT или попытаться, например, IdentityManager, если мне следует придерживаться JWT, должен ли пользователь иметь доступ к refre sh токену (то есть он сохранен в пользовательского приложения), я нашел много примеров того, как настроить серверный токен refre sh, но нет информации о клиентской стороне ИЛИ GRP C имеет какую-то аутентификацию?.

Если некоторые вопросы выглядят достаточно глупыми, извините Я никогда раньше не работал с JWT.

Спасибо.

...