SlideShare una empresa de Scribd logo
1 de 19
Presentation Title
Org/ Contact
Just Fire LTI at it!
Mike Brousseau, Brock University
Me
Mike Brousseau
Educational Technologies Developer
Centre for Pedagogical Innovation
Brock University
Brock
Brock University
St Catharines, Ontario, Canada
Student Population ~18,688
Objectives
● What?
● Why?
● Basics concepts of LTI
● Available Libraries
● Example Apps
What’s an LTI?
A simple and cheap
way to connect your
LMS to external tools
without complicated
integrations or double
authentication.
Via: http://www.edu-apps.org/coding/tool_launch.png
LTI Consumer (LMS)
LTI Provider (Tools)
Two main components of LTI
http://www.google.com/doodles/30th-anniversary-of-pac-man
Why LTI?
● Writing integrations for third-party tools is a nightmare
o Allows for faster and cheaper integration
● Seamless user experience
o Users stay in the LMS while accessing external tools
● Central ITS processes often can’t keep up with great external tools
o Allows easier piloting or small scaling
A Hash of user data and environmental info is
sent from the Consumer to the Provider
The Provider verifies the OAuth connection with
the sent key and the agreed upon secret
The Provider then allows the Consumer
access to it’s resources based on the user and
environmental data sent
LTI 1.0 is one way OAuth 1.0 vouching for passing standardized structured data
LTI 1.0
Same as LTI 1.0
-Hash is sent
-OAuth is verified
-Access is granted
LTI 1.1 is two way OAuth 1.0 vouching for sending standardized structured data to the Provider and Grades
back to the Consumer
LTI 1.1
But now the Provider can pass Grades back to
the Consumer typically based on the user and
environmental data initially sent to the provider
jdhancock - Pin Pals - https://flic.kr/p/6qhgF1
Newest version of LTI
Final specs released Jan 2014
Similar initial launch as LTI 1.0 & 1.1
Supports rich and complex REST based two way communication between your Consumer and
Provider
Allows provisions space for Providers to store data in your Consumer
LTI 2.0?
Via: http://developers.imsglobal.org/tutorials.html#lti2
What is the Consumer Sending?
context_id=Mikes_Test_Course
context_label=Mikes_Test_Course
context_title=Mikes_Test_Course
context_type=CourseSection
ext_basiclti_submit=Press to continue to external tool.
ext_lms=sakai-2.9-SNAPSHOT
ext_sakai_eid=mbrousseau
ext_sakai_privacy=visible
ext_sakai_role=Instructor
ext_sakai_server=https://lms.brocku.ca
ext_sakai_serverid=LMS-APP2
launch_presentation_css_url=https://lms.brocku.ca/library/skin/default/tool.css
launch_presentation_locale=en_US
launch_presentation_return_url=https://lms.brocku.ca/imsblis/service/return-url/site/Mikes_Test_Course
lis_person_contact_email_primary=mbrousseau@brocku.ca
lis_person_name_family=Brousseau
lis_person_name_full=Michael Brousseau
lis_person_name_given=Michael
lis_person_sourcedid=mbrousseau
lti_message_type=basic-lti-launch-request
lti_version=LTI-1p0
oauth_callback=about:blank
oauth_consumer_key=47ydhsg6d5taycbdgf
oauth_nonce=18346351683108960
oauth_signature=ela19juj55e7q1n0slf594f7/V4=
oauth_signature_method=HMAC-SHA1
oauth_timestamp=1401478569
oauth_version=1.0
resource_link_description=Kaltura Categories
resource_link_id=cd52ed80-ccdd-4781-9e6e-5c19c0aca6d2
resource_link_title=Kaltura Categories
roles=Instructor,Administrator,urn:lti:instrole:ims/lis/Administrator,urn:lti:sysrole:ims/lis/Administrator
tool_consumer_info_product_family_code=sakai
tool_consumer_info_version=2.9-SNAPSHOT
user_id=c43a6cbc-bc94-4f6d-acca-c980ef37cb9c
user_image=https://lms.brocku.ca/direct/profile/c43a6cbc-bc94-4f6d-acca-c980ef37cb9c/image
In Sakai 2.9.3 using the LTI 1.1 Spec
Tony Hisgett - Vortex - https://flic.kr/p/2TFRT4
Message Signing
oauth_consumer_key=47ydhsg6d5taycbdgf - Agreed plain-text shared key
oauth_nonce=18346351683108960 - Unique value to ensure unique connections
oauth_signature=ela19juj55e7q1n0slf594f7/V4 - Consumer computed signature
oauth_signature_method=HMAC-SHA1 - Signature hashing method
oauth_timestamp=1401478569 - Signature timestamp
oauth_version=1.0 - The version of OAuth used
● Check for the agreed key
● Record nonce and compare against stored nonces
● Check timestamp is within a reasonable window (IMS suggests 90 minutes)
● Generate signature based on hashing method (with key and secret) and compare with sent
signature
Oliver Tacke- checked_tick - https://flic.kr/p/jBYsvd
● context_id=Mikes_Test_Course - The name of the course site launching the tool
● lis_person_contact_email_primary=mbrousseau@brocku.ca - User’s email
● lis_person_name_family=Brousseau - User’s last name
● lis_person_name_full=Michael Brousseau - User’s full name
● lis_person_name_given=Michael - User’s first name
● lis_person_sourcedid=mbrousseau - User’s username
● roles=Instructor,Administrator - User’s role in the consumer
● oauth_consumer_key=47ydhsg6d5taycbdgf - Agreed plain-text shared key
Basic Info for a Simple Tool
Who they are, what they’re doing here and if they’re allowed to be here.
Basic PHP
<?php
require_once 'ims-blti/blti.php'; //Make sure you include the LTI library (http://developers.imsglobal.org/imsphpexample.zip)
$lti_auth = array('key' => 'key', 'secret' => 'secret'); //The LTI credentials as we know them
$context = new BLTI('secret', false, false); //Build the LTI object with the credentials as we know them
if ($context->info['oauth_consumer_key'] == $lti_auth['key']){ //Check if the correct key is being sent
if ($context->valid ){ //Make sure our LTI object's OAuth connection is valid
echo 'Valid LTI Connection. Output passed data:';
echo '<pre>',print_r($context->info),'</pre>'; //Print out the passed data
}
else{ //We already checked the key so it's likely the user is using the wrong secret to generate their OAuth object
echo "Bad OAuth. Probably sent the wrong secret";
}
}
else{ //Wrong key
echo "Wrong key passed";
}
?>
Basic Ruby
#Need the basic rubygems and the sinatra gems (for this example) #We must include the ims/lti and OAuth gems (regardless of environment)
require 'rubygems'
require 'sinatra'
require 'ims/lti'
require 'oauth/request_proxy/rack_request'
lti_auth = {"key" => "key", "secret" => "secret"} #LTI key and secret hash declaration
post '/' do #Define index path in Sinatra
if lti_auth["key"] == params[:oauth_consumer_key] #Check if the correct key is being sent
provider = IMS::LTI::ToolProvider.new(lti_auth["key"], lti_auth["secret"], params) #Build our LTI object with our credentials
if provider.valid_request?(request) #Make sure our LTI object's OAuth connection is valid
"Successful LTI connection made. Here's what we got: <br /><hr />" +params.inspect
else #We already checked the key so it's likely the user is using the wrong secret to generate their OAuth object
"Bad OAuth. Probably sent wrong secret"
end
else #Wrong key
"Wrong key passed"
end
Example LTI Apps (built at Brocku)
Etherpad Request Facility
Library Research Guides by Subject
Google maps
with custom
marker placed
by students
Example LTI Apps (Commercial)
Piazza
Via: https://gigaom2.files.wordpress.com/2012/01/piazzascreenshot.jpg
EBSCO Reading List
LTI App Store - Edu Apps
http://www.edu-apps.org/index.html
More?
http://developers.imsglobal.org/ - IMS Standards
http://www.dr-chuck.com/csev-blog/ - Dr. Chuck
http://www.edu-apps.org/code.html - Basic Coding
Thanks
Email: mbrousseau@brocku.ca
Twitter: @mcbrousseau
GitHub: https://github.com/kingmook
Web: michaelbrousseau.ca

