Настройка авторизации в системе дистанционного обучения Moodle через сервис Trusted.ID
Создание приложения в сервисе Trusted.ID для авторизации в Moodle
Для создания приложения пользователь должен быть зарегистрирован в сервисе, в данном случае в сервисе Trusted.ID. Для прохождения регистрации обратитесь к инструкции.
Авторизуемся в сервисе Trusted.ID, переходим на вкладку Мои приложения и добавляем приложение типа API, иконка которого появляется в правом нижнем углу окна.
В открывшейся форме создания приложения заполняем поля следующим образом:
- Название — произвольное значение
- URL сайта — https://<домен инсталляции moodle>
- URL контроллера авторизации — https://<домен инсталляции moodle>/admin/oauth2callback.php
- Также запоминаем сгенерированный пароль приложения или меняем его на свой. Сохраняем данную форму и запоминаем присвоенный приложению clientid.
Настройка авторизации Trusted.ID в Moodle
Связывание приложения Trusted.ID с настройками Moodle
Для настройки авторизации пользователей сервиса потребуются права администратора в системе управления обучением Moodle.
Заходим в инсталляцию Moodle с административными правами и переходим в меню по следующему пути: Администрирование — Плагины — Аутентификация и активируем плагин Oauth2 кликом по иконке в столбце Включить.
После этого переходим в раздел Службы OAuth2 (Администрирование — Сервер — Службы — OAuth2) и выбираем создание кастомного провайдера, кликнув по кнопке Custom.
Откроется основное меню создания провайдера OAuth 2.0, в котором необходимо заполнить поля:
- Название — отображаемое название сервиса авторизации (задается произвольно);
- ID пользователя — clientid приложения, созданного в сервисе Trusted.ID;
- Пароль клиента — clientsecret приложения, созданного в сервисе Trusted.ID;
- URL-адрес логотипа — путь к желаемому логотипу, которое будет отображаться рядом с названием (см. поле выше);
- Эта служба может использоваться — “Страница входа и справочные службы”;
- Области, включенные в запрос на вход — проставить значение “userprofile” (без кавычек);
- Области, включенные в запрос на вход для автономного доступа — проставить значение userprofile;
Система вернет администратора на окно со списком OAuth 2 провайдеров. Для продолжения настройки осуществляем клик по иконке эндпойнтов в строке с только что созданным провайдером.
Эндпойнты представляют из себя связанную пару по типу: ключ-значение. В открывшемся окне последовательно добавляем три эндпойнта для провайдера путем нажатия кнопки Создать новую конечную точку…, где в качестве ключа выступает название эндпойнта, а значением — URL
- authorization_endpoint — https://<домен сервиса авторизации>/idp/sso/oauth
- token_endpoint — https://<домен сервиса авторизации>/idp/sso/oauth/token
- userinfo_endpoint — https:/<домен сервиса авторизации>/trustedapp/rest/user/profile/fullinfo
Следующим этапом добавляем сопоставления полей пользователей между сервисом авторизации и Moodle (маппинги). Маппинги представлены парами, их цель, в данном случае, связать поля пользователя Trusted.ID и поля системы управления обучением. Имя внешнего поля — это имя поля в JSON-файле, передаваемом сервисом авторизации. Имя внутреннего поля — это имя поля пользователя в Moodle. Значение внутреннего поля выбирается из предустановленных, в раскрывающемся поле-списке.
Кликаем по иконке настройки маппингов и добавляем три сопоставления:
- email — email;
- givenName — firstname;
- familyName — lastname; где второй элемент в паре — имя внутреннего поля.
- В окне со списком OAuth 2 провайдеров убеждаемся, что провайдер активен: иконка глаза не перечеркнута.
Настройка отправки почты в Moodle
Дальнейшие шаги описаны исходя из предположения, что администратор Moodle только что развернул инсталляцию и настройки отправки почты еще не заполнены в системе управления обучением.
При первом заходе пользователя через сервис Trusted.ID в Moodle под него создается пользователь (при условии, что ранее пользователь с данным email отсутствовал в базе Moodle) и для активации данного профиля отправляется письмо на email, указанный у пользователя Trusted.ID.
Для отправки писем в Moodle необходимо заполнить несколько полей. Переходим в меню по пути Администрирование — Сервер — Электронная почта — Настройка исходящей почты и заполняем следующие поля:
- SMTP-серверы — в данном поле вводим полное имя smtp-сервера, включая порт через двоеточие;
- Безопасность SMTP — выбираем нужное значение из поля-списка;
- Тип аутентификации SMTP — выбираем нужное значение. В случае выбора типа аутентификации LOGIN заполняем поля Логин SMTP и Пароль SMTP. Поле Адрес для писем, не требующих ответа рекомендуется заполнить во избежание потенциальных проблем при отправке писем.
Примечания:
В случае если пользователь уже был ранее создан в Moodle и email данного пользователя совпадает с email в профиле Trusted.ID, то письмо также будет отправлено на почтовый ящик для связывания обоих профилей.
Отсутствие email в профиле Trusted.ID приведет к невозможности авторизации в Moodle, т.к. это поле является связующим для идентификации пользователя в системе.
Удаление ранее привязанного к Moodle почтового ящика в Trusted.ID и добавление нового почтового ящика приведет к созданию нового пользователя в Moodle.
Создание нового пользователя происходит и в случае, когда первый почтовый ящик сначала удалили, а потом добавили обратно, при этом есть второй почтовый ящик, который связан с сервисом.
Авторизация пользователя происходит в случае, если к первому почтовому ящику добавили второй почтовый ящик, удалили первый почтовый ящик, после чего вернули первый почтовый ящик и удалили второй почтовый ящик.