LTI 1.3 for Canvas

On this page, you will find detailed step-by-step guidelines to help you integrate your Canvas and Codio accounts and connect assignments between the two applications.

LTI version 1.3 improves upon version [LTI-1.1] by moving away from the use of OAuth 1.0a-style signing for authentication and towards a new security model, using OpenID Connect, signed JWTs, and OAuth2.0 workflows for authentication. As we have implemented the majority of these improvements already in Codio, we recommend using the LT1 1.1 integration instead of 1.3 unless your LMS specifically requires it, since it is much easier to set up using the Codio LTI App. For more information, see Learning Tools Interoperability Core Specification

The deep linking url is : https://apollo.codio.com/lti/resource_selection

Part 1: In Canvas - Create a Developer Key

The Canvas user who carries out these steps must be a system administrator.

In Codio:
1. Go to your organization account settings by clicking on your user name in the bottom left of your dashboard, and then selecting your organization within Organizations.

2. Select the LTI Integrations tab.

3. Scroll down to the LTI Integration 1.3 section; you should see the following fields. Keep this page open.

image1

In Canvas:
4. Select Admin -> Developer Keys

5. Click on Developer Key and select +LTI key.

image2

6. Complete the Key Name, Title and Description fields.

7. From Codio, under LTI 1.3 Integration, copy the LTI URL and paste it into the Target Link URI field in Canvas.

8. From Codio copy the Initiate Login URL and paste it into the OpenID Connect Initiation URL.

9. Copy the Redirect URL and paste it into the Canvas Redirect URI field.

image3

10. In Canvas, change JWK Method to Public JWK URL.

11. From Codio, copy the Keyset URL and paste it into the Public JWK URL field.

image4

12. Expand the LTI Advantage Services section and toggle each field on.

13. Expand the Additional Settings section

14. Type "codio.com" in both the Domain and Tool Id fields.

15. Select the Privacy level as Public.

image5

16. Scroll down to the Placements field. You can add a placement by starting to type the name and then selecting it when it appears. Placements that should be included (remove any others): Link Selection, Editor Button, Assignment Selection and Course Navigation.

image6

image7

17. Expand each of the following fields, and copy the static links below:

Link Selection
Select LtiDeepLinkingRequest
Target Link URI: https://apollo.codio.com/lti/resource_selection
Icon Url:
https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png

image8

Editor button
Target Link URI: https://apollo.codio.com/lti/editor_button
Icon Url:
https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png

image9

Assignment Selection
Select LtiDeepLinkingRequest
Target Link URI: https://apollo.codio.com/lti/resource_selection
Icon Url:
https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png

image10

Course Navigation
Target Link URI: https://apollo.codio.com/lti/course_navigation
Icon Url:
https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png
18. Press Save in bottom right corner

19. You will be back at the list of developer keys.

20. Update State to: on

21. Copy the number in the Details column (for use in Parts 2 and 3)

image11

Part 2: Create an application in your course in Canvas

In Canvas:

1. Select an existing course or create a new course.
Optional: create a test course called Codio Test Course before you do it with a production course.

2. In your course, go to Settings → Apps → + App

3. In Configuration Type, select: By Client ID

4. Paste number you copied in Part 1 into Client ID field

5. Submit → Install

../../../_images/addlti13app.png
6. After you click install, click the gear icon by the tool you just created

7. Select Deployment ID

8. Copy the ID displayed, it will be used in Part 3
../../../_images/canvasdeployment.png

Part 3: Create an LTI configuration in Codio

In Codio:

1. In your org → LTI Integrations
- Scroll down to LTI 1.3 Configurations
- Click Add Integration

../../../_images/addlti13integration.png
Updating the fields in Platform Information

Note: replace [CANVAS DOMAIN] with your institution’s domain in steps 5-7

2. Platform ID: https://canvas.instructure.com


3. Client ID: copied from Developer Keys at end of Part 1

4. Deployment Id: copied in Part 2

5. Public Keyset URL: https://[CANVAS DOMAIN]/api/lti/security/jwks


6. Access Token URL: https://[CANVAS DOMAIN]/login/oauth2/token


7. Authentication Request URL: https://[CANVAS DOMAIN]/api/lti/authorize_redirect


8. Click Create
../../../_images/canvasplatform25.png

Part 4: Adding a resource

In Canvas:

1. Go to Assignments in your course, select Assignment

. 2. Give your assignment a name.

3. Select a number of points.

4. Under Submission Type, select External Tool.

5. Select Find.

Note: Do not use LTI Integration URL to assign an assignment

6. Select the tool created in Part 1.
- Choose the Course and Assignment to connect to
- Recommended: Select Load in a new tab

7. Select Save at bottom of the page
../../../_images/createassignment.png

Note: these settings are not final and can be edited in Canvas at a later time.

Part 5: Customizing Iframe Width/Height

You can customize the width and height of the Codio window embedded in the Canvas. The default width is 1000 pixels and height is 800 pixels, change those values if you need and press Save Changes.

Iframe Width and Height settings

Important Notes on Course Copy in Canvas:

  • In Canvas, once you copy the course, you must enter a unique SIS ID in Course Settings.
    • An SIS ID that is different from the Blueprint Course (Canvas’ Parent Course) is required for Codio to spawn a corresponding child course.

    • An SIS ID is optional for the Blueprint Course.

Connecting/mapping assignments in Canvas

There are also a number of ways you can connect/map assignments. Check out the following videos to see the option that best suits you.

How to connect assignment by lti integration url of assignment

How to connect assignment by resource selection preview

How to connect assignment by endpoint url

How to connect assignment with custom param

If you require any assistance, please don’t hesitate to contact us