Discourse Learning Management System Integration (LTI 1.3 Authentication)

I was able to get the LTI to work in Canvas with one caveat. Here are my steps:

  1. Create a Developer Key in Canvas. It doesn’t matter what you put in the JWK Method and Public JWK

  2. In Discourse LTI settings, fill in your settings

  3. For the public key, you can navigate to https://<your_canvas_url>/api/lti/security/jwks and copy the second key. Then you can go to https://8gwifi.org/jwkconvertfunctions.jsp and paste it in there and convert. Then copy the text between -----BEGIN/END PUBLIC KEY----- and paste that into the Lti platform public key in the Discourse LTI settings. Then save.

Here’s the caveat. Those JWKs that Canvas generate are rotated, seemingly monthly. Once that second key changes, the LTI will break and you’ll need to go replace it with the new one following Step 3.

Discourse LTI plugin will have to support a Public JWK URL for it to stay current.

2 Likes