Skip to content

Conversation

@gruwitdacrew
Copy link

Добавлена поддержка протокола LTI 1.3 в роли обучающего инструмента.

Весь код поддержки находится в front\src\lti

Были добавлены следующие эндпоинты:

  • /lti/login - запускает процесс OpenID Connect аутентификации и авторизации на платформе. В результате данного процесса формируется id_token с вшитой информацией и пользователе и задании и передается в контекстный запуск инструмента

  • /lti/launch - контекстный запуск инструмента (с заданием и пользователем)

  • /lti/jwks - необходим для получения открытого ключа инструмента (чтобы проверять подписи выставляемых оценок)

В папке lti есть конфиг, в котором будут находится конфигурации интеграций, с указанием необходимых протоколу данных о платформе. Сейчас там присутствует конфигурация платформы для теста от imsglobal.
Ключи нужно будет удалить из репозитория, сгенерировать новые и переместить в то место, где хранят секреты.

Также был добавлен эндпоинт для получения section, в котором создается SessionQuestion и прочие подготовительные вещи перед выдачей вопроса пользователю.

Основные источники:
https://blackboard.github.io/lti/tutorials/implementation-guide
https://github.com/dmitry-viskov/pylti1.3-flask-example
https://www.imsglobal.org/spec/lti/v1p3

@d-zaytsev
Copy link
Contributor

Я в детали не вдавался, но точно нужен public/private key прямо в репозитории? Можно файлы оставить, но текст внутри заменить на какой-то поясняющий, а не на реальный ключ

Comment on lines +28 to +29
platform = db.Column(Text, nullable=True)
platformUserId = db.Column(Text, nullable=True)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

не очень понятно что за "platform". Браузер с которого клиент заходит? Как будто нужно имя чуть понятнее. И почему platform может быть Null?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants