Перейти к основному содержимому

Аутентификация через внешнюю БД

Расположение:
"Администрирование" → "Плагины" → "Аутентификация" → "Настройки аутентификации" → "Внешняя база данных".

Описание:
Данный метод использует внешнюю таблицу базы данных для проверки соответствия указанного имени пользователя (которое должно быть типа varchar) и пароля. Если пользователь отсутствует в YooLearn, будет автоматически создан новый аккаунт с переносом данных из внешней базы данных.

Настройка соответствия полей​


Настройка выполняется путем указания соответствий между полями в нижней части страницы аутентификации через БД. Для каждого поля профиля пользователя предусмотрено текстовое поле, куда нужно ввести название соответствующего столбца во внешней базе данных.

Типы синхронизации:
Локальное обновление - данные из внешнего источника записываются в локальное поле системы.

  • При создании - синхронизация происходит только при первом входе, во время создания аккаунта.
  • При каждом входе - система проверяет и обновляет локальное поле при каждой авторизации пользователя.
  • Внешнее обновление - обратный процесс: изменения в локальном поле YooLearn обновляют данные во внешней БД.

Отключено - функция синхронизации не активна.
При изменении - синхронизация происходит при локальном редактировании (может требовать дополнительных настроек).

Политика блокировки полей:
Разблокировано - пользователь может редактировать поле в YooLearn (но при следующем входе значение может быть перезаписано, если включено локальное обновление).
Заблокировано - поле недоступно для редактирования пользователем.
Разблокировано для пустых полей - редактирование разрешено только для незаполненных полей (однократное заполнение без возможности изменения).

Автоматическая синхронизация​


Описанный выше метод добавляет новых пользователей только при их входе в систему. Если требуется создавать учетные записи пользователей в YooLearn независимо от фактических входов, необходимо активировать задание "Синхронизация пользователей auth_db" (auth_db/task/sync_users) на странице Планировщик задач. По умолчанию эта задача выполняется один раз в сутки; при необходимости можно настроить более частый запуск.

Если на вашем сайте имеются дополнительные поля профилей, они также могут быть синхронизированы с помощью этого запланированного задания.

Дополнительные примечания​


В настройках формата паролей появилась возможность выбора формата Salted Crypt для аутентификации через внешнюю базу данных:

dbsaltedcrypt.png

Изменения в обработке паролей:

  • Сравнение паролей в plain text теперь всегда учитывает регистр.
  • Сравнение sha1/md5 хешей теперь всегда нечувствительно к регистру (поскольку они представляют шестнадцатеричные значения).

Особенности работы с внешней БД:
Часть правил для пользователей типа "Upload" применяется к внешней БД, но не все поля из "Upload users" доступны для внешней аутентификации. Доступны только поля, указанные в разделе маппинга данных на странице администрирования подключения к внешней БД.

Важное замечание для MySQL:
Для полей профиля с типом "дата" YooLearn сохраняет значения в поле bigint (как UNIX-timestamp). Использование полей timestamp или datetime не поддерживается.


Оригинал: https://docs.moodle.org/502/en/External_database_authentication