Más contenido relacionado

Destacado

Công ty tổ chức sự kiện ra mắt, giới thiệu sản phẩm mới chuyên nghiệp tại hcm
Công ty tổ chức sự kiện ra mắt, giới thiệu sản phẩm mới chuyên nghiệp tại hcmCông ty tổ chức sự kiện ra mắt, giới thiệu sản phẩm mới chuyên nghiệp tại hcm
Công ty tổ chức sự kiện ra mắt, giới thiệu sản phẩm mới chuyên nghiệp tại hcmHoàng Tuấn
 
Công ty tổ chức sự kiện ra mắt, giới thiệu sản phẩm mới chuyên nghiệp nhất tạ...
Công ty tổ chức sự kiện ra mắt, giới thiệu sản phẩm mới chuyên nghiệp nhất tạ...Công ty tổ chức sự kiện ra mắt, giới thiệu sản phẩm mới chuyên nghiệp nhất tạ...
Công ty tổ chức sự kiện ra mắt, giới thiệu sản phẩm mới chuyên nghiệp nhất tạ...Hoàng Tuấn
 
The best Event Company in Vietnam
The best Event Company in VietnamThe best Event Company in Vietnam
The best Event Company in VietnamHoàng Tuấn
 
The organized professional seminar company in HO CHI MINH city
The  organized  professional seminar company  in HO CHI MINH cityThe  organized  professional seminar company  in HO CHI MINH city
The organized professional seminar company in HO CHI MINH cityHoàng Tuấn
 
