Справочник - веб-разработка

Авторизация

Авторизация (англ. authorization) — это процесс проверки прав пользователя на доступ к определённым ресурсам, функциям или данным в системе. Она следует за процессом аутентификации (идентификации личности) и определяет, что именно пользователь может делать в системе. Авторизация играет ключевую роль в обеспечении безопасности и управления доступом.

Основные концепты авторизации

Роли и права доступа: пользователи могут иметь разные роли, например, "администратор", "редактор", "гость". Каждая роль определяет набор разрешений, например, просмотр, редактирование, удаление данных.

Типы авторизации:

  • ролевая (RBAC, Role-Based Access Control), в которой доступ предоставляется в зависимости от роли пользователя;
  • дискреционная (DAC, Discretionary Access Control), в ней владелец ресурса сам определяет, кто имеет доступ;
  • мандатная (MAC, Mandatory Access Control): Доступ строго регулируется правилами и уровнями секретности;
  • атрибутная (ABAC, Attribute-Based Access Control), в которой решение о доступе зависит от атрибутов пользователя и объекта.

Механизмы авторизации:

  • списки доступа (ACL, Access Control List);
  • токены доступа (например, JWT — JSON Web Token);
  • роли и группы пользователей.

Авторизация в различных системах:

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

Как происходит авторизация: шаги

Процесс авторизации включает несколько последовательных этапов, которые позволяют системе определить права доступа пользователя к ресурсам. Этот процесс начинается после успешной аутентификации и включает проверку соответствия прав доступа пользователя установленным правилам.

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

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

Роль: "Администратор", "Пользователь", "Гость".

Атрибуты: уровень доступа, подписка, департамент.

Проверка правил доступа. Система сравнивает права пользователя с настройками доступа к запрашиваемому ресурсу или функции, может происходить сравнение роли с доступом к ресурсу (RBAC), и проверка дополнительных атрибутов, таких как время или местоположение (ABAC).

Принятие решения. На основе проверки система принимает одно из решений:

  1. Доступ разрешён. Пользователь получает доступ к запрашиваемому ресурсу или операции.
  2. Доступ запрещён. Пользователю выводится уведомление об ограничении доступа.

Регистрация события (логирование). Система записывает информацию об успешной или неуспешной авторизации в журнал активности для аудита или анализа безопасности.

Предоставление доступа. Если доступ разрешён, пользователю предоставляется возможность выполнять разрешённые действия:

  • отображение запрошенной страницы;
  • предоставление данных;
  • включение соответствующего функционала.

Примеры авторизации

На веб-сайтах. Пользователи с правами администратора могут управлять контентом, тогда как гости могут только просматривать.

В корпоративных системах. Сотрудники из разных отделов имеют доступ только к своим проектам.

В социальных сетях. Пользователь может настроить, кто может видеть его профиль или посты (только друзья, все пользователи).

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

Современные методы авторизаци

  • OAuth 2.0 - используется для авторизации доступа к сторонним сервисам (например, вход через Google или Facebook);
  • OpenID Connect (OIDC) - расширение OAuth 2.0 для единой авторизации с передачей данных о пользователе;
  • JWT (JSON Web Token) - лёгкий и безопасный способ передачи данных авторизации между клиентом и сервером;
  • SAML (Security Assertion Markup Language) - используется в корпоративной среде для единого входа (SSO);
  • API-ключи - уникальные ключи для идентификации приложений и предоставления доступа.

Похожие термины

Присоединяйся к нам

Расти и развивайся вместе с нами

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

Присылай своё резюме или CV на hr@weblising.com

Вакансии

Наш специалист всегда готов Вам помочь

Мы на связи по будням с 9:00 до 20:00

Менеджер
+375 29 306-83-73