Перейти к содержанию

AUTH

Идентификация - процесс определения, кто пытается получить доступ. Обычно это ввод логина, email или другого уникального идентификатора. Объявление о своей личности, без проверки на соответствие.

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

Авторизация - определение прав и полномочий пользователя после успешной аутентификации. Авторизация отвечает на вопрос: «Что этот пользователь может делать в системе?» Например, доступ к определённым страницам, функциям или данным.


Типы аутентификации:

  • Логин и пароль
  • email + code - переходит во ссылке из письма или вводит код из письма, почта служит идентификатором
  • sms code / OPT
  • биометрия
  • push-уведомления на другие устройства
  • QR авторизация
  • usb ключи и физические токены

Хэширование паролей устаревшие: md5, SHA1, SHA256 без соли безопасные: bcrypt, argon2

соль - уникальная строка, добавляется к каждому паролю перед хэшированием перец - общий секрет, добавляется отдельно, хранится вне БД


АВТОРИЗАЦИЯ - права доступа RBAC, ABAC, ACL

2FA

SQL инъекции XSS кража токенов CSRF Brute force

JWT (JSON Web Tokens)

Токены и JWT (процессы после аутентификации) Токен - это строка, которая подтверждает, что пользователь прошёл аутентификацию. Он передаётся клиентом при каждом запросе к серверу, чтобы получить доступ к защищённым ресурсам. Используется в системах без сохранения состояния (stateless) и может содержать:

  • ID пользователя
  • Время жизни
  • Подпись для защиты от подделки Stateless vs Statefu; Stateless:
  • Сервер не хранит сессию
  • Вся информация о пользоваытеле - в токене
  • Удобно при масштабировании и распределении нагрузки Stateful:
  • Сервер хранит состояние (например, в БД или Redis)
  • Токен - лишь ссылка на данные
  • Легче отозвать доступ (удалить сессию)

JWT HEADER.PAYLOAD.SIGNATURE

  • Header - тип токена и алгоритм подписи (например, HS256)
  • Payload - полезная нагрузка (userId, exp и т.д.)
  • Signature - подпись, защищающая токен от подделки Все части кодируются в base64 и легко читаются - токен можно декодировать, но не подделать без ключа. какие данные можно и нельзя класть в токен HMAC, RSA подписи Access, Refresh token Опасные места, утечка и последствия blacklist и revocation плюсы и минусы

SSO (Single Sign-On)

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

Session Authentication

СЕССИИ stateful где хранятся когда начинается сессия и когда заканчивается что хранить в сессии

Basic Auth

Token Based Authentication

OAuth

  1. Создать сервисный аккаунт на целевой платформе
  2. Создать клиента
  3. Получить Client ID (публичный), Client Secret (показывают один раз при создании, приватный)
  4. Добавить тестовых пользователей или опубликовать приложение

https://www.youtube.com/watch?v=0finVGfKvHU