Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-67301

LTI 1.3 Dynamic Registration

    XMLWordPrintable

    Details

    • Testing Instructions:
      Hide

      In this test, we deploy an LTI 1.3 test tool using dynamic registration, activate it and then verify it does function.

      pre-requisite

      1. LTI Advantage requires your site to be reachable from the internet. If not, Install ngrok to expose your moodle setup externally. Refer here for additional guidelines
      2. Have a course with an instructor.

      Dynamic registration

      1. As site administrator, navigate to Site Admin > Plugins > Activity Modules > External Tool > Manage Tools
      2. In the box that says tool url enter: https://robotest.theedtech.dev/register
      3. Click the Add LTI Advantage button
      4. The test tool should open with a trace of the communication with Moodle, all should be green (thumbs up).
      5. Click the close button - the test app UI should disappear and the list of tools refreshing
      6. Verify the Robotest app has been added and is not yet activated
      7. Click the Activate button

      Verify dynamically installed tool is functional

      1. Enter a course as instructor
      2. Turn editing on and add activity>external tool
      3. In the drop box of tools, select Robotest
      4. Then verify Select Content is enabled, click on it
      5. Verify the tool UI opens. Select either a graded or not graded item.
      6. Verify you are returned to the external tool interface successfully
      7. Click Save and Display
      8. Verify the tool shows and no errors are reported.

      Adding legacy tools

      1. Set up another Moodle site instance (let's call this M2) that can be seen by your test server (let's call this M1). Either expose M2 via ngrok as well or set M1's wwwroot to a local URL/IP just like this M2's).
      2. Create a course with a page resource. Let's call this "LTI Page"
      3. Publish this page resource as an LTI tool.

      Via Cartridge registration (LTI 1.1)

      1. On M2's "Published tools" page, copy the Cartridge URL of LTI Page.
      2. On M1's Add tool page, paste the cartridge URL and press "Add Legacy LTI"
      3. Paste the Secret from M2's Published tools page into the Secret text box. You may leave the "Consumer key" blank.
      4. Save the changes.
      5. Confirm that "LTI Page" from M2 has now appeared under the Tools list.

      Via tool proxy registration (LTI 2.0)

      1. On the tools list in M1, delete LTI Page.
      2. On M2's Published tools page, copy LTI Page's "Registration URL"
      3. Paste the registration URL into the tool URL field in M1's Add tool page.
      4. Press "Add Legacy LTI"
      5. Confirm that you get a successful registration.
      6. Press continue
      7. Press Yes to activate the tool
      8. Confirm that LTI Page has now been added into the tools list.
      Show
      In this test, we deploy an LTI 1.3 test tool using dynamic registration, activate it and then verify it does function. pre-requisite LTI Advantage requires your site to be reachable from the internet. If not, Install ngrok to expose your moodle setup externally. Refer here for additional guidelines Have a course with an instructor. Dynamic registration As site administrator, navigate to Site Admin > Plugins > Activity Modules > External Tool > Manage Tools In the box that says tool url enter: https://robotest.theedtech.dev/register Click the Add LTI Advantage button The test tool should open with a trace of the communication with Moodle, all should be green (thumbs up). Click the close button - the test app UI should disappear and the list of tools refreshing Verify the Robotest app has been added and is not yet activated Click the Activate button Verify dynamically installed tool is functional Enter a course as instructor Turn editing on and add activity>external tool In the drop box of tools, select Robotest Then verify Select Content is enabled, click on it Verify the tool UI opens. Select either a graded or not graded item. Verify you are returned to the external tool interface successfully Click Save and Display Verify the tool shows and no errors are reported. Adding legacy tools Set up another Moodle site instance (let's call this M2) that can be seen by your test server (let's call this M1). Either expose M2 via ngrok as well or set M1's wwwroot to a local URL/IP just like this M2's). Create a course with a page resource. Let's call this " LTI Page " Publish this page resource as an LTI tool. Via Cartridge registration (LTI 1.1) On M2's " Published tools " page, copy the Cartridge URL of LTI Page. On M1's Add tool page, paste the cartridge URL and press " Add Legacy LTI " Paste the Secret from M2's Published tools page into the Secret text box. You may leave the " Consumer key " blank. Save the changes. Confirm that " LTI Page " from M2 has now appeared under the Tools list. Via tool proxy registration (LTI 2.0) On the tools list in M1, delete LTI Page. On M2's Published tools page, copy LTI Page's " Registration URL " Paste the registration URL into the tool URL field in M1's Add tool page. Press " Add Legacy LTI " Confirm that you get a successful registration. Press continue Press Yes to activate the tool Confirm that LTI Page has now been added into the tools list.
    • Affected Branches:
      MOODLE_310_STABLE, MOODLE_39_STABLE
    • Fixed Branches:
      MOODLE_310_STABLE
    • Pull from Repository:
    • Pull 3.10 Branch:
      MDL-67301-dynreg-squashed-310
    • Pull Master Branch:
      MDL-67301-dynreg-squashed

      Description

      The LTI 1.3 offers a more secure asymmetric integration compared to LTI 1.1 but, as result, makes it sensibly more difficult to configure as data needs to be exchanged both ways.

      In addition LTI 2.0 is deprecated and an integration dead-end. However it did provide a mean to autoconfigure LTI tools (paste URL and click add button).

      The aim of this ticket is to re-use that UI but change the implementation to rely on the LTI dynamic registration specification drafted by IMS but largely based on OpenID Connect Discovery and Dynamic Registration specifications.

      See https://docs.google.com/document/d/1i5Kg1GuKAPktXvA95aMJVd1Hy03_tjhOaUYjRYPlAow/edit?usp=sharing for design doc around this feature.

      Flow would resume as this:

      1. Tool provides registration URL
        1. Admin pastes the link and click Add Tool
      2. IFrame is open and set to the URL enriched with:
        1. discovery url
        2. token
      3. Tool does what it needs to do then:
        1. Calls the discovery url
        2. Calls the registration url contained in the discovery profile using token
        3. Moodle creates the new application and returns the generated client_id
      4. Tool is created Pending
        1. User clicks Activate to make it available for link creation

       

       

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              claudevervoort Claude Vervoort
              Reporter:
              claudevervoort Claude Vervoort
              Peer reviewer:
              Jake Dallimore
              Integrator:
              Jun Pataleta
              Tester:
              Janelle Barcega
              Participants:
              Component watchers:
              Adrian Greeve, Jake Dallimore, Mathew May, Mihail Geshoski, Peter Dias
              Votes:
              2 Vote for this issue
              Watchers:
              13 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Fix Release Date:
                9/Nov/20

                  Time Tracking

                  Estimated:
                  Original Estimate - 0 minutes
                  0m
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 1 day, 7 hours
                  1d 7h