Что такое авторизация в контексте информационной безопасности?

Ответ

Авторизация — это процесс проверки прав доступа аутентифицированного пользователя или системы к конкретным ресурсам, данным или операциям.

Ключевые принципы:

  • Следует за аутентификацией (сначала "кто ты?", затем "что тебе можно?").
  • Реализует принцип минимальных привилегий — предоставление только необходимых прав.

Основные модели:

  1. RBAC (Role-Based Access Control): Права назначаются ролям, а пользователи получают роли.
    # Пример: проверка роли
    if user.role in ['admin', 'editor']:
        grant_access()
  2. ABAC (Attribute-Based Access Control): Решение основано на атрибутах пользователя, ресурса, действия и контекста.
  3. PBAC (Policy-Based Access Control): Централизованное управление правами через политики.

Техническая реализация часто использует токены (JWT, OAuth), где в payload токена закодированы права (claims/scopes), или системы ACL (Access Control Lists).

Ответ 18+ 🔞

Давай разжую эту тему, как будто объясняю соседу по курилке, который вчера только узнал, что пароль от вайфая — это не «12345».

Ну, слушай сюда. Вот представим: ты пролез через турникет на работу (это аутентификация — ты доказал, что ты — это ты). А авторизация — это когда ты, такой весь из себя легальный, пытаешься зайти в серверную, а тебе охранник, ёпта, говорит: «Куда прешь? У тебя ж бейджик с синей полоской, а сюда только с красной!». Вот это и есть проверка прав — что тебе можно, а что — иди нахуй.

Основная идея, блядь, простая как три копейки:

  1. Сначала всегда выясняют кто ты (логин-пароль, отпечаток, карточка).
  2. Потом смотрят — а на что ты, сука, имеешь право? Принцип, блядь, железный: давать ровно столько власти, сколько нужно для работы, а не как у нас в отделе — всем подряд права админа, а потом все охуевают, откуда вирус.

Как это, блядь, организуют? Есть три главных подхода, прям как три богатыря:

  1. RBAC (Контроль доступа на основе ролей). Самый популярный, как селёдка под шубой на Новый год. Ты не каждому Васе права раздаёшь, а создаёшь роли: «Бухгалтер», «Сисадмин», «Смотрящий за печеньками». И уже к ролям цепляешь права. Пользователь получает роль — и всё, понеслась.

    # Пример из жизни: проверяем, можно ли этому челу лезть в настройки
    if user.role in ['admin', 'editor']:
        grant_access()  # Можно, блядь, иди
    else:
        deny_access()   # А тебе, дружок, низя. Иди отсюда.
  2. ABAC (На основе атрибутов). Это уже для хитрожопых. Тут решение принимается по куче признаков: кто (должность, стаж), что (ценность документа), когда (рабочий ли час) и где (из офиса или из интернета-кафе в Таиланде). Типа: «Если сотрудник из отдела продаж, пытается открыть коммерческое предложение в рабочее время и не из публичной сети — пусти. Иначе — нахуй».

  3. PBAC (На основе политик). Это когда все эти правила не размазаны по коду, как сопли по рукаву, а собраны в одном центральном месте — в политиках. Меняешь правило в одном файле, и оно на всю систему сразу действует. Красота, ёперный театр!

А как технически-то, блядь, это работает? Чаще всего сейчас через токены. Ты авторизовался, тебе выдали бумажку (токен), типа JWT. В ней, кроме твоего имени, написано, что тебе можно: «читать склад», «создавать заказы», но «изменять зарплаты — ни хуя». И с этой бумажкой ты ходишь по всем сервисам, они её читают и решают — пускать тебя дальше или послать нахуй.

Вот и вся магия, блядь. Не «всех пускать», а давать доступ точечно, иначе будет пиздец, как в том анекдоте: «А кто ж тогда клавиатуру ссанькой залил?».