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

«Что такое авторизация в информационной безопасности?» — вопрос из категории Безопасность, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Ключевое отличие от аутентификации:

  • Аутентификация: "Кто ты?" (проверка личности, например, по логину/паролю).
  • Авторизация: "Что тебе разрешено делать?" (проверка прав).

Основные модели авторизации:

  1. Ролевой доступ (RBAC — Role-Based Access Control): Права назначаются ролям, а пользователям присваиваются роли.

    // Пример с аннотациями Spring Security
    @PreAuthorize("hasRole('ADMIN')")
    public void deleteUser(Long userId) { /* ... */ }
  2. Детальный доступ на основе прав/атрибутов (ABAC — Attribute-Based Access Control): Решение принимается на основе атрибутов пользователя, ресурса, действия и контекста (время, местоположение). Более гибкая модель.

  3. Мандатный доступ (MAC): Используется в системах с высокими требованиями к безопасности, где права назначаются централизованно.

Пример реализации проверки прав в коде:

// Проверка, является ли пользователь владельцем ресурса
@PreAuthorize("#userId == authentication.principal.id or hasRole('MODERATOR')")
public User updateUserProfile(Long userId, UserProfileDto profile) {
    // Обновить профиль пользователя
}

Технологии и протоколы:

  • OAuth 2.0 / OpenID Connect: Стандарты для делегированного доступа и аутентификации, часто используемые в веб-API и микросервисах.
  • JWT (JSON Web Tokens): Токены, которые могут содержать claims (утверждения) о правах пользователя, проверяемые ресурсным сервером.
  • Spring Security, Apache Shiro: Фреймворки для реализации авторизации в Java-приложениях.

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