12 лет в IT, последние 10 лет занимаюсь развитием digital продакшена для ecom.
Пишу в телеграмм | vc | habr. Для связи tg или fb

Как сделать авторизацию на сайте: Новая надежда

Банальная задача, изженная вдоль и поперек где только можно — это авторизация на сайта. Тренд постоянно меняющийся и придумывают все новые и новые способы.

Все чаще я стал замечать лаконичный, я бы даже сказал гениальный способ — это одноразовые пароли через email. Максимально удобно, относительно безопасно.

Терминологический экскурс: Аутентификация и авторизация

Начнем с терминологии. Есть два термина, которые часто подменяют друг друга: аутентификация и авторизация.

Аутентификация — это процесс проверки личности пользователя, который подтверждает, что он действительно тот, за кого себя выдает. Для этого используются различные методы: логин и пароль, одноразовые коды, биометрические данные или физические устройства. Цель аутентификации — убедиться, что доступ получает именно тот, кто имеет на это право.

Авторизация — это процесс определения прав и уровня доступа пользователя к ресурсам системы после успешной аутентификации. Она отвечает на вопрос «что пользователь может делать?» и позволяет управлять доступом к данным, функциям или файлам в зависимости от роли, настроек или других условий.

Разница проста: аутентификация проверяет, кто вы, а авторизация определяет, что вам разрешено делать. Например, ввод логина и пароля подтверждает вашу личность (аутентификация), а доступ к определенным разделам сайта зависит от ваших прав (авторизация).

Процесс входа на сайт обычно включает два этапа — аутентификацию и авторизацию, поэтому его правильно называть аутентификацией с авторизацией или просто процессом входа (login process)

Понимание терминов «аутентификация» и «авторизация» критично для разработки современных информационных систем. Эти процессы напрямую влияют на безопасность и удобство использования сервисов.

Технологии входа постоянно развиваются, отвечая на растущие потребности пользователей в быстром и защищенном доступе к информационным ресурсам. Каждый новый метод — это попытка сделать процесс входа максимально простым, но при этом максимально защищенным.

Эволюция входа: Исторический экскурс

В начале развития web было классическое сочетание логин и пароль — до сих пор прекрасно используется на многих проектах. Но возникла проблема: пользователи забывали свои логины, что уменьшало конверсию на вход.
Тогда к логинам прикрутили email. Забыл логин или пароль — не проблема, восстанови через почту. В целом нормально, но не так удобно. Кто-то пошел дальше и полностью отказался от логина, по сути сделав его равным email. Уже проще — свой email точно не забудешь.

Стоит сделать ремарку: в какой-то момент в браузерах появились менеджеры паролей, которые запоминали данные за пользователя. Это безумно удобно, при условии синхронизации с разными устройствами пользователя.

Безопасность vs Удобство

Email и пароль — замечательный способ, но нельзя быть до конца уверенными, что действия из аккаунта действительно выполняет его владелец. Есть сферы, где это критично: банкинг, финансы, здоровье и другие области, чувствительные к безопасности данных.

На фоне этого появлялись разнообразные способы двухфакторного входа с контрольным вопросом, звонком и т. д., но это совершенно другая история. Нужно искать далее.

Процесс входа с парой логин/email и пароль накладывает на систему дополнительные требования: организация отдельной регистрации, процесс восстановления доступа с контрольными строками и прочее.

Альтернативные методы входа

Набирал популярность тренд аутентификации через SMS. Вводишь номер, приходит SMS, вводишь одноразовый пароль — и вошел. Без пыли, без постоянных паролей — очень удобно.

Но есть проблема — это дорого. SMS стоит денег, провайдеры хотят денег. Чтобы быть уверенным, что SMS дойдет, нужно покупать подписку у каждого провайдера связи. Цена входа одного пользователя улетает в космос.

Звонки казались еще дороже, но оказалось — нет. Вводишь номер, тебе поступает звонок, последние 4-6 цифр это и есть пароль. Иногда робот диктует код, и нужно поднимать трубку. В целом нормально, но при звонке приходится быстро перепечатывать код, что не всегда удобно и очевидно что от тебя хотят.

