Аутентификация на основе токенов и хэш-пароли
В моем asp.net пароли пользователей веб-сервиса хранятся в виде хэш-значений с использованием
BCrypt.Net.BCrypt.HashPassword (password, BCrypt.Net.BCrypt.GenerateSalt ());
И моя веб-служба также должны реализовать аутентификацию на основе маркеров. Я новичок в этом, и, как я понимаю из чтения в маркере аутентификации, пароль также приходит в виде хэшированной строки. Поэтому я понятия не имею, как проверить маркер аутентификации, поскольку я не знаю исходного пароля ни с одной стороны. Действительно ли нужно хэшировать пароль в маркере аутентификации? или я могу добавить пароль для маркера проверки подлинности в кодировке base-64 строки? это безопасно?
1 ответ:
Токен обычно представляет собой случайное число / строку, которая не связана с какой-либо другой информацией, такой как пароль.
Можно реализовать службу аутентификации, которой требуется пароль один раз и которая может вернуть маркер, если пароль был правильным. Позже клиент может отправить маркер вместо пароля, чтобы аутентифицировать пользователя. Приложение может спросить службу, является ли этот токен действительным.
Преимущества:
- приложение может делегировать проверку подлинности обслуживание.
- нет необходимости предоставлять имя пользователя и пароль для следующих запросов.
Различные приложения могут совместно использовать токен, не зная имени пользователя и пароля.- служба может обрабатывать даты истечения срока действия.
- токены намного сильнее коротких паролей пользователей и поэтому могут быть обработаны проще. Пример: хэши токенов могут быть быстрыми и могут храниться без соления, поэтому их можно искать.