Flu+singapore+&+flu+babi. bag.11
Flu+singapore+&+flu+babi.   bag.11Flu+singapore+&+flu+babi.   bag.11
Flu+singapore+&+flu+babi. bag.11tristyanto
 
Công ty tổ chức sự kiện chuyên nghiệp tại hcm, cần thơ, đà nẵng
Công ty tổ chức sự kiện chuyên nghiệp tại hcm, cần thơ, đà nẵngCông ty tổ chức sự kiện chuyên nghiệp tại hcm, cần thơ, đà nẵng
Công ty tổ chức sự kiện chuyên nghiệp tại hcm, cần thơ, đà nẵngHoàng Tuấn
 
Road show yamaha 2015 - Đệ Nhất Phan Khang
Road show yamaha 2015 - Đệ Nhất Phan KhangRoad show yamaha 2015 - Đệ Nhất Phan Khang
Road show yamaha 2015 - Đệ Nhất Phan KhangHoàng Tuấn
 

Destacado (11)

Archivística
ArchivísticaArchivística
Archivística
 
กิจกรรมMeditcetion
กิจกรรมMeditcetionกิจกรรมMeditcetion
กิจกรรมMeditcetion
 
Công ty tổ chức sự kiện ra mắt, giới thiệu sản phẩm mới chuyên nghiệp tại hcm
Công ty tổ chức sự kiện ra mắt, giới thiệu sản phẩm mới chuyên nghiệp tại hcmCông ty tổ chức sự kiện ra mắt, giới thiệu sản phẩm mới chuyên nghiệp tại hcm
Công ty tổ chức sự kiện ra mắt, giới thiệu sản phẩm mới chuyên nghiệp tại hcm
 
Công ty tổ chức sự kiện ra mắt, giới thiệu sản phẩm mới chuyên nghiệp nhất tạ...
Công ty tổ chức sự kiện ra mắt, giới thiệu sản phẩm mới chuyên nghiệp nhất tạ...Công ty tổ chức sự kiện ra mắt, giới thiệu sản phẩm mới chuyên nghiệp nhất tạ...
Công ty tổ chức sự kiện ra mắt, giới thiệu sản phẩm mới chuyên nghiệp nhất tạ...
 
The best Event Company in Vietnam
The best Event Company in VietnamThe best Event Company in Vietnam
The best Event Company in Vietnam
 
The organized professional seminar company in HO CHI MINH city
The  organized  professional seminar company  in HO CHI MINH cityThe  organized  professional seminar company  in HO CHI MINH city
The organized professional seminar company in HO CHI MINH city
 
