Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

Аутентификация, безопасность и производительность

20/04/2025, by Ivan

Модуль JSON:API в Drupal предоставляет мощный способ предоставить ваш контент в виде API, но выбор правильного метода аутентификации имеет решающее значение для безопасности и удобства использования. Этот обзор рассматривает различные варианты аутентификации, доступные при работе с модулем JSON в Drupal.

Основные методы аутентификации

Модуль Drupal REST & JSON API Authentication ограничивает и защищает несанкционированный доступ к API вашего сайта Drupal с использованием различных методов аутентификации, включая:

Этот модуль также позволяет аутентифицировать вызовы API в Headless/Decoupled конфигурациях Drupal.

  1. Базовая аутентификация (Basic Authentication)
  2. Аутентификация по API-ключу
  3. Аутентификация по токену доступа/OAuth
  4. Аутентификация с использованием JWT-токенов
  5. Аутентификация с использованием токена стороннего провайдера

Аутентификация по cookie

Метод аутентификации по умолчанию в Drupal использует сессионные cookie. Когда пользователь входит в систему через стандартную форму входа, создаётся сессионный cookie, который можно использовать для аутентификации JSON-запросов.

Преимущества:

  • Просто реализовать для приложений, работающих в браузере
  • Использует существующую систему аутентификации Drupal
  • Хорошо подходит для JavaScript-приложений, размещённых на том же домене

Ограничения:

  • Не подходит для кросс-доменных запросов без дополнительной настройки
  • Менее удобно для мобильных приложений или сторонних интеграций
  • Необходимость управления сессиями

Базовая аутентификация (Basic Authentication)

Базовая аутентификация предполагает отправку учётных данных (имя пользователя и пароль) в заголовке Authorization каждого запроса.

Преимущества:

  • Простота реализации
  • Широкая поддержка в HTTP-клиентах

Ограничения:

  • Учетные данные передаются с каждым запросом
  • Безопасна только при использовании HTTPS
  • Нет встроенного механизма истечения срока действия токенов

Модули аутентификации, предоставляемые сообществом

Simple OAuth (OAuth 2.0)

Simple OAuth реализует протокол OAuth 2.0 для аутентификации API в Drupal.

Преимущества:

  • Безопасная аутентификация на основе токенов
  • Поддержка токенов обновления
  • Гранулированные разрешения (scopes)
  • Идеален для сторонних интеграций
  • Широко используемый стандарт

Ограничения:

  • Более сложная настройка по сравнению с базовой аутентификацией
  • Требует понимания потоков OAuth 2.0

JWT (JSON Web Token)

Модуль JWT позволяет использовать JSON Web Tokens для аутентификации.

Преимущества:

  • Безсессионная (stateless) аутентификация
  • Снижает нагрузку на базу данных
  • Возможность включать метаданные (claims) в токен
  • Высокая производительность на больших масштабах

Ограничения:

  • Необходима грамотная организация управления ключами
  • Уязвимости при неправильной реализации
  • Отсутствие встроенного механизма отзыва токенов

Key Auth

Key Auth предоставляет простую аутентификацию по API-ключу для Drupal.

Преимущества:

  • Простой подход на основе API-ключей
  • Хорошо подходит для взаимодействия «машина-машина»
  • Минимальная настройка

Ограничения:

  • Менее безопасен для пользовательских приложений
  • Ограниченные возможности для отзыва ключей
  • Нет механизма обновления токенов

Consumer Auth

Consumer Auth расширяет возможности сущностей Consumer в системе API Drupal.

Преимущества:

  • Интеграция с системой consumer-объектов Drupal
  • Гибкая система прав доступа на основе consumer’ов
  • Хорошо дополняет другие методы аутентификации

Ограничения:

  • Предназначен для совместного использования с другими методами
  • Не является полноценным решением

Что учитывать при выборе метода аутентификации

При выборе метода аутентификации для вашего JSON API учитывайте:

  1. Требования к безопасности: Насколько чувствительны ваши данные?
  2. Тип клиента: Браузер, мобильное приложение или сервер-сервер?
  3. Удобство для пользователя: Нужно ли часто выполнять вход?
  4. Производительность: Насколько важна скорость аутентификации?
  5. Интеграции: Планируется ли подключение сторонних сервисов?

Рекомендации по безопасности

  • Всегда используйте HTTPS при любом методе аутентификации
  • Настройте корректные заголовки CORS для браузерных приложений
  • Продумайте политику истечения срока действия токенов
  • Используйте refresh-токены при необходимости
  • Реализуйте ограничение частоты запросов (rate limiting)
  • Ведите логи попыток аутентификации для анализа безопасности