Обзор
В данном примере описывается реализация авторизации пользователей на основе атрибутов в Drupal с использованием модуля miniOrange OAuth Client. Аутентификация и идентификация пользователей выполняются с использованием атрибутов, полученных от поставщика идентификации OAuth в процессе единого входа (SSO).
Необходимые условия:
В этом разделе мы обсудим все аспекты, от требований и процесса внедрения до результатов.
- miniOrange OAuth Client Модуль (версия 8.x и выше) установлен и включен.
- Административный доступ к настройке модуля.
- Поставщик OAuth настроен и доступен.
- Необходимые атрибуты пользователя доступны в токене OAuth.
Проблема
Если ваш сайт на Drupal зависит от внешнего поставщика идентификации для авторизации пользователей, могут возникнуть проблемы, когда локальная информация, например, имена пользователей или адреса электронной почты, не совпадает с данными в поставщике идентификации. Это несоответствие вызывает множество проблем. В итоге могут появиться дублирующиеся учетные записи пользователей. Иногда система сопоставляет пользователей с неправильными учетными записями при попытке входа в систему. Профили пользователей могут устаревать, и вам приходится выполнять много ручной работы, чтобы все упорядочить. Хуже всего то, что эти проблемы могут открыть двери для несанкционированного доступа. Это настоящая головная боль.
Решение
Включив функцию авторизации на основе атрибутов в модуле Drupal OAuth Client, администраторы сайта могут выбрать, какие атрибуты OAuth будут выступать в качестве основных идентификаторов пользователей, обрабатывая как аутентификацию, так и создание пользователей.
Для добавления этого на ваш сайт Drupal потребуется выполнить несколько ключевых шагов по настройке:
Конфигурация идентификатора входа SSO
- Администраторы могут настроить определенный атрибут сервера OAuth, который будет использоваться в качестве идентификатора для входа через единый вход (SSO). Этот атрибут выступает в качестве первичного ключа для идентификации пользователя во время аутентификации.
- Идентификатор для входа через SSO настраивается путем выбора атрибута на вашем OAuth-сервере, обычно это адрес электронной почты, имя пользователя, идентификатор сотрудника или внешний идентификатор пользователя. Когда кто-то пытается войти в систему, Drupal проверяет наличие учетной записи пользователя, соответствующей значению этого атрибута. Таким образом, вы всегда получаете надежное соответствие между пользователем OAuth и учетной записью Drupal, без каких-либо догадок.
Процесс аутентификации и идентификации
- Пользователь инициирует вход в систему из приложения Drupal.
- Пользователь перенаправляется на сайт поставщика OAuth.
- Аутентификация выполняется у поставщика идентификационных данных.
- В Drupal возвращается токен OAuth, содержащий атрибуты пользователя.
- Проверяется настроенный атрибут входа через SSO.
- Учетная запись пользователя найдена или создана.
- Сопоставленные атрибуты синхронизируются с профилем пользователя Drupal.
- Пользовательская сессия установлена.
Конфигурация
Атрибут входа SSO
- Для идентификации пользователей во время входа в систему выбирается один атрибут сервера OAuth. Поддерживаемые атрибуты включают, но не ограничиваются следующим:
- Эл. адрес
- Имя пользователя
- Этот атрибут используется для поиска существующих пользователей Drupal во время единого входа (SSO).
Отображение атрибутов
- Атрибуты сервера OAuth сопоставляются с полями пользователя Drupal.
- Примеры:
- электронная почта → почта
- имя → имя
- отдел → полевой отдел
- Сопоставленные атрибуты обновляются при каждом успешном входе в систему.
Преимущества
- Детерминированная идентификация пользователя.
- Последовательная синхронизация идентификаторов.
- Сокращение административных накладных расходов.
- Надежный и масштабируемый процесс аутентификации.
Заключение
Вход в систему на основе атрибутов с использованием клиента miniOrange OAuth обеспечивает надежный механизм идентификации пользователей в приложениях Drupal, интегрированных с поставщиками идентификации OAuth. Оценивая атрибуты OAuth во время аутентификации, Drupal гарантирует точное сопоставление пользователей, автоматическое предоставление доступа и согласованное управление идентификацией.