Initial call with NU LTI experts on 11-14-2013
LMS (has an LTI consumer installed) - person, class (context), role, requested resource
Avalon (LTI provider) - class-resource association (link ID and resourceID, should also store owner)
Here's a screen capture of what Canvas Instructure (the consumer) is sending to Ares (the provider) at NU:
And here is a screenshot of how to configure an LTI "external tool" in IU's Oncourse/Sakai. Of particular interest is the checkbox that gives the provider permission to retrieve an entire course roster from the consumer.
- How can an instructor easily create a link in an LMS to an Avalon item and have the link use LTI? The model seems to be one of integrating external "tools" in the list of tools rather than putting a link into a document such as a syllabus or assignment. So there would be a sidebar link to "Avalon". Or at least that's all I've seen.
It's one link per external tool. In oncourse we have four available spots for External tools. If we wanted to directly link to a video, that means we could only have four videos available and they would be listed on the sidebar. It's best to go to a custom page based off of the LTI info.
- Can Avalon just query the LMS to find out whether a given person is a member of a certain group, or what groups/roles they have in the LMS? The answer seemed to be NO yesterday.
Still no. Each member of the class has to log in via LMS for the individual user's course information is sent.
- One viable approach would seem to be putting Avalon on the tool list as an external tool. Then students would be told to look in Avalon and they could click the external tool link, which would log them into Avalon, passing along the particular course and role(s). Then Avalon could dynamically present all the content associated with that course and permitted for their role. Not a great solution. A Variations-style approach of loading rosters into Avalon groups seems more friendly, for students and for instructors (Mark's opinion). The former is easiest to implement and maintain, but does present a problem when the user logs in directly to Avalon outside of the LMS as the course and role info aren't available.
Initial investigation into LTI (Learning Tools Interoperability)
LTI is used to add external tools to an LMS like Canvas or Sakai. To add an external tool to a course, go to site setup on the sidebar then check off the box for one of the external tools. We already named one "Avalon".
It will then show up in the side bar.
Click on it and select the edit button in the upper left hand corner. We used the following settings:
note: There is also a handy debug option that shows all of the LTI info being sent before the tools starts up.
In our setup, we were running a local copy of Avalon and the URL points to an LTI landing page. The landing page receives authenticated information from the LMS about the visitor and then redirects. The visitor is now logged into Avalon.
Here is me logging into Avalon via Sakai:
The session is authenticated using OAuth and a key and secret pair so it can be an alternate way of logging into Avalon. We used OmniAuth-LTI to set up the authentication between IU's LMS and Avalon. Authenticating with LTI gives us course and user information. The most important bits of information are:
- Full name
- Email address
- Course ID
- Course Title
- Role within that course
We didn't attempt to grab the entire roster even though there is a checkbox in the external tool config for it. It appears that this is a sakai-only extension to LTI.
Instead of redirecting to the main page like in the previous screen shot it would be best if the user was redirected to their course reserve list if they are a student and if they are an instructor, they should have the ability to edit the reserve list.
Code changes required to enable this: https://github.com/avalonmediasystem/avalon/compare/feature;lti
- Can't directly link and authenticate at the same time.
- There is a warning when clicking on the tool that says there are unauthenticated scripts on the page. You have to allow the script in order to use the tool.
- The sign out button will need to be removed if the user authenticated via LTI.
- We used OmniAuth LTI to authenticate, adding it to the list of authentication providers in config/authentication.yml. Unfortunately, that adds it as an option on the normal login screen. We need to add a config option to the config/authentication.yml that allows us to hide the LTI login–it won't work unless it's through the LMS.
- When a user authenticates via LTI, will we dynamically put them in a group named after their course id? This group could then be granted red access to items in order to create a course reserves without having to store the course roster.
- How will the instructor chose videos? Do we need playlist functionality and give the class group access to that playlist? We don't want to give them access to edit an item's full permissions.
- There is an option to embed Avalon in an iframe inside the LMS. I think it's best to have a pop-out window instead.
- The LTI course/user info might be named differently per system (Sakai vs. Canvas). We might need to add more config options in order for that info to be matched.
- We need to spend time thinking about management of and security of the key/secret pairs. We have to trust the LTI request enough that we login users solely based upon the username supplied in the request. This could potentially allow someone to login as anyone if they were able to get a valid key/secret pair.
Here are some examples free tools. We added some of the free video tools like Vimeo and Youtube to see how they work. In the Vimeo tool, the video playback was really choppy. In the Youtube tool, the first time the page loads it opens to a video search. After selecting a video, that is the only video that will show until you remove and re-add the tool.
Meeting w/ IU LTI Rep
If the Avalon Tool is added as a system tool, there will be no need to give out a secret and key. To get added as a system tool we need to have a proper landing page for a course to show them. Once we get the approval, we can be added to the test Sakai site regression.oncourse.iu.edu.
A link to a specific video can be done through the lessons tool, but we aren't sure if the process would be too difficult or too messy with thousands of tool links to chose from-a link for every video.
So far, the process to add an external tool to a lesson is...
- Create Lesson
- Create Assignment
- In the lesson page, go to More Tools->Add External Tool
- Select or create the LTI link to the specific video.
- If the link needs to be created, copy the link from Avalon into the tool link field, and if we are a recognized system tool, it will automatically associate the link with the tool.
Course Resource Management and Permissions
- Those who already have access to change permission settings on an item (manager, editor) can grant a class access to an item.
- A class is a group, but that group is assigned temporarily during the session with the group name being the courseId supplied by LTI.
- Adding a class to an item on the access page will be done similarly to "Add User" with a text entry field. Later on, it would be nice to be able to upload courses and be able to select a course from a list.
- If an administrator logs in through LTI, they no longer have administrative privileges. This will limit the damage in case someone is able to discover the key/secret and spoof an admin login.
- Later there needs to be a way to add a resource to a list so that when a user logs in from LTI, they will be greeted with resources relevant to their class.
Add Item to a Class
To add an item to a class, first get the class's context_id. In Sakai, there is an option run a debug launch that pauses and shows all of the parameters before launching the LTI. This will show the context_id parameter needed.
Then go to the item's permissions and add that context_id as a class.
The next time someone logs in from the LMS, they will automatically be sent to Avalon with that class facet selected.