Сейчас спамеров все сильнее контролируют, поэтому SMS и звонки все реже проходят, создавая дополнительные барьеры для пользователя. Стоимость доставки и доходимость заставили искать новые методы. Стоимость конечно можно снижать за счет протягивая, сохранения жизнь сессиям пользователей, но это как подорожник при переломе ноги.

Стоит отметить, используют комбинации методов. Одноразовый пароль через смс далее постоянный пароль и т. д.

Возвращение email: Новая надежда

Король вернулся. Email снова на коне. Организация максимально простая — одно окно ввода email, никакой регистрации, восстановления доступа не требуется. Если email нет — создаем в базе, если есть — высылаем пароль.
Шаблон email в этом случае примитивен, но имеет два варианта. Выслать контрольную строку с авторизацией или код для входа. Метод со ссылкой еще более простой, так как в интерфейсе нам нужно только окно ввода email и все.

Лично мне безумно удобно пользоваться. Почта всегда под рукой на телефоне. Кто скажет иначе — я возражу, что сейчас невозможно почти пользоваться телефоном, не введя email и на Apple, и на Android.
Ты уже наверняка сталкивался с данным подходом, его например внедрила figma.

Технический механизм email-авторизации гораздо сложнее, чем кажется на первый взгляд. Генерация одноразового токена включает в себя сложные криптографические алгоритмы, учитывающие множество параметров безопасности.

Современные системы используют многоуровневую защиту: ограничение времени жизни токена, привязку к устройству и IP-адресу, механизмы защиты от повторных попыток входа. Это позволяет существенно снизить риски несанкционированного доступа.

Выбор метода входа — это всегда компромисс между безопасностью и удобством. Чем проще процедура регистрации, тем выше вероятность, что пользователь завершит процесс и останется в системе.

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

Вход через социальные сети: Еще один вариант

Нельзя не упомянуть методы входа через сторонние приложения — Яндекс, VK, Тинькофф и другие. Но если смотреть правде в глаза, в глубине души нельзя быть уверенным, что один или несколько методов покроют всех пользователей. Найдется тот самый пользователь, у которого этого нет, а почта есть у всех. Наверное.

Популярность

По субъективному мнению, топ методов входа на сайт по популярности может выглядеть следующим образом

  1. Логин/email + пароль — самый распространенный способ.
  2. Через социальные сети — удобство и скорость делают этот метод популярным, особенно в B2C.
  3. Одноразовый код по email — активно используется в e-commerce и для временных доступов.
  4. Через телефон (SMS) — особенно популярен для подтверждения личности в банках и сервисах доставки.
  5. Приложения-аутентификаторы — становится стандартом для безопасной двухфакторной аутентификации.
  6. Без паролей (passwordless) — растет в популярности благодаря простоте использования.
  7. QR-коды — часто встречаются в банковских приложениях и корпоративных системах.
  8. Биометрия — активно внедряется в мобильных приложениях и устройствах.
  9. Авторизация через мессенджеры — пока используется редко, но набирает популярность в некоторых нишах.
  10. Сертификаты или токены — востребованы в корпоративных и высокозащищенных системах.

В ближайшее время я ожидаю смещение акцентов в пользу методов без паролей (passwordless), которые предлагают упрощение процесса авторизации и высокую безопасность.

Сравнительная таблица

1 — минимальная оценка (сложно, неудобно, редко используется).
5 — максимальная оценка (очень удобно, легко внедрить, популярно).

Метод

Удобство

Простота реализации

Безопасность

Популярность

Логин/email + пароль

4

5

3

5

Через телефон (звонок/SMS)

4

4

4

4

Через социальные сети

5

3

3

5

Одноразовый код по email

4

5

4

4

QR-код

4

3

4

3

Биометрия

5

2

5

3

Через мессенджеры

3

4

4

2

Приложения-аутентификаторы

4

4

5

4

Без паролей (passwordless)

5

4

5

4

Сертификаты или токены

3

2

5

2

Итого

Если у вас сервис связанный с b2b и даже b2c, рекомендую к внедрению. Мы уже начали внедрение для некоторых своих клиентов и в скором времени соберем данные о том насколько это метод эффективен.

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

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