Интеграция системы управления обучением Discourse (аутентификация LTI 1.3)

Мне удалось настроить LTI в Canvas с одним важным нюансом. Вот мои шаги:

  1. Создайте ключ разработчика в Canvas. Неважно, что вы укажете в методах JWK и публичном JWK.

  2. В настройках LTI для Discourse заполните соответствующие поля.

  3. Для публичного ключа перейдите по адресу 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, чтобы оставаться актуальным.

2 лайка