Откройте для себя безграничные возможности с помощью Drupal Headless SSO, использующего протокол SAML.
Обзор
Решение miniOrange Headless SSO обеспечивает бесшовную единую авторизацию (SSO) между приложением без графического интерфейса, бэкэндом Drupal и поставщиком идентификационных данных (IdP). В процессе аутентификации пользователи сначала перенаправляются на страницу входа в систему поставщика идентификационных данных. После успешной аутентификации они перенаправляются обратно во фронтенд-приложение. На этом этапе генерируется JSON Web Token (JWT) для безопасной проверки личности пользователя и отправляется на фронтенд-сайт. (Необязательно: этот токен можно использовать для проверки API при получении любой дополнительной информации из Drupal.) Далее в этом документе описаны шаги по настройке SSO для безголовой конфигурации Drupal.
Предпосылки
- Модуль miniOrange SAML SP : Это модуль Обеспечивает единый вход (SSO) между сайтом Drupal и поставщиком SAML.
- Модуль аутентификации REST и JSON API :
- После выполнения SSO, это модуль помогает сгенерировать JWT и отправить этот токен во фронтенд-приложение.
- Этот токен можно использовать в заголовке запроса к API Drupal для аутентификации/проверки любых последующих API. Модуль аутентификации REST и JSON API проверит JWT перед разрешением вызовов API, чтобы обеспечить безопасный доступ.
Настройки бэкэнда
- Модуль miniOrange SAML: Обратитесь к этому руководство по настройке для установления единого входа (SSO) между сайтом Drupal и необходимым поставщиком идентификации SAML.
- Модуль аутентификации REST и JSON API:
- Для аутентификации API Drupal с использованием JWT настройте метод аутентификации на основе JWT в модуле, следуя этим инструкциям. Руководство по настройке.
- Настройте URL-адрес для входа в систему на стороне клиента:
- Чтобы получить URL-адрес для входа, перейдите в модуль miniorange_saml, а затем в раздел... Настройка поставщика услуг Вкладка. Скопируйте ссылку SSO и интегрируйте ее на страницу входа в систему.
- Настройте конечную точку внешнего интерфейса:
- Модуль аутентификации REST и JSON API генерирует JWT, соответствующий авторизованному пользователю. Чтобы получить этот JWT из модуля, настройте URL-адрес перенаправления в модуле аутентификации API, выполнив следующие шаги:
- Перейдите в Дополнительные настройки вкладки Аутентификация через REST и JSON API модуль.
- В Настройка конечной точки токена для безголового SSO В разделе укажите конечную точку фронтенд-приложения, куда браузер будет перенаправлен после процесса единого входа (SSO) с кодом и параметром состояния ретрансляции. После этого нажмите на кнопку. Сохранение конфигурации конечной точки токена .
- Настройте URL-адрес перенаправления при выходе из системы на стороне клиента:
- После выхода пользователя из системы Drupal он будет перенаправлен обратно на фронтенд. Чтобы настроить эту конечную точку фронтенд-приложения, перейдите на вкладку «Вход» в интерфейсе. miniOrange_saml модуль.
- В «URL-адрес перенаправления по умолчанию после выхода из системы» В текстовом поле введите конечную точку на стороне клиента, куда пользователь должен быть перенаправлен после выхода из системы.
Раскрывая секреты фронтенда
В этом разделе подробно описано все действия, которые пользователь должен выполнить на стороне фронтенда. Также обсуждаются возможные изменения, которые пользователь увидит на фронтенде. Давайте начнём:
- Процесс авторизации:
- Инициируйте вход в систему из внешнего приложения, используя URL-адрес SSO.
- Пользователь перенаправляется на настроенный поставщик идентификации (IdP).
- Введите учетные данные пользователя для аутентификации.
- После успешной аутентификации пользователь перенаправляется обратно на внешний интерфейс, где в качестве параметров запроса в URL-адресе указываются код и состояние ретрансляции.
- Используйте код, полученный на предыдущем шаге, для отправки запроса к конечной точке токена Drupal. Для этого выполните следующие действия:
- Найдите конечную точку токена в Настройки конечных точек токенов для безголового единого входа (SSO) Подробности смотрите на изображении ниже.
- Пример отправки POST-запроса с полученным кодом:
- Предположим, пользователь получил код '(received_code)' на пользовательском интерфейсе.
- Теперь используйте указанный ниже формат для отправки POST-запроса с помощью этого кода.
Примечание: Состояние ретрансляции — это параметр, с которого инициируется вход в систему, или, если параметром назначения является текущий URL-адрес входа, то состояние ретрансляции будет равно значению параметра назначения.
Формат Postman:
HTTP: POST /drupal10_1_1/web/getToken HTTP/1.1 Host: localhost Content-Type: application/x-www-form-urlencoded Content-Length: 35 code=MjEOxuSuQyd1vUE7Ft5K5fT8Syh25c CURL: curl --location 'http://localhost/drupal10_1_1/web/getToken' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'code=MjEOxuSuQyd1vUE7Ft5K5fT8Syh25c'
- Инициируйте выход из приложения на стороне клиента (используя URL-адрес). {drupal-base-url}/user/logout)
- Убедитесь, что настроен единый выход из системы.
- Это приведет к выходу пользователя из системы как на сайте Drupal, так и в системе поставщика идентификации (IdP).
- После выхода из системы Drupal пользователь будет перенаправлен на другую страницу. настроенная конечная точка.
Примечание: Чтобы ознакомиться с форматом API-запросов, содержащих JWT-токен в заголовке, обратитесь к этой ссылке. руководство по настройке.
Статьи по теме
Спасибо за ваш ответ. Мы свяжемся с вами в ближайшее время.
Что-то пошло не так. Пожалуйста, отправьте запрос ещё раз.

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