Использование JWT для реализации аутентификации на веб-API Asp.net
Я читал о JWT.
Но из того, что я прочитал, это не механизм аутентификации, а скорее важный компонент в механизме аутентификации.
В настоящее время я реализовал решение, которое работает, но я просто попробовал JWT и посмотрел, как оно работает. Но то, что я после того, как сейчас, как это следует использовать. Из моего опыта это в основном просто механизм шифрования, который дает вам уникальный зашифрованный ключ. Вы также можете поместить информацию в этот токен.
Я хочу реализовать его в терминах веб-интерфейса ASP.NET 2, который будет использоваться мобильным приложением.
Итак, шаг 1:
app => Сервер: Логин (пользователь, пароль)Сервер => приложение: Войти в систему, вот ваш JWTapp => server: получить мой профиль (отправляет JWT с запросом). Затем сервер расшифровывает JWT и определяет идентификацию запросов.Теперь это только мое понимание этого, Послушай, я могу быть на совершенно неверном пути.
Является ли Идеал JWT таким образом, что вам не нужно проходить аутентификацию при каждом запросе? Я просто аутентифицирую учетные данные пользователей один раз (при первоначальном входе в систему) и там после того, как сервер может просто использовать JWT, и нет необходимости искать пользователей pw и user в БД?
Я просто хочу использовать JWT для идентификации, кто пользователь. Затем я разрешаю после того, как я их аутентифицировал. Насколько я знаю, есть большая путаница с новым MVC и аутентификацией и авторизацией.
Так к чему сводится мой вопрос.
Как я могу безопасно и эффективно внедрить механизм аутентификации с использованием JWT? Я не хочу просто кашлять что-то, что, кажется, работает и не имеет никакого представления о последствиях для безопасности. Я уверен, что существует источник, который, возможно, разработал безопасный механизм, который бы соответствовал моим требованиям.
Мои требования:
Нужно только проверять базу данных для учетных данных пользователей один раз за сеанс? Из-за использования bcrypt используется много ресурсов для сравнения паролей.Должен быть в состоянии идентифицировать пользователя по их запросу. (Т.е. кто они, userId будет достаточно) и желательно без доступа к БД.Должно быть как можно меньше накладных расходов в отношении ресурсов на стороне сервера, обрабатывающих запрос.Если злоумышленник должен был скопировать предыдущий запрос устройства, он не должен иметь доступ к данным реальных пользователей. (Очевидно)Спасибо