Интеграция с Moodle
1. Настройка Moodle
Интеграция системы прокторинга ProctorEdu с Moodle осуществляется по стандарту IMS LTI. Поддерживаются версии Moodle 3.x и выше.
2. SSL-сертификат
На веб-сервере Moodle должен быть установлен валидный SSL-сертификат, чтобы страницы системы Moodle открывались по протоколу HTTPS. Проверить валидность сертификата на сервере можно с помощью сервиса SSLChecker.com. Это требование политики безопасности браузера, которая не позволяет получить доступ к камере и микрофону по незащищенному протоколу HTTP. Можно выпустить бесплатный SSL-сертификат Let’s Encrypt.
3. Версия Moodle
Начиная с версии Chrome 80 (касается всех браузеров на движке Chromium) ужесточается политика безопасности браузера SameSite и по умолчанию при открытии страницы в IFRAME файлы cookies не передаются. В связи с этим нужно, чтобы версия Moodle была не ниже 3.5.11, 3.6.9, 3.7.5, 3.8.2, т.к. начиная только с этих версий внесено соответствующее исправление MDL-67175. Уже настроенную сборку последней версии Moodle можно получить на странице ресурса Bitnami.
Если обновить версию Moodle нет возможности, то требуется добавить в файл ".htaccess" (в корневом каталоге Moodle на сервере) блок настроек, меняющих заголовки ответа веб-сервера через модуль mod_headers для Apache:
Если обновить версию Moodle нет возможности, то требуется добавить в файл ".htaccess" (в корневом каталоге Moodle на сервере) блок настроек, меняющих заголовки ответа веб-сервера через модуль mod_headers для Apache:
<!--.htaccess-->
<IfModule headers_module>
Header edit Set-Cookie (.*) "$1; Secure; SameSite=none"
</IfModule>Модуль "headers" должен быть включен в Apache, для этого можно использовать команду "a2enmod headers".
4. Настройка сервера
Иногда при передаче оценки по прокторингу в Moodle через LTI Outcome Service может возникать ошибка "Message signature not valid" или "Missing or invalid consumer key or access token". Это ошибка является следствием неправильной настройки сервера.
Важно, чтобы время на сервере Moodle было выставлено правильно, иначе авторизация OAuth в LTI не будет работать.
Данная ошибка также может являться следствием отсутствия возможности прочитать заголовок "Authorization" в PHP. Чтобы это исправить, нужно добавить следующее правило в конфигурационный файл Apache в секцию, связанную с Moodle:
Важно, чтобы время на сервере Moodle было выставлено правильно, иначе авторизация OAuth в LTI не будет работать.
Данная ошибка также может являться следствием отсутствия возможности прочитать заголовок "Authorization" в PHP. Чтобы это исправить, нужно добавить следующее правило в конфигурационный файл Apache в секцию, связанную с Moodle:
<!--httpd.conf-->
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1Если это правило не сработало, то на форуме Moodle рекомендуют добавить в файл ".htaccess" (в корневом каталоге Moodle на сервере) следующее правило mod_rewrite для Apache:
<!--.htaccess-->
<IfModule rewrite_module>
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.+)
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>Модуль "rewrite" должен быть включен в Apache, для этого можно использовать команду "a2enmod rewrite". А директория Moodle должна поддерживать переопределение параметров из файла .htaccess:
<!--httpd.conf-->
<Directory />
AllowOverride All
Options FollowSymLinks
</Directory>
5. Внедрение во фрейм
Чтобы заработало отображение страницы Moodle во фрейме системы прокторинга, под пользователем с ролью "Администратор" нужно включить опцию "Администрирование" → "Основные" → "Безопасность" → "Безопасность HTTP" → "Разрешить внедрение во фрейм". А также необходимо включить опцию "Администрирование" → "Безопасность" → "Безопасность HTTP" → "Устанавливать поле «Secure»":
Если этот параметр не включен, то в IFRAME под прокторингом страница теста не сможет корректно отобразится.
Сейчас эта галочка стоит в системе по дефолту, но проверить ее на всякий случай можно.
Сейчас эта галочка стоит в системе по дефолту, но проверить ее на всякий случай можно.
6. Настройка внешнего инструмента
- Откройте вкладку Администрирование ➔ Плагины
2. Выберите в открытой вкладке из списка "Модули элементов курса" ➔ "Внешний инструмент" ➔ "Управление инструментами", откроется такое окно:
3. Нажмите на "настроить инструмент вручную", и откроется вот такое окно:
4. В окне заполни:
5. Обязательно сохраните изменения.
Ваш инструмент появится среди других используемых на сервере.
Остальные настройки этого инструмента производятся уже на странице курса, где там вы прикрепляете элемент к конкретному тесту.
Часто плагины Moodle слетают. В подобном случае чаще проще пересоздать плагин заново, чем пытаться искать ошибку.
Часто плагины Moodle слетают. В подобном случае чаще проще пересоздать плагин заново, чем пытаться искать ошибку.
7. Настройка элементов курса
1. Зайдите во вкладку “Мои курсы”:
2. Активируйте "Режим редактирования" в правом верхнем углу, чтобы изменить содержание курса
3.
Откроется вот такая панель:
4.
5. Вставьте "Нет" в настройках теста в разделе "Дополнительные ограничения на попытки" → "Безопасность браузера".
Если этого не сделать, Moodle будет пытаться открыть тест в новом окне. Это поведение блокируется в IFRAME, а значит участник не сможет увидеть тест.
Если этого не сделать, Moodle будет пытаться открыть тест в новом окне. Это поведение блокируется в IFRAME, а значит участник не сможет увидеть тест.
6. Получите ссылку на тестовый элемент
a. Найдите в курсе тестовый элемент
b. Нажмите на него правой кнопкой мыши
c. Выберите "Копировать адрес ссылки"
Ссылка понадобится при настройке элемента прокторинга
a. Найдите в курсе тестовый элемент
b. Нажмите на него правой кнопкой мыши
c. Выберите "Копировать адрес ссылки"
Ссылка понадобится при настройке элемента прокторинга
7. Cкройте секцию с тестом от студентов и выберите опцию "сделать доступным, но не показывать на странице курса"
8. Добавьте элемент прокторинга в отдельную секцию. Для этого кликните "Все", а затем найдите и выберите свой преднастроенный элемент прокторинга в списке.
Добавленный преднастроенный элемент будет выглядеть схожим образом:
9. Откройте настройки элемента и вставьте ссылку в окно "Пользовательские параметры", подписав перед ней URL=
Кроме этого параметра вы также можете добавить сюда шаблон и прокторов.
Дефолтный шаблон при его наличии на сервере подтянется в параметры автоматически, но добавить его сюда на всякий случай не повредит.
Через параметр "members" можно управлять назначением прокторов на сеансы тремя способами:
Через параметр "members" можно управлять назначением прокторов на сеансы тремя способами:
Обязательно сохраните изменения.
9. Настройте ограничение доступа к самому тесту по оценке прокторинга. Для этого:
9. Настройте ограничение доступа к самому тесту по оценке прокторинга. Для этого:
- Разрешите элементу прокторинга добавлять оценки в ваш тест:
- Вернитесь в настройки теста, разверните вкладку "Ограничение доступа" и в графе "Оценка" выберите свой элемент прокторинга
- Проставьте галочку в "должна быть меньше" и пропишите 0.1 в свободном поле
- Сохраните изменения
- Вернитесь к курсу. Теперь в секции с тестом появился замочек и надпись "Недоступно, пока не выполнено: Вы получили меньше необходимой оценки"
Если эту настройку пропустить, студент сможет найти ссылку на тест в своем расписании и пройти тест по прямой ссылке без прокторинга.
Теперь при переходе по элементу прокторинга участник приступит к выполнению связанного тестового элемента по процедуре прокторинга, а преподаватель или администратор попадут в интерфейс проктора, где получат доступ ко всем сеансам, которые были созданы при переходе по этому элементу.
После завершения сеанса прокторинга в Moodle будет передана оценка за прокторинг от 0 до 1. Если сеанс оценивается проктором, то положительное заключения соответствует оценке 1, а отрицательное — 0. Результаты прокторинга по каждому студенту возвращаются в журнал оценок Moodle (раздел "Оценки").
10. Настройте дополнительные попытки (и в Moodle, и в системе прокторинга)
Для выдачи участнику нескольких попыток сдать тест с прокторингом:
Если выбрать вариант "Не ограничено", участник сможет пройти тест в Moodle сколько угодно раз. На скриншоте ниже участник может пройти тест Moodle только один раз:
Теперь при переходе по элементу прокторинга участник приступит к выполнению связанного тестового элемента по процедуре прокторинга, а преподаватель или администратор попадут в интерфейс проктора, где получат доступ ко всем сеансам, которые были созданы при переходе по этому элементу.
После завершения сеанса прокторинга в Moodle будет передана оценка за прокторинг от 0 до 1. Если сеанс оценивается проктором, то положительное заключения соответствует оценке 1, а отрицательное — 0. Результаты прокторинга по каждому студенту возвращаются в журнал оценок Moodle (раздел "Оценки").
10. Настройте дополнительные попытки (и в Moodle, и в системе прокторинга)
Для выдачи участнику нескольких попыток сдать тест с прокторингом:
- Со стороны Moodle — измените количество попыток на нужное. Для этого перейдите в настройки тестового элемента и укажите количество попыток в поле "Настройки" → "Оценка" → "Количество попыток".
Если выбрать вариант "Не ограничено", участник сможет пройти тест в Moodle сколько угодно раз. На скриншоте ниже участник может пройти тест Moodle только один раз:
- Со стороны системы прокторинга под администратором установите в шаблоне сеанса количество дополнительных попыток. Если количество попыток не указано, то у участника только одна попытка пройти сеанс прокторинга. На скриншоте ниже у сеанса всего три попытки (одна основная и две дополнительных):
Такая настройка необходима как со стороны Moodle, так и со стороны системы прокторинга. Однако если в Moodle для теста количество попыток не ограничено, то ограничить количество попыток прохождения сеанса можно только со стороны прокторинга.
Если конкретному участнику потребовалось больше попыток, чем было выставлено в шаблоне сеанса прокторинга, то изменение количества попыток делай не в шаблоне, а в параметрах конкретного сеанса данного участника. Все изменения в шаблоне применяются только для вновь создаваемых сеансов и не распространяются на уже созданные ранее сеансы.
Есть три способа разрешить участнику пройти сеанс прокторинга повторно:
Если конкретному участнику потребовалось больше попыток, чем было выставлено в шаблоне сеанса прокторинга, то изменение количества попыток делай не в шаблоне, а в параметрах конкретного сеанса данного участника. Все изменения в шаблоне применяются только для вновь создаваемых сеансов и не распространяются на уже созданные ранее сеансы.
Есть три способа разрешить участнику пройти сеанс прокторинга повторно:
- Добавить дополнительные попытки в сеансе;
- Поменять идентификатор сеанса (или сгенерировать случайный);
- Удалить сеанс.
8. Настройка автозавершения
В момент инициализации сеанса из СДО по протоколу LTI на сервер прокторинга отправляется запрос.
Cервер прокторинга в соответствии с полученной информацией:
Автоматическое завершение сеанса — это добавление на кнопку "Завершить тест", которая высвечивается у студента по окончание теста, скрипта, который отслеживает переход студента на страницу просмотра попытки после завершения теста. Скрипт добавляется перед закрывающим тегом .
Скрипт контролирует, что при переходе на какую-то ссылку, у которой путь заканчивается на странице просмотра попытки, (так она выглядит в нашем коде: mod/quiz/review.php или mod/assign/view) срабатывает супервайзор "стоп" — supervisor.stop(), то есть сеанс прокторинга на сервере завершается.
Для настройки автозавершения:
1. Перейдите в раздел Администрирование ➔ Внешний вид ➔ Дополнительный HTML
Cервер прокторинга в соответствии с полученной информацией:
- генерирует сеанс,
- авторизует пользователя на сервере прокторинга,
- возвращает пользователя на ту страницу, с которой он пришел.
Автоматическое завершение сеанса — это добавление на кнопку "Завершить тест", которая высвечивается у студента по окончание теста, скрипта, который отслеживает переход студента на страницу просмотра попытки после завершения теста. Скрипт добавляется перед закрывающим тегом .
Скрипт контролирует, что при переходе на какую-то ссылку, у которой путь заканчивается на странице просмотра попытки, (так она выглядит в нашем коде: mod/quiz/review.php или mod/assign/view) срабатывает супервайзор "стоп" — supervisor.stop(), то есть сеанс прокторинга на сервере завершается.
Для настройки автозавершения:
1. Перейдите в раздел Администрирование ➔ Внешний вид ➔ Дополнительный HTML
2. Добавьте этот код перед закрывающим тегом "BODY"
<!--HTML-->
<script src="//demo.proctoring.online/sdk/supervisor.js" data-supervisor="start"></script>
<script>
if (window.supervisor) {
supervisor.on('load', function (iframe) {
var pathname = iframe.contentWindow.location.pathname;
var search = iframe.contentWindow.location.search;
if (
(pathname === '/mod/quiz/review.php') ||
(pathname === '/mod/assign/view.php' && search.includes('action=view'))
) {
supervisor.stop()
.then(function () {
return supervisor.logout({ redirect: true });
})
.catch(function (err) {
alert(err.message);
location.href = '/';
});
}
});
}
</script>
3. Измените настройку внешнего инструмента, добавив параметр "redirect" в базовый URL-адрес, чтобы получилось следующее:
https://demo.proctoring.online/api/auth/lti?redirect=https://your-moodle-domain/
demo.proctoring.online — домен вашего сервера прокторинга, your-moodle-domain — домен вашего сервера Moodle
В сущности, редирект может переадресовывать на любой скрипт домашней страницы студента, который вы зададите.
Ссылка может отличаться в разных версиях Moodle, универсальной нет. При неверной ссылке студента редиректит на страницу по умолчанию, токен пропадает, и сеанс не запускается. В таком случае стоит проверить, какая ссылка указана в базовом url в настройках внешнего инструмента.
Автоматическое завершение прокторинга будет происходить в момент открытия страницы просмотра попытки после завершения теста.
Cложность бывает в том, что сервер не может попасть на страницу с просмотром попыток со страницы, на которую он редиректится.
Как правило это решается перебором:
a. Сначала пробуйте базовую ссылку https://demo.proctoring.online/api/auth/lti?redirect=https://your-moodle-domain/, где demo.proctoring.online — домен вашего сервера прокторинга, your-moodle-domain — домен вашего сервера Moodle.
b. Второй вариант https://demo.proctoring.online/api/auth/lti?redirect=https://your-moodle-domain/my/
c. Если не помогает, попробуйте https://demo.proctoring.online/api/auth/lti?redirect=https://your-moodle-domain/my/courses.php
d. Если вообще никакая ссылка не помогла, напишите в техподдержку
4. Автоматическое завершение прокторинга происходит в момент открытия страницы просмотра попытки после завершения теста, эту страницу нужно включить в настройках теста вот таким образом (обратите внимание: галочка только одна, на слове "попытка"):
https://demo.proctoring.online/api/auth/lti?redirect=https://your-moodle-domain/
demo.proctoring.online — домен вашего сервера прокторинга, your-moodle-domain — домен вашего сервера Moodle
В сущности, редирект может переадресовывать на любой скрипт домашней страницы студента, который вы зададите.
Ссылка может отличаться в разных версиях Moodle, универсальной нет. При неверной ссылке студента редиректит на страницу по умолчанию, токен пропадает, и сеанс не запускается. В таком случае стоит проверить, какая ссылка указана в базовом url в настройках внешнего инструмента.
Автоматическое завершение прокторинга будет происходить в момент открытия страницы просмотра попытки после завершения теста.
Cложность бывает в том, что сервер не может попасть на страницу с просмотром попыток со страницы, на которую он редиректится.
Как правило это решается перебором:
a. Сначала пробуйте базовую ссылку https://demo.proctoring.online/api/auth/lti?redirect=https://your-moodle-domain/, где demo.proctoring.online — домен вашего сервера прокторинга, your-moodle-domain — домен вашего сервера Moodle.
b. Второй вариант https://demo.proctoring.online/api/auth/lti?redirect=https://your-moodle-domain/my/
c. Если не помогает, попробуйте https://demo.proctoring.online/api/auth/lti?redirect=https://your-moodle-domain/my/courses.php
d. Если вообще никакая ссылка не помогла, напишите в техподдержку
4. Автоматическое завершение прокторинга происходит в момент открытия страницы просмотра попытки после завершения теста, эту страницу нужно включить в настройках теста вот таким образом (обратите внимание: галочка только одна, на слове "попытка"):
Когда вы выполните эту настройку, после авторизации пользователь будет перенаправлен обратно на страницу Moodle, где запустится прокторинг и в IFRAME откроется связанный с прокторингом тестовый элемент. После завершения теста прокторинг завершится автоматически.