Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

IMS Global

Open edX

If testing on devstack:

  1. Start ngrok: “ngrok http 18000”. Note the host name it assigns you. For example, “01878d6ccf1c.ngrok.io”

  2. Update some settings:

    1. LMS_ROOT_URL should match the hostname ngrok assigned you. I do this by setting it in lms/envs/private.py:
      LMS_ROOT_URL = “https://01878d6ccf1c.ngrok.io”
      The setting should not have a trailing slash.

    2. DCS_SESSION_COOKIE_SAMESITE = "None"
      This is the usual production setting. Devstacks have “Lax” to make it easier to run under http. Since we are running under https, we can use None, which is required for the iframe to get the session cookie.

    3. In /edx/etc/lms.yml and /edx/etc/studio.yml, set FEATURES.LTI_1P3_ENABLED: true.

  3. Start devstack

Start here: https://ltiadvantagevalidator.imsglobal.org/ltiadv/certification.html

Make an LTI component in Studio, using the values from the IMS page.

  1. In Studio:

    1. In the course’s Advanced Settings, make sure "lti_consumer" is in the Advanced Module List.

    2. Add New Component

    3. Advanced - LTI Consumer

    4. Edit the component

      1. LTI Version: LTI 1.3

      2. LTI 1.3 Tool Launch URL: copy from IMS “Tool OIDC Launch Redirect URL”

      3. LTI 1.3 OIDC URL: copy from IMS “OIDC Login Initiation URL”

      4. LTI 1.3 Tool Public Key: we’ll come back to this.

      5. Deep linking: set to True.

      6. LTI Advantage Deep Linking Launch URL: copy from IMS “Tool OIDC Redirect Deep Linking URL”.

      7. LTI Assignment and Grades Service: set to “programmatic”.

      8. Set Scored to True.

      9. Save the component

    5. Publish the unit

Copy values from the info displayed in Studio to the IMS form.

Make sure the hostnames are correct for your ngrok configuration, you may need to edit them. The input fields are short for our long URLs, make sure the full URL is pasted in each.

  1. Testing iss Value: should be exactly the same as your LMS_ROOT_URL setting.

  2. OIDC Auth URL: copy from the “OIDC Callback URL” in the Studio display.

  3. Platform Well-Known/JWKS URL: copy from the “Keyset URL” in the Studio display.

  4. OAuth2 Access Token URL: copy from the “OAuth Token URL” in the Studio display.

More configuration:

  1. Client ID: copy from the “Client” value in the Studio display

  2. Select We Accept Tool Public Keys.

Edit the LTI component again.

Copy “The Tool’s Public Key” from IMS and paste it in LTI 1.3 Tool Public Key

Save the component.

Enter the Deployment ID from the Studio display. (It’s always “1”):

Publish the whole course.

View Live Version to open the LTI component in the LMS. Be sure you are logged - in to the ngrok host name as a student (verified@example.com), and launch the component under that host name.

The LMS will display:

{ "status" : "Payload Received" }

Click “Continue” in the IMS window.

Now will have a series of screens that look like this:

Click “Test Options” to display the options. Leave user as Student.

Click “Submit Test”

You should get a passing test that looks like this:

Click “Confirm Results” to record the success.

Use the “Next Test” link in the header to move to the next test if it doesn’t advance automatically. There are nine different screens to get through.

The JWT will expire in 5 minutes. If you get a message about the token expiring, it probably means you took longer than 5 minutes to get through the tests.

Launch the LTI component again.

Run through the nine test screens again.

Sign out of the LMS, and log in as an instructor (staff@example.com).

Launch the LTI component.

Run through the nine test screens again.

Launch the LTI component as an instructor again.

Run through the nine test screens again.

You will be asked to do a Deep Linking launch.

NOT SURE BEYOND HERE

Go to Studio. Change “Deep linking” to True.

For “LTI Advantage Deep Linking Launch URL”, use the “Tool OIDC Redirect Deep Linking URL” value from IMS.

The tool in Studio will say “The Deep Linking configuration stored is presented below: []”.Click through the configuration screens until you get to “Acquiring Deep Linking Payload for Testing”.

Click the “Deep In Studio as staff, visit the component and click “Deep Linking Launch - Configure tool” link in Studio.tool” to do a deep linking launch.

A new browser tab will open, and will flash through some pages, ending at:

Image Added