Flu+singapore+&+flu+babi. bag.11
Flu+singapore+&+flu+babi.   bag.11Flu+singapore+&+flu+babi.   bag.11
Flu+singapore+&+flu+babi. bag.11
 
Tarea 13
Tarea 13Tarea 13
Tarea 13
 
Công ty tổ chức sự kiện chuyên nghiệp tại hcm, cần thơ, đà nẵng
Công ty tổ chức sự kiện chuyên nghiệp tại hcm, cần thơ, đà nẵngCông ty tổ chức sự kiện chuyên nghiệp tại hcm, cần thơ, đà nẵng
Công ty tổ chức sự kiện chuyên nghiệp tại hcm, cần thơ, đà nẵng
 
Animales salvajes2B
Animales salvajes2BAnimales salvajes2B
Animales salvajes2B
 
Road show yamaha 2015 - Đệ Nhất Phan Khang
Road show yamaha 2015 - Đệ Nhất Phan KhangRoad show yamaha 2015 - Đệ Nhất Phan Khang
Road show yamaha 2015 - Đệ Nhất Phan Khang
 

Similar a Just Fire LTI at it

LTI Update at the IMS QUarterly Meeting, Utrecht, NL
LTI Update at the IMS QUarterly Meeting, Utrecht, NLLTI Update at the IMS QUarterly Meeting, Utrecht, NL
LTI Update at the IMS QUarterly Meeting, Utrecht, NLCharles Severance
 
IMS Basic Learning Tools Interoperability
IMS Basic Learning Tools InteroperabilityIMS Basic Learning Tools Interoperability
IMS Basic Learning Tools InteroperabilityCharles Severance
 
The Coming Functionality Mashup
The Coming Functionality MashupThe Coming Functionality Mashup
The Coming Functionality MashupCharles Severance
 
IMS Learning Tools Interoperability @ Nottingham
IMS Learning Tools Interoperability @ NottinghamIMS Learning Tools Interoperability @ Nottingham
IMS Learning Tools Interoperability @ NottinghamCharles Severance
 
IRJET- Secure E-Documents Storage using Blockchain
IRJET- Secure E-Documents Storage using BlockchainIRJET- Secure E-Documents Storage using Blockchain
IRJET- Secure E-Documents Storage using BlockchainIRJET Journal
 
inventory mangement project.pdf
inventory mangement project.pdfinventory mangement project.pdf
inventory mangement project.pdfMeenakshiThakur86
 
A new approach “ring” for restricting web pages from script access
A new approach “ring” for restricting web pages from script accessA new approach “ring” for restricting web pages from script access
A new approach “ring” for restricting web pages from script accesseSAT Journals
 
A new approach “ring” for restricting web pages from
A new approach “ring” for restricting web pages fromA new approach “ring” for restricting web pages from
A new approach “ring” for restricting web pages fromeSAT Publishing House
 
IRJET - Improving Password System using Blockchain
IRJET - Improving Password System using BlockchainIRJET - Improving Password System using Blockchain
IRJET - Improving Password System using BlockchainIRJET Journal
 
IRJET- Proof of Document using Multichain and Ethereum
IRJET- Proof of Document using Multichain and EthereumIRJET- Proof of Document using Multichain and Ethereum
IRJET- Proof of Document using Multichain and EthereumIRJET Journal
 
Building Scalable IMS LTI Tools Using the TSUGI Framework
Building Scalable IMS LTI Tools Using the TSUGI FrameworkBuilding Scalable IMS LTI Tools Using the TSUGI Framework
Building Scalable IMS LTI Tools Using the TSUGI FrameworkCharles Severance
 
UserCentric Identity based Service Invocation
UserCentric Identity based Service InvocationUserCentric Identity based Service Invocation
UserCentric Identity based Service Invocationguestd5dde6
 
Using Outlook And Exchange Sever System for ISM
Using Outlook And Exchange Sever System for ISMUsing Outlook And Exchange Sever System for ISM
Using Outlook And Exchange Sever System for ISMRoy Yabuki
 
Using Outlook And Exchange Server for International Student Ministry
Using Outlook And Exchange Server for International Student MinistryUsing Outlook And Exchange Server for International Student Ministry
Using Outlook And Exchange Server for International Student MinistryRoy Yabuki
 
