Add LTI 1.3 support (as Tool Provider) #361
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Добавлена поддержка протокола 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