Настройка LTI 1.3 (Moodle)
Применимо к версии 1.5.0+
После подключения преподаватели открывают ИСПУМ прямо из курса Moodle — без отдельного входа, а оценки автоматически возвращаются в журнал Moodle. Настройка занимает 5–10 минут и выполняется самой ИТ-службой университета, без участия ИСПУМ.
Кто и где настраивает
Только root-администратор организации (роль «Администратор организации» на
корневом подразделении). Раздел находится в Настройки → Организация → LTI
(/institution/lti). Как и приглашение преподавателей, эта настройка
намеренно не делегируется на уровень кафедры или института — она затрагивает
весь университет сразу.
Вам также понадобится доступ администратора сайта в Moodle: Site Administration → Plugins → Activity modules → External tool → Manage tools.
Способ 1 — динамическая регистрация (рекомендуется)
Работает, если ваш Moodle поддерживает LTI 1.3 Advantage (Moodle 3.9+). Быстрее ручного заполнения полей, потому что обмен всеми URL и идентификаторами происходит автоматически в обе стороны.
- В ИСПУМ, в блоке «Динамическая регистрация (рекомендуется)», нажмите «Получить ссылку регистрации» и скопируйте появившуюся ссылку.
- В Moodle: Site Administration → Plugins → External tool → Manage tools → Configure a tool → Dynamic registration — вставьте туда ссылку.
- Moodle обратится по этой ссылке к ИСПУМ, получит перечень возможностей инструмента (URL запуска, JWKS, поддерживаемые типы сообщений) и покажет экран подтверждения. Подтвердите регистрацию.
- ИСПУМ получит обратно
client_idиdeployment_idот Moodle и сохранит их автоматически — поля ниже на странице заполнятся сами, включая галочку «Включить LTI для этой организации». - Проверьте результат кнопкой «Проверить соединение» — она обращается к JWKS-адресу Moodle и подтверждает, что ключи доступны.
Ссылка регистрации одноразовая: если регистрация не удалась, вернитесь в ИСПУМ и получите новую.
Способ 2 — ручная регистрация
Используйте, если динамическая регистрация недоступна или не сработала. Здесь обмен данными идёт вручную в обе стороны.
Шаг 1 — создайте инструмент в Moodle
Site Administration → Plugins → External tool → Manage tools → configure a tool manually, тип LTI Version: LTI 1.3. Возьмите три значения из блока «Данные для ручной регистрации инструмента в Moodle» на странице ИСПУМ и вставьте их в соответствующие поля Moodle:
| Поле в ИСПУМ | Что это | Куда в Moodle |
|---|---|---|
| Redirect URI (Launch URL) | адрес, на который Moodle отправляет запуск и данные после входа | Tool URL / Redirection URI(s) |
| URL входа (OIDC) | адрес, с которого начинается вход | Initiate Login URL |
| Public JWKS URL | публичные ключи ИСПУМ, которыми Moodle проверяет подпись | Public Keyset URL |
Сохраните инструмент в Moodle — он выдаст Client ID (и иногда отдельный Deployment ID — оба видны в списке инструментов Moodle).
Шаг 2 — впишите данные Moodle в ИСПУМ
На странице Настройки → Организация → LTI заполните:
- Issuer платформы — адрес вашего Moodle (например
https://moodle.example.ru). - Client ID — значение, которое Moodle выдал на шаге 1.
- Deployment ID (по одному на строку) — если в вашем университете инструмент активирован в нескольких курсах/категориях под разными deployment ID, добавьте их все; запуск с незарегистрированным deployment ID будет отклонён.
- OIDC Auth Login URL платформы и JWKS URL платформы — стандартные эндпоинты вашего Moodle; в самом Moodle они обычно указаны на странице настроек инструмента или в документации вашей версии Moodle.
- Token URL платформы — нужен только для автоматической передачи оценок и списка студентов (AGS/NRPS); базовый запуск работает и без него.
Поставьте галочку «Включить LTI для этой организации» и нажмите «Сохранить». Если каких-то полей не хватает, страница явно скажет: «Заполните все поля выше и сохраните, чтобы LTI-запуски принимались».
Обязательное условие: разрешите передачу email
ИСПУМ определяет преподавателя и студента по email из LTI-запуска — без него запуск отклоняется. В настройках инструмента в Moodle (Privacy → Share launcher's name/email with tool) убедитесь, что передача email разрешена. Это самая частая причина, по которой первый запуск не проходит.
Сопоставление курсов (необязательно)
Курс в ИСПУМ создаётся автоматически при первом запуске преподавателя из курса Moodle — сопоставление ничего не блокирует. Раздел «Сопоставление курсов» на той же странице нужен только для сводной отчётности по институту: если вы хотите видеть курсы из Moodle в разрезе кафедр/институтов на уровне организации, свяжите каждый запущенный курс с разделом оргструктуры вручную.
Если один и тот же курс Moodle ведут два преподавателя, у каждого создаётся свой собственный курс в ИСПУМ — это по замыслу, не ошибка.
Как преподаватель подключает конкретное задание
Проверка работ через LTI требует, чтобы преподаватель добавил инструмент через Deep Linking, а не просто вставил ссылку на ИСПУМ вручную:
- Преподаватель добавляет в курс Moodle activity типа «External tool» → выбирает зарегистрированный инструмент ИСПУМ.
- Moodle открывает окно выбора — там преподаватель выбирает конкретное опубликованное задание из ИСПУМ.
- Только после этого шага элемент курса в Moodle привязан к заданию и доступен студентам.
Элемент, созданный в обход этого выбора (например, вручную указанным URL), работать не будет — студент получит ошибку «этот элемент курса не настроен для сдачи работ через ИСПУМ».
Журнал запусков — для диагностики
На той же странице ИСПУМ, ниже сопоставления курсов, — таблица «Журнал запусков»: последние 100 попыток запуска из Moodle, с преподавателем, ролью, курсом и статусом. Если у кого-то не получается войти, начните отсюда — код ошибки в журнале укажет на конкретную причину из таблицы ниже.
Типовые ошибки
| Код ошибки | Что произошло | Что проверить |
|---|---|---|
LTI_NOT_CONFIGURED |
LTI не включён либо конфигурация не сохранена для организации | Галочка «Включить LTI» и что все обязательные поля заполнены и сохранены |
LTI_NO_EMAIL |
В запуске нет email пользователя | Настройки конфиденциальности инструмента в Moodle — разрешите передачу email |
LTI_CLIENT_MISMATCH |
Client ID в запросе Moodle не совпадает с сохранённым в ИСПУМ | Client ID введён с опечаткой, или инструмент в Moodle пересоздавался с новым ID — обновите поле в ИСПУМ |
LTI_DEPLOYMENT_UNKNOWN |
Deployment ID запуска не значится в списке зарегистрированных | Добавьте недостающий Deployment ID (по одному на строку) в настройках ИСПУМ |
LTI_NO_CONTEXT |
В запуске отсутствует идентификатор курса | Обычно означает, что инструмент запущен не из контекста курса — проверьте, где в Moodle добавлен элемент |
LTI_NO_PUBLISHED_ASSIGNMENT |
Элемент курса создан не через выбор задания (Deep Linking) | Преподаватель должен пересоздать элемент курса через процесс выбора задания, см. раздел выше |
LTI_DEEP_LINK_FORBIDDEN |
Выбор задания запущен не преподавателем | Настройку задания должен выполнять пользователь с ролью преподавателя в Moodle |
LTI_STATE_INVALID |
Запуск просрочен или уже был использован (ссылка использована повторно, например через «Назад» в браузере) | Попросите преподавателя/студента запустить заново из Moodle |
LTI_VALIDATION_FAILED / LTI_NONCE_MISMATCH |
Подпись запуска не прошла проверку | Обычно расхождение времени на сервере Moodle или устаревший кэш ключей — повторите запуск; если повторяется, проверьте, что JWKS URL Moodle доступен извне |
LTI_DISCOVERY_FAILED / LTI_DISCOVERY_TIMEOUT (при регистрации) |
ИСПУМ не смог получить конфигурацию Moodle по ссылке динамической регистрации | Проверьте, что адрес Moodle доступен из интернета (не только из внутренней сети университета) |
LTI_REGISTRATION_REJECTED / LTI_REGISTRATION_NO_CLIENT_ID (при регистрации) |
Moodle отклонил запрос регистрации или не вернул Client ID | Повторите динамическую регистрацию; если не помогает, используйте ручной способ |
Если ошибка не из этого списка или причина не находится — напишите через форму обратной связи, приложив код ошибки и время запуска из журнала.