Настройка аутентификации OAuth/токенов доступа в Drupal
Этот Аутентификация через API Drupal Этот метод использует протокол OAuth 2.0 для генерации защищенного токена доступа. Затем этот токен используется для аутентификации и запросов к API вашего сайта Drupal. Благодаря надежному шифрованию метод OAuth гарантирует, что ваши API останутся хорошо защищенными и безопасными от несанкционированного доступа. Этот модуль широко считается одним из наиболее безопасных способов защиты REST- и JSON:API-интерфейсов Drupal. Он полностью совместим с Drupal 8, 9, 10 и 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. Настройка метода аутентификации OAuth/токен доступа:
- На этом шаге мы настроим OAuth/токен доступа в качестве метода аутентификации API. Для этого перейдите по ссылке... Аутентификация API вкладка модуля (/admin/config/people/rest_api_authentication/auth_settings).
- Под Базовая конфигурация, включите Включить проверку подлинности переключения.
- Введите Имя приложения и OAuth/токен доступа из Метод аутентификации .
- Прокрутите вниз до Конфигурация OAuth раздел на той же вкладке.
- Необязательно: в поле «Время истечения срока действия токена» укажите желаемый срок действия (в минутах).
- Используйте токен доступа, сгенерированный:
- Аутентификация через REST API: Нажмите Сгенерируйте новый идентификатор клиента и секретный ключ. кнопка. (Сохраните идентификатор клиента и секретный ключ. Они понадобятся вам позже для аутентификации при создании пользователя через API.)
- Сервер OAuth: Вы также можете получить токен доступа через OAuth-сервер модуль (после выполнения единого входа) и использовать его для аутентификации.
- Нажмите Сохранить конфигурацию .
- Вы успешно настроили метод аутентификации OAuth/Access Token.
Примечание: При аутентификации API используйте уникальный заголовок, специфичный для данного приложения.
Предоставить права доступа для создания пользователей.
- При необходимости вы можете разрешить пользователям, не являющимся администраторами, создавать пользователей в Drupal. Для этого назначьте нужным пользователям разрешение «Администрировать пользователей» на странице разрешений (/admin/people/permissions) вашего сайта Drupal.
2. Получите токен из модуля REST API:
- Выполните вызов API, чтобы получить токен доступа. Затем вы будете использовать этот токен для аутентификации в API Drupal и создания пользователя.
- Модуль аутентификации API miniOrange поддерживает два типа предоставления доступа для получения токена:
- При предоставлении пароля мы можем получить токен доступа, отправив POST-запрос, содержащий имя пользователя и пароль Drupal, а также идентификатор клиента, выданный модулем аутентификации REST API.
Предоставление пароля:
HTML-формат запроса - Запрос: POST /rest_api/access_token Тело запроса: grant_type = password username = пароль = client_id = Запрос в формате CURL: `curl --location --request POST '` /rest_api/access_token' \ --header 'Accept: application/json' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=password' \ --data-urlencode 'client_id= ' \ --data-urlencode 'username= \ --data-urlencode 'password= '
- Вы также можете обратиться к изображению запроса Postman, представленному ниже.
Предоставление учетных данных клиента:
- При предоставлении учетных данных клиента мы можем получить токен доступа, отправив POST-запрос, содержащий идентификатор клиента (Client ID) и секретный ключ клиента (Client Secret), выданные модулем аутентификации API, а также имя пользователя Drupal.
HTML-формат запроса - Запрос: POST /rest_api/access_token Тело запроса: grant_type = client_credentials client_id = client_secret = Имя пользователя = Формат запроса CURL: `curl --location --request POST '`/rest_api/access_token' \ --header 'Accept: application/json' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=client_credentials' \ --data-urlencode 'client_id= ' \ --data-urlencode 'username= >' \ --data-urlencode 'client_secret= '
- В случае успешного ответа возвращается токен доступа, а также информация о сроке действия токена и его типе (см. изображение ниже).
3. Пример:
- Теперь давайте создадим пользователя с помощью вызова API, используя OAuth/токен доступа для аутентификации.
- Для лучшего понимания рассмотрим пример добавления аутентификации на основе OAuth/токенов доступа к API создания пользователя в Drupal.
- Для авторизации REST API Drupal используйте полученный токен доступа:
- Для аутентификации с помощью токена доступа добавьте этот токен в качестве токена Bearer в заголовок Authorization вашего запроса.
- Пример запроса на создание пользователя с использованием аутентификации на основе токенов:
Примечание: API /entity/user в Drupal используется для создания нового пользователя.
Примечание: Можно использовать любой токен доступа, сгенерированный модулем аутентификации API или модулем сервера OAuth.
HTML-формат запроса - Запрос: POST /entity/user?_format=json Header: AUTH-METHOD: application_id Accept: application/json Content-Type: application/json Authorization: Bearer Тело: { "имя": { "значение": " " }, "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: Bearer ' \ --data-raw ' { "name": [ { "value": "Username" } ], "mail": [ { "value": "email" } ], "pass": [ { "value": "Password" } ], "status": [ { "value": "1" } ] }
- В случае успешного ответа будут возвращены данные созданного вами пользователя (см. изображение ниже).
Поздравляем! Вы успешно настроили метод аутентификации OAuth/токен доступа с помощью модуля аутентификации API Drupal.
Если настройка не удалась, пожалуйста, свяжитесь с нами по адресу: drupalsupport@xecurify.comПожалуйста, приложите скриншот окна с ошибкой, и мы поможем вам решить проблему и проведем вас через процесс настройки.
Спасибо за ваш ответ. Мы свяжемся с вами в ближайшее время.
Что-то пошло не так. Пожалуйста, отправьте запрос ещё раз.