Circle City Con: Phishing Forensics - Is it just suspicious or is it malicious?
Circle City Con: Phishing Forensics - Is it just suspicious or is it malicious?Circle City Con: Phishing Forensics - Is it just suspicious or is it malicious?
Circle City Con: Phishing Forensics - Is it just suspicious or is it malicious?CiNPA Security SIG
 

Similar a Just Fire LTI at it (20)

LTI Update at the IMS QUarterly Meeting, Utrecht, NL
LTI Update at the IMS QUarterly Meeting, Utrecht, NLLTI Update at the IMS QUarterly Meeting, Utrecht, NL
LTI Update at the IMS QUarterly Meeting, Utrecht, NL
 
IMS Basic Learning Tools Interoperability
IMS Basic Learning Tools InteroperabilityIMS Basic Learning Tools Interoperability
IMS Basic Learning Tools Interoperability
 
IMS Basic LTI Overview
IMS Basic LTI OverviewIMS Basic LTI Overview
IMS Basic LTI Overview
 
2011 03-03-blti-umass
2011 03-03-blti-umass2011 03-03-blti-umass
2011 03-03-blti-umass
 
The Coming Functionality Mashup
The Coming Functionality MashupThe Coming Functionality Mashup
The Coming Functionality Mashup
 
IMS Learning Tools Interoperability @ Nottingham
IMS Learning Tools Interoperability @ NottinghamIMS Learning Tools Interoperability @ Nottingham
IMS Learning Tools Interoperability @ Nottingham
 
IRJET- Secure E-Documents Storage using Blockchain
IRJET- Secure E-Documents Storage using BlockchainIRJET- Secure E-Documents Storage using Blockchain
IRJET- Secure E-Documents Storage using Blockchain
 
inventory mangement project.pdf
inventory mangement project.pdfinventory mangement project.pdf
inventory mangement project.pdf
 
A new approach “ring” for restricting web pages from script access
A new approach “ring” for restricting web pages from script accessA new approach “ring” for restricting web pages from script access
A new approach “ring” for restricting web pages from script access
 
A new approach “ring” for restricting web pages from
A new approach “ring” for restricting web pages fromA new approach “ring” for restricting web pages from
A new approach “ring” for restricting web pages from
 
OpenID and OAuth
OpenID and OAuthOpenID and OAuth
OpenID and OAuth
 
Cqrs api v2
Cqrs api v2Cqrs api v2
Cqrs api v2
 
IRJET - Improving Password System using Blockchain
IRJET - Improving Password System using BlockchainIRJET - Improving Password System using Blockchain
IRJET - Improving Password System using Blockchain
 
IRJET- Proof of Document using Multichain and Ethereum
IRJET- Proof of Document using Multichain and EthereumIRJET- Proof of Document using Multichain and Ethereum
IRJET- Proof of Document using Multichain and Ethereum
 
Introduction to OData
Introduction to ODataIntroduction to OData
Introduction to OData
 
Building Scalable IMS LTI Tools Using the TSUGI Framework
Building Scalable IMS LTI Tools Using the TSUGI FrameworkBuilding Scalable IMS LTI Tools Using the TSUGI Framework
Building Scalable IMS LTI Tools Using the TSUGI Framework
 
UserCentric Identity based Service Invocation
UserCentric Identity based Service InvocationUserCentric Identity based Service Invocation
UserCentric Identity based Service Invocation
 
Using Outlook And Exchange Sever System for ISM
Using Outlook And Exchange Sever System for ISMUsing Outlook And Exchange Sever System for ISM
Using Outlook And Exchange Sever System for ISM
 
Using Outlook And Exchange Server for International Student Ministry
Using Outlook And Exchange Server for International Student MinistryUsing Outlook And Exchange Server for International Student Ministry
Using Outlook And Exchange Server for International Student Ministry
 
Circle City Con: Phishing Forensics - Is it just suspicious or is it malicious?
Circle City Con: Phishing Forensics - Is it just suspicious or is it malicious?Circle City Con: Phishing Forensics - Is it just suspicious or is it malicious?
Circle City Con: Phishing Forensics - Is it just suspicious or is it malicious?
 

