Настройка JWT-аутентификации в Drupal
Аутентификация через API Drupal Этот модуль использует JSON Web Tokens (JWT) для безопасной аутентификации запросов к API. Сначала проверяются ваше имя пользователя и пароль Drupal для генерации подписанного токена JWT, который затем возвращается клиенту. Этот токен можно использовать для доступа к API Drupal до истечения срока его действия. JWT поддерживает алгоритмы HSA и RSA для подписи и проверки. Этот модуль полностью совместим с Drupal 8, Drupal 9, Drupal 10 и Drupal 11.
- Использование Композитора
- Использование Drush
- Ручная установка
Предпосылки:
- REST UIЭтот модуль предоставляет удобный интерфейс для настройки модуля REST.
- Включите следующие модули веб-сервисов в Продлить раздел (/admin/modules) вашего сайта Drupal:
- JSON: API
- REST UI
- Веб-службы RESTful
- Сериализация
Включите API и назначьте методы:
- Первый шаг — включить API и назначить разрешенные для него методы и операции. Это можно сделать с помощью... REST UI либо путем непосредственного изменения конфигурации Drupal.
- Нажмите на Включить API .
- Чтобы включить API с помощью модуля REST UI, нажмите на кнопку. Настроить кнопка (как показано ниже).
- В нашем примере нам необходимо включить /entity/user API. Для этого нажмите кнопку «Включить» напротив него.
- Поскольку наша цель — создать пользователя в Drupal, выберите следующие параметры конфигурации:
- Метод: POST
- Формат: JSON
- Поставщик аутентификации: rest_api_authentication
- Это позволяет модулю аутентификации API miniOrange аутентифицировать API. Нажмите на кнопку. Сохранение конфигурации Кнопка продолжить.
Шаги настройки
1. Настройка метода аутентификации JWT:
- На этом шаге мы настроим JWT в качестве метода аутентификации API. Для этого перейдите по ссылке... Аутентификация API вкладка модуля (/admin/config/people/rest_api_authentication/auth_settings).
- Под Базовая конфигурация, включите Включить проверку подлинности переключения.
- Введите Имя приложения и ДЖ.В.Т. из Метод аутентификации .
- Прокрутите вниз до Конфигурация JWT раздел на той же вкладке.
- В поле «Атрибут имени пользователя» введите имя атрибута из полученного JWT-файла, содержащего имя пользователя Drupal.
- Выберите Алгоритм подписания из выпадающего списка.
- Необязательно: укажите желаемый срок действия (в минутах) в соответствующем поле. Время истечения срока действия токена.
- URI JWKS: Если вы хотите использовать внешний JWT-токен, укажите URI JWKS для его проверки в Drupal.
- Сертификат/Секретный ключ: При выборе RS256 необходимо предоставить сертификат, а при выборе HS256 — секретный ключ.
- Закрытый ключ: Введите закрытый ключ для JWT или сгенерируйте новый ключ.
- Открытый ключ: Введите открытый ключ для JWT или сгенерируйте новый ключ.
- Нажмите Сохранить конфигурацию .
- Вы успешно настроили метод аутентификации JWT.
- Прежде всего, нам нужно сделать вызов API, чтобы получить JWT. Затем мы будем использовать этот токен для аутентификации в Drupal API при создании пользователя.
- JWT можно получить, отправив POST-запрос, содержащий имя пользователя и пароль Drupal. Имя пользователя и пароль необходимо отправить в формате base64. Для справки можно использовать приведенный ниже формат запроса.
Для внешнего JWT:
Создание пользовательских ключей:
Примечание: Вы можете ввести ключи вручную или сгенерировать их. Эти ключи будут использоваться для подписи и проверки токенов JWT.
Примечание: При аутентификации API используйте уникальный заголовок, специфичный для данного приложения.
Запрос: POST /rest_api/id_token Заголовок: Accept: application/json Authorization: Basic base64encoded Формат запроса CURL: `curl --location --request POST '` /rest_api/id_token' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --header 'Authorization: Basic base64encoded '
- В случае успешного ответа возвращается JWT вместе с датой истечения срока действия токена. (см. изображение ниже)
2. Пример:
- Для лучшего понимания рассмотрим пример использования JWT-токена для создания пользователя в Drupal с помощью REST API.
- Для создания пользователя в Drupal необходимо отправить POST-запрос, используя полученный JWT или внешний JWT в качестве токена Bearer в заголовке Authorization. Пример выполнения запроса приведен ниже.
Примечание: API /entity/user в Drupal используется для создания нового пользователя.
HTML-формат запроса - Запрос: POST /entity/user?_format=json Заголовок: AUTH-METHOD: application_id Accept: application/json Content-Type: application/json Authorization: Bearer received_JWT Тело: { "name": { "value": " " }, "mail": { "value": " " }, "pass": { "value": " " }, "status": { "value": "1" } } Формат запроса CURL - curl --location --request POST ' /entity/user?_format=json' \ --header 'AUTH-METHOD: application_id' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --header 'Authorization: Authorization: Bearer ' \ --data-raw ' { "name": [ { "value": "Username" } ], "mail": [ { "value": "email" } ], "pass": [ { "value": "Password" } ], "status": [ { "value": "1" } ] }
- В случае успешного ответа будут возвращены данные созданного вами пользователя (см. изображение ниже).
Поздравляем! Вы успешно настроили метод аутентификации JWT с помощью модуля аутентификации API Drupal.
Если настройка не удалась, пожалуйста, свяжитесь с нами по адресу: drupalsupport@xecurify.comПожалуйста, приложите скриншот окна с ошибкой, и мы поможем вам решить проблему и проведем вас через процесс настройки.
Спасибо за ваш ответ. Мы свяжемся с вами в ближайшее время.
Что-то пошло не так. Пожалуйста, отправьте запрос ещё раз.
