Drupal Headless SSO с использованием протокола OAuth
Обзор
Решение miniOrange для единого входа без интерфейса на основе OAuth эффективно соединяет бэкэнд Drupal с сервером OAuth, используя протокол аутентификации OAuth. После завершения процесса единого входа модуль генерирует JSON Web Token (JWT) для авторизованного пользователя и передает его на фронтенд-сайт. (Необязательно: этот токен можно использовать для проверки любых других API Drupal.) В этом руководстве подробно описаны основные принципы реализации безголового единого входа (SSO) как на бэкэнде, так и на фронтенде.
Давайте начнём с бэкэнда.Предпосылки
- Модуль клиента miniOrange OAuth : Это модуль обеспечивает единый вход (SSO) между сайтом Drupal и поставщиком OAuth/OIDC.
- Модуль аутентификации REST и JSON API После выполнения SSO, это модуль Это помогает сгенерировать JWT и отправить этот токен во фронтенд-приложение. (Необязательно: для аутентификации любых других API Drupal передайте тот же JWT в заголовке вместе с запросом API, и модуль аутентификации REST и JSON API проверит этот JWT.)
Настройки бэкэнда
- Модуль клиента miniOrange OAuth: Следуйте этим руководство по настройке для установления связи между сайтом Drupal и необходимым поставщиком OAuth/OIDC.
- Модуль аутентификации REST и JSON API:
- Для аутентификации API Drupal с использованием JWT необходимо настроить... Аутентификация JWT метод в модуле. Следуйте этому руководству. Руководство по настройке.
- Настройте URL-адрес перенаправления для фронтенд-приложения:
- Перейдите в Дополнительные настройки вкладка модуля аутентификации REST и JSON API.
- В Настройки конечных точек токенов для безголового единого входа (SSO) Для получения подробной информации введите конечную точку фронтенд-приложения, куда браузер будет перенаправлен после процесса единого входа (SSO) с параметром кода. После этого нажмите на кнопку. Сохранение конфигурации конечной точки токена .
- Процесс авторизации:
- Инициируйте вход в систему из пользовательского приложения (используя URL-адрес). {drupal-base-url}/moLogin)
- Пользователь перенаправляется на настроенный сервер.
- Введите учетные данные пользователя для аутентификации.
- После успешной аутентификации пользователь перенаправляется обратно на внешний сайт, где код передается в качестве параметра запроса в URL-адресе.
- Используйте код, полученный на предыдущем шаге, для отправки запроса к конечной точке токена Drupal. Для этого выполните следующие действия:
- Найдите конечную точку токена в Настройки конечных точек токенов для безголового единого входа (SSO) Подробности. См. изображение ниже.
- Пример отправки POST-запроса с полученным кодом:
- Предположим, пользователь получает код (received_code) на фронтенде.
- Теперь используйте приведенный ниже формат для отправки POST-запроса с помощью этого кода.
Раскрывая секреты фронтенда
В этом разделе подробно описано все действия, которые пользователь должен выполнить на стороне фронтенда.
Давай начнем:
HTTP: POST https://{drupal_base_url}/getToken code=(received_code)
Примечание: Чтобы ознакомиться с форматом API-запросов, содержащих JWT-токен в заголовке, обратитесь к этой ссылке. руководство по настройке.
Статьи по теме
Спасибо за ваш ответ. Мы свяжемся с вами в ближайшее время.
Что-то пошло не так. Пожалуйста, отправьте запрос ещё раз.

Свяжитесь с нами