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¶
- Создать сервисный аккаунт на целевой платформе
- Создать клиента
- Получить Client ID (публичный), Client Secret (показывают один раз при создании, приватный)
- Добавить тестовых пользователей или опубликовать приложение
https://www.youtube.com/watch?v=0finVGfKvHU