Базовая аутентификация

Конфиденциальные данные #

Васильев Андрей Михайлович

Версии презентации


Управление конфиденциальными данными #

Конфиденциальность – это предоставление пользователю возможности контроля за своими данными:

  • Как данные собираются
  • Где данные хранятся
  • Как данные используются

Вопросы работы с персональными данными зачастую регулируется законодательством стран, в которых работает веб-приложение

Для реализации возможностей по контролю и доступу к данным необходимо реализовать разделение полномочий пользователей


Системы прав доступа #

Простейшая схема разделения полномочий #

Для информационного ресурса можно разделить пользователей на читателей и администрацию

  • Читатели могут только просматривать информацию, не требует аутентификации
  • Администрация может добавлять новые страницы на ресурс, требуется вход

Сложные системы разделения полномочий #

  • Пользователю может быть доступна только часть функций
  • Предоставление функций может определяться динамически приложением

Примером такой системы является приложение-форум

  • Участники форума добавляют новые тематики для обсуждения
  • Для каждой тематики назначаются модераторы, обладающие правами изменения чужих сообщений

Идентификация, аутентификация и авторизация #

  • Идентификация – процедура, в результате выполнения которой для субъекта идентификации выявляется его идентификатор, однозначно определяющий её в информационной системе, например имя пользователя
  • Аутентификация – это процедура проверки подлинности субъекта, например путём сравнения введённого им пароля с паролём, сохранённым в базе данных
  • Авторизация – предоставление субъекту прав на выполнение определённых действий, например на просмотр конфиденциальной информации

Авторизация или запрет действия – основа любой системы предоставления прав доступа


Пример процедуры аутентификации #

Локальная аутентификация в веб-приложениях обычно включает следующие шаги

  1. Пользователь заходит на сайт и нажимает на кнопку «войти в систему»
  2. Система показывает экран для входа в систему
  3. Пользователь вводит имя пользователя, идентифицирует себя
  4. Пользователь вводит пароль, задаёт данные для аутентификации
  5. Пользователь нажимает на кнопку «Войти», начинает процедуру аутентификации
  6. Система получает введённые имя пользователя и пароль, выполняет их проверку и выполняет аутентификацию
  7. Если введённые данные верны, то аутентификационный токен передаётся пользователю в ответе
  8. При следующих обращениях к серверу веб-браузер передаёт данный токен, сервер использует его для авторизации действий

Почему так сложно? #

  • Аутентификация без идентификации невозможна – нельзя определить субъекта, операцию выполнить невозможно
  • Авторизация без аутентификации невозможна – нельзя понять какие действия можно разрешать данному пользователю

Авторизация без идентификации возможна:

  • публичная информация обычно доступна любому пользователю
  • в этом случае неявная авторизация всё-равно выполняется

Как оно может стать ещё сложнее #

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

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


Варианты аутентификации пользователей #

  • Аутентификация согласно встроенным возможностям протокола HTTP
  • Аутентификация с сохранением сессии
  • Аутентификация с использованием сертификатов
  • Аутентификация по одноразовому паролю
  • Аутентификация по ключам доступа
  • Аутентификация по токенам
  • Стандарты аутентификации OAuth и OpenID Connect

© A. M. Васильев, 2026, CC BY-SA 4.0, andrey@crafted.su