Último

A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 

Último (20)

A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 

Just Fire LTI at it

  • 1. Presentation Title Org/ Contact Just Fire LTI at it! Mike Brousseau, Brock University
  • 2. Me Mike Brousseau Educational Technologies Developer Centre for Pedagogical Innovation Brock University Brock Brock University St Catharines, Ontario, Canada Student Population ~18,688
  • 3. Objectives ● What? ● Why? ● Basics concepts of LTI ● Available Libraries ● Example Apps
  • 4. What’s an LTI? A simple and cheap way to connect your LMS to external tools without complicated integrations or double authentication. Via: http://www.edu-apps.org/coding/tool_launch.png
  • 5. LTI Consumer (LMS) LTI Provider (Tools) Two main components of LTI http://www.google.com/doodles/30th-anniversary-of-pac-man
  • 6. Why LTI? ● Writing integrations for third-party tools is a nightmare o Allows for faster and cheaper integration ● Seamless user experience o Users stay in the LMS while accessing external tools ● Central ITS processes often can’t keep up with great external tools o Allows easier piloting or small scaling
  • 7. A Hash of user data and environmental info is sent from the Consumer to the Provider The Provider verifies the OAuth connection with the sent key and the agreed upon secret The Provider then allows the Consumer access to it’s resources based on the user and environmental data sent LTI 1.0 is one way OAuth 1.0 vouching for passing standardized structured data LTI 1.0
  • 8. Same as LTI 1.0 -Hash is sent -OAuth is verified -Access is granted LTI 1.1 is two way OAuth 1.0 vouching for sending standardized structured data to the Provider and Grades back to the Consumer LTI 1.1 But now the Provider can pass Grades back to the Consumer typically based on the user and environmental data initially sent to the provider jdhancock - Pin Pals - https://flic.kr/p/6qhgF1
  • 9. Newest version of LTI Final specs released Jan 2014 Similar initial launch as LTI 1.0 & 1.1 Supports rich and complex REST based two way communication between your Consumer and Provider Allows provisions space for Providers to store data in your Consumer LTI 2.0? Via: http://developers.imsglobal.org/tutorials.html#lti2
  • 10. What is the Consumer Sending? context_id=Mikes_Test_Course context_label=Mikes_Test_Course context_title=Mikes_Test_Course context_type=CourseSection ext_basiclti_submit=Press to continue to external tool. ext_lms=sakai-2.9-SNAPSHOT ext_sakai_eid=mbrousseau ext_sakai_privacy=visible ext_sakai_role=Instructor ext_sakai_server=https://lms.brocku.ca ext_sakai_serverid=LMS-APP2 launch_presentation_css_url=https://lms.brocku.ca/library/skin/default/tool.css launch_presentation_locale=en_US launch_presentation_return_url=https://lms.brocku.ca/imsblis/service/return-url/site/Mikes_Test_Course lis_person_contact_email_primary=mbrousseau@brocku.ca lis_person_name_family=Brousseau lis_person_name_full=Michael Brousseau lis_person_name_given=Michael lis_person_sourcedid=mbrousseau lti_message_type=basic-lti-launch-request lti_version=LTI-1p0 oauth_callback=about:blank oauth_consumer_key=47ydhsg6d5taycbdgf oauth_nonce=18346351683108960 oauth_signature=ela19juj55e7q1n0slf594f7/V4= oauth_signature_method=HMAC-SHA1 oauth_timestamp=1401478569 oauth_version=1.0 resource_link_description=Kaltura Categories resource_link_id=cd52ed80-ccdd-4781-9e6e-5c19c0aca6d2 resource_link_title=Kaltura Categories roles=Instructor,Administrator,urn:lti:instrole:ims/lis/Administrator,urn:lti:sysrole:ims/lis/Administrator tool_consumer_info_product_family_code=sakai tool_consumer_info_version=2.9-SNAPSHOT user_id=c43a6cbc-bc94-4f6d-acca-c980ef37cb9c user_image=https://lms.brocku.ca/direct/profile/c43a6cbc-bc94-4f6d-acca-c980ef37cb9c/image In Sakai 2.9.3 using the LTI 1.1 Spec Tony Hisgett - Vortex - https://flic.kr/p/2TFRT4
  • 11. Message Signing oauth_consumer_key=47ydhsg6d5taycbdgf - Agreed plain-text shared key oauth_nonce=18346351683108960 - Unique value to ensure unique connections oauth_signature=ela19juj55e7q1n0slf594f7/V4 - Consumer computed signature oauth_signature_method=HMAC-SHA1 - Signature hashing method oauth_timestamp=1401478569 - Signature timestamp oauth_version=1.0 - The version of OAuth used ● Check for the agreed key ● Record nonce and compare against stored nonces ● Check timestamp is within a reasonable window (IMS suggests 90 minutes) ● Generate signature based on hashing method (with key and secret) and compare with sent signature Oliver Tacke- checked_tick - https://flic.kr/p/jBYsvd
  • 12. ● context_id=Mikes_Test_Course - The name of the course site launching the tool ● lis_person_contact_email_primary=mbrousseau@brocku.ca - User’s email ● lis_person_name_family=Brousseau - User’s last name ● lis_person_name_full=Michael Brousseau - User’s full name ● lis_person_name_given=Michael - User’s first name ● lis_person_sourcedid=mbrousseau - User’s username ● roles=Instructor,Administrator - User’s role in the consumer ● oauth_consumer_key=47ydhsg6d5taycbdgf - Agreed plain-text shared key Basic Info for a Simple Tool Who they are, what they’re doing here and if they’re allowed to be here.
  • 13. Basic PHP <?php require_once 'ims-blti/blti.php'; //Make sure you include the LTI library (http://developers.imsglobal.org/imsphpexample.zip) $lti_auth = array('key' => 'key', 'secret' => 'secret'); //The LTI credentials as we know them $context = new BLTI('secret', false, false); //Build the LTI object with the credentials as we know them if ($context->info['oauth_consumer_key'] == $lti_auth['key']){ //Check if the correct key is being sent if ($context->valid ){ //Make sure our LTI object's OAuth connection is valid echo 'Valid LTI Connection. Output passed data:'; echo '<pre>',print_r($context->info),'</pre>'; //Print out the passed data } else{ //We already checked the key so it's likely the user is using the wrong secret to generate their OAuth object echo "Bad OAuth. Probably sent the wrong secret"; } } else{ //Wrong key echo "Wrong key passed"; } ?>
  • 14. Basic Ruby #Need the basic rubygems and the sinatra gems (for this example) #We must include the ims/lti and OAuth gems (regardless of environment) require 'rubygems' require 'sinatra' require 'ims/lti' require 'oauth/request_proxy/rack_request' lti_auth = {"key" => "key", "secret" => "secret"} #LTI key and secret hash declaration post '/' do #Define index path in Sinatra if lti_auth["key"] == params[:oauth_consumer_key] #Check if the correct key is being sent provider = IMS::LTI::ToolProvider.new(lti_auth["key"], lti_auth["secret"], params) #Build our LTI object with our credentials if provider.valid_request?(request) #Make sure our LTI object's OAuth connection is valid "Successful LTI connection made. Here's what we got: <br /><hr />" +params.inspect else #We already checked the key so it's likely the user is using the wrong secret to generate their OAuth object "Bad OAuth. Probably sent wrong secret" end else #Wrong key "Wrong key passed" end
  • 15. Example LTI Apps (built at Brocku) Etherpad Request Facility Library Research Guides by Subject Google maps with custom marker placed by students
  • 16. Example LTI Apps (Commercial) Piazza Via: https://gigaom2.files.wordpress.com/2012/01/piazzascreenshot.jpg EBSCO Reading List
  • 17. LTI App Store - Edu Apps http://www.edu-apps.org/index.html
  • 18. More? http://developers.imsglobal.org/ - IMS Standards http://www.dr-chuck.com/csev-blog/ - Dr. Chuck http://www.edu-apps.org/code.html - Basic Coding
  • 19. Thanks Email: mbrousseau@brocku.ca Twitter: @mcbrousseau GitHub: https://github.com/kingmook Web: michaelbrousseau.ca