(IMS: Instructional Management Systems, found by Educause, 1997)
http://www.imsglobal.org/
http://www.imsglobal.org/joinims.html
Tool Consumer: BlackBoard, Canvas, Moodle, ...
Tool Provider: GC, ...
Tool Consumer -> Tool Provider
Signed post request (Using iframe or new tab)
Tool Provider -> LIS (LMS/SIS)
Signed post request
Sign: OAuth 1.0a signature, https://github.com/instructure/ims-lti
Solution I: Ask user to login when user access GC through LTI if user not logged in. (Lightweight)
Solution II: Build a LTI API in GC, refactor GC database to align assignments to resource_link_id, not user. (Very Heavyweight)
Solution III: Single Sign On. (Heavyweight)
Solution:
1. Ask admin to config origin limitation.
2. Remove X-Frame-Options when accessing LTI page (lightweight) and related resources. (heavyweight)
3. Use Content-Security-Policy Level 2: frame-ancestors (Not work for IE & Safari).
4. Still have risk.
LTI does not define what's next after learning tools finished. (launch_presentation_return_url)
GC is an complete platform independently.
Solution: User can only access/view target assignment through LTI.
1. IMS LTI Consumer demo for development. (http://consumer.azurewebsites.net/)
2. Canvas LMS for Development & local QA.
3. AWS Canvas LMS/Moodle for online QA & Showcase.
4. LiveText BlackBoard for final review.