Мне удалось настроить LTI в Canvas с одним важным нюансом. Вот мои шаги:
-
Создайте ключ разработчика в Canvas. Неважно, что вы укажете в методах JWK и публичном JWK.
-
В настройках LTI для Discourse заполните соответствующие поля.
-
Для публичного ключа перейдите по адресу https://<your_canvas_url>/api/lti/security/jwks и скопируйте второй ключ. Затем откройте https://8gwifi.org/jwkconvertfunctions.jsp, вставьте скопированное значение и выполните преобразование. Далее скопируйте текст между
-----BEGIN/END PUBLIC KEY-----и вставьте его в поле Публичный ключ платформы LTI в настройках LTI для Discourse. После этого сохраните изменения.
Теперь о нюансе: ключи JWK, генерируемые Canvas, периодически обновляются, судя по всему, раз в месяц. Как только второй ключ изменится, LTI перестанет работать, и вам придётся снова выполнить шаг 3, чтобы заменить его на новый.
Плагин LTI для Discourse должен поддерживать ссылку на публичный JWK, чтобы оставаться актуальным.

