Created
August 22, 2017 11:29
-
-
Save olanb7/f51c132eca1730f58f9d220f42cb9e80 to your computer and use it in GitHub Desktop.
IMS LTI Certification Tool Consumer Profile Issues
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Unrecognised service(s) in Tool Proxy [« less] | |
https://apps.imsglobal.org/lti/cert/tp/tp_tcprofile.php#ToolProxy.collection | |
https://apps.imsglobal.org/lti/cert/tp/tp_tcprofile.php#Outcomes.LTI1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"@context": [ | |
"http://purl.imsglobal.org/ctx/lti/v2/ToolConsumerProfile", | |
{ | |
"tcp": "https://apps.imsglobal.org/lti/cert/tp/tp_tcprofile.php#" | |
} | |
], | |
"@type": "ToolConsumerProfile", | |
"@id": "https://apps.imsglobal.org/lti/cert/tp/tp_tcprofile.php", | |
"lti_version": "LTI-2p0", | |
"guid": "xyz", | |
"product_instance": { | |
"guid": "imscert.org", | |
"product_info": { | |
"product_name": { | |
"default_value": "IMS LTI Certification Suite", | |
"key": "product.name" | |
}, | |
"product_version": "2.0.4 (21-Aug-17)", | |
"description": { | |
"default_value": "IMS Global Learning Consortium", | |
"key": "product.version" | |
}, | |
"technical_description": { | |
"default_value": "LTI 2.0 compliant", | |
"key": "product.technical.description" | |
}, | |
"product_family": { | |
"code": "ims", | |
"vendor": { | |
"code": "www.imsglobal.org", | |
"vendor_name": { | |
"default_value": "IMS", | |
"key": "product.vendor.name" | |
}, | |
"description": { | |
"default_value": "IMS is a leading provider of interoperability specifications for education", | |
"key": "product.vendor.description" | |
}, | |
"website": "http://www.imsglobal.org/", | |
"timestamp": "2017-08-21T23:26:02+00:00", | |
"contact": { | |
"email": "lticonformance@imsglobal.org" | |
} | |
} | |
} | |
}, | |
"service_owner": { | |
"service_owner_name": { | |
"default_value": "IMS", | |
"key": "service_owner.name" | |
}, | |
"description": { | |
"default_value": "A Higher Education establishment in a land far, far away.", | |
"key": "service_owner.description" | |
}, | |
"support": { | |
"email": "conformance@imsglobal.org" | |
} | |
}, | |
"support": { | |
"email": "info@imsglobal.org" | |
} | |
}, | |
"security_profile": [ | |
{ | |
"security_profile_name": "lti_oauth_hash_message_security", | |
"digest_algorithm": [ | |
"HMAC-SHA1" | |
] | |
}, | |
{ | |
"security_profile_name": "lti_oauth_body_hash_ws_security", | |
"digest_algorithm": [ | |
"HMAC-SHA1" | |
] | |
}, | |
{ | |
"security_profile_name": "lti_jwt_message_security", | |
"digest_algorithm": [ | |
"HS256" | |
] | |
}, | |
{ | |
"security_profile_name": "lti_jwt_ws_security", | |
"digest_algorithm": [ | |
"HS256" | |
] | |
}, | |
{ | |
"security_profile_name": "oauth2_access_token_ws_security" | |
} | |
], | |
"capability_offered": [ | |
"Person.name.given", | |
"Person.name.family", | |
"Person.email.primary", | |
"User.id", | |
"User.username", | |
"basic-lti-launch-request", | |
"ContentItemSelectionRequest", | |
"Context.id", | |
"Context.title", | |
"ResourceLink.title", | |
"CourseSection.sourcedId", | |
"Person.sourcedId", | |
"Person.name.full", | |
"Membership.role", | |
"Result.autocreate", | |
"Result.sourcedId", | |
"BasicOutcome.url", | |
"BasicOutcome.sourcedId", | |
"ToolProxy.custom.url", | |
"ToolProxyBinding.custom.url", | |
"LtiLink.custom.url", | |
"LineItems.url", | |
"LineItem.url", | |
"Result.url", | |
"ToolProxyBinding.memberships.url", | |
"ToolConsumerProfile.url" | |
], | |
"service_offered": [ | |
{ | |
"@type": "RestService", | |
"@id": "tcp:AccessToken.item", | |
"endpoint": "https://apps.imsglobal.org/lti/cert/tp/tp_accesstoken.php?b64=cmg4MGVrcTVjMnI0NHM2OWJmcDltZzRjNzI%3D", | |
"format": [ | |
"application/json" | |
], | |
"action": [ | |
"POST" | |
] | |
}, | |
{ | |
"@type": "RestService", | |
"@id": "tcp:ToolProxy.collection", | |
"endpoint": "https://apps.imsglobal.org/lti/cert/tp/tp_toolproxy.php?b64=cmg4MGVrcTVjMnI0NHM2OWJmcDltZzRjNzI%3D", | |
"format": [ | |
"application/vnd.ims.lti.v2.toolproxy+json" | |
], | |
"action": [ | |
"POST" | |
] | |
}, | |
{ | |
"@type": "RestService", | |
"@id": "tcp:Outcomes.LTI1", | |
"endpoint": "https://apps.imsglobal.org/lti/cert/tp/tp_outcome.php?b64=cmg4MGVrcTVjMnI0NHM2OWJmcDltZzRjNzI%3D", | |
"format": [ | |
"application/vnd.ims.lti.v1.outcome+xml" | |
], | |
"action": [ | |
"POST" | |
] | |
}, | |
{ | |
"@type": "RestService", | |
"@id": "tcp:LtiLinkSettings", | |
"endpoint": "https://apps.imsglobal.org/lti/cert/tp/tp_settings.php/links/{link_id}/custom?b64=cmg4MGVrcTVjMnI0NHM2OWJmcDltZzRjNzI%3D", | |
"format": [ | |
"application/vnd.ims.lti.v2.toolsettings+json", | |
"application/vnd.ims.lti.v2.toolsettings.simple+json" | |
], | |
"action": [ | |
"GET", | |
"PUT" | |
] | |
}, | |
{ | |
"@type": "RestService", | |
"@id": "tcp:ToolProxyBindingSettings", | |
"endpoint": "https://apps.imsglobal.org/lti/cert/tp/tp_settings.php/lis/{context_type}/{context_id}/bindings/{vendor_code}/{product_code}/custom?b64=cmg4MGVrcTVjMnI0NHM2OWJmcDltZzRjNzI%3D", | |
"format": [ | |
"application/vnd.ims.lti.v2.toolsettings+json", | |
"application/vnd.ims.lti.v2.toolsettings.simple+json" | |
], | |
"action": [ | |
"GET", | |
"PUT" | |
] | |
}, | |
{ | |
"@type": "RestService", | |
"@id": "tcp:ToolProxySettings", | |
"endpoint": "https://apps.imsglobal.org/lti/cert/tp/tp_settings.php/ToolProxy/{tool_proxy_guid}/custom?b64=cmg4MGVrcTVjMnI0NHM2OWJmcDltZzRjNzI%3D", | |
"format": [ | |
"application/vnd.ims.lti.v2.toolsettings+json", | |
"application/vnd.ims.lti.v2.toolsettings.simple+json" | |
], | |
"action": [ | |
"GET", | |
"PUT" | |
] | |
}, | |
{ | |
"@type": "RestService", | |
"@id": "tcp:LineItem.collection", | |
"endpoint": "https://apps.imsglobal.org/lti/cert/tp/tp_lineitem.php/context/{context_id}/lineitems?b64=cmg4MGVrcTVjMnI0NHM2OWJmcDltZzRjNzI%3D", | |
"format": [ | |
"application/vnd.ims.lis.v2.lineitemcontainer+json" | |
], | |
"action": [ | |
"GET", | |
"POST" | |
] | |
}, | |
{ | |
"@type": "RestService", | |
"@id": "tcp:LineItem.item", | |
"endpoint": "https://apps.imsglobal.org/lti/cert/tp/tp_lineitem.php/context/{context_id}/lineitems/{lineitem_id}?b64=cmg4MGVrcTVjMnI0NHM2OWJmcDltZzRjNzI%3D", | |
"format": [ | |
"application/vnd.ims.lis.v2.lineitem+json" | |
], | |
"action": [ | |
"GET", | |
"PUT", | |
"DELETE" | |
] | |
}, | |
{ | |
"@type": "RestService", | |
"@id": "tcp:LineItem.results", | |
"endpoint": "https://apps.imsglobal.org/lti/cert/tp/tp_lineitem.php/context/{context_id}/lineitems/{lineitem_id}?b64=cmg4MGVrcTVjMnI0NHM2OWJmcDltZzRjNzI%3D", | |
"format": [ | |
"application/vnd.ims.lis.v2.lineitemresults+json" | |
], | |
"action": [ | |
"GET", | |
"PUT" | |
] | |
}, | |
{ | |
"@type": "RestService", | |
"@id": "tcp:LISResult.collection", | |
"endpoint": "https://apps.imsglobal.org/lti/cert/tp/tp_lisresult.php/context/{context_id}/lineitems/{lineitem_id}/results?b64=cmg4MGVrcTVjMnI0NHM2OWJmcDltZzRjNzI%3D", | |
"format": [ | |
"application/vnd.ims.lis.v2.resultcontainer+json" | |
], | |
"action": [ | |
"GET", | |
"POST" | |
] | |
}, | |
{ | |
"@type": "RestService", | |
"@id": "tcp:LISResult.item", | |
"endpoint": "https://apps.imsglobal.org/lti/cert/tp/tp_lisresult.php/context/{context_id}/lineitems/{lineitem_id}/{lineitem_id}/results/{user_id}?b64=cmg4MGVrcTVjMnI0NHM2OWJmcDltZzRjNzI%3D", | |
"format": [ | |
"application/vnd.ims.lis.v2p1.result+json" | |
], | |
"action": [ | |
"GET", | |
"PUT", | |
"DELETE" | |
] | |
}, | |
{ | |
"@type": "RestService", | |
"@id": "tcp:ToolProxyBindingMemberships", | |
"endpoint": "https://apps.imsglobal.org/lti/cert/tp/tp_membership.php/context/{context_id}/membership?b64=cmg4MGVrcTVjMnI0NHM2OWJmcDltZzRjNzI%3D", | |
"format": [ | |
"application/vnd.ims.lis.v2.membershipcontainer+json" | |
], | |
"action": [ | |
"GET" | |
] | |
} | |
] | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"@type": "ToolProxy", | |
"@context": [ | |
"http://static.integrations.turnitin.com/context.json-ld" | |
], | |
"lti_version": "LTI-2p0", | |
"tool_consumer_profile": "https://apps.imsglobal.org/lti/cert/tp/tp_tcprofile.php?b64=cmg4MGVrcTVjMnI0NHM2OWJmcDltZzRjNzI%3D", | |
"tool_profile": { | |
"lti_version": "LTI-2p0", | |
"product_instance": { | |
"guid": "turnitin.com", | |
"product_info": { | |
"product_name": { | |
"default_value": "Turnitin", | |
"key": "tool.name" | |
}, | |
"description": { | |
"default_value": "One of the most widely distributed educational applications in the world, Turnitin is the most effective online technology used to manage the submission, tracking and evaluation of student papers online.", | |
"key": "tool.description" | |
}, | |
"product_version": "1.0", | |
"technical_description": { | |
"default_value": "Turnitin LTI Tool Provider - IMS Global LTI 1.0, 1.1, 2.0 Certified (IMS Registration: IMSB2C2tn2013W1) see more: http://guides.turnitin.com/03_Integrations/Learning_Tools_Interoperability_(LTI)", | |
"key": "tool.technicalDescription" | |
}, | |
"product_family": { | |
"code": "turnitin-lti", | |
"vendor": { | |
"code": "turnitin.com", | |
"vendor_name": { | |
"default_value": "Turnitin DevX", | |
"key": "vendor.name" | |
}, | |
"description": { | |
"default_value": "http://turnitin.com/en_us/about-us/our-company", | |
"key": "vendor.description" | |
}, | |
"website": "http://turnitin.com", | |
"timestamp": "2016-09-01T00:00:00Z" | |
} | |
} | |
} | |
}, | |
"base_url_choice": [{ | |
"default_base_url": "https://turnitin.ngrok.io/" | |
}], | |
"service_offered": [{ | |
"@id": "https://{turnitinWebhookHost}/webhooks/{turnitinHost}/proxys/{proxyInstanceId}/customers/{customerId}#vnd.Canvas.SubmissionEvent", | |
"@type": "RestService", | |
"endpoint": "https://tii-canvas.ngrok.io/webhooks/turnitin.ngrok.io/proxys/71683271-a431-42c3-a7dd-ffeb7a642df1/customers/60039", | |
"format": [ | |
"application/json" | |
], | |
"action": ["POST"] | |
}], | |
"resource_handler": [{ | |
"resource_type": { | |
"code": "tiiasmt" | |
}, | |
"resource_name": { | |
"default_value": "Turnitin Assignment Inbox", | |
"key": "assessment.resource.name" | |
}, | |
"description": { | |
"default_value": "Create Turnitin Assignment", | |
"key": "assessment.resource.description" | |
}, | |
"message": [{ | |
"message_type": "basic-lti-launch-request", | |
"path": "api/lti/1p0/assignment", | |
"parameter": [{ | |
"name": "context_memberships_url", | |
"variable": "ToolProxyBinding.memberships.url" | |
}], | |
"enabled_capability": [ | |
"BasicOutcome.url", | |
"BasicOutcome.sourcedId", | |
"Context.id", | |
"Context.title", | |
"Membership.role", | |
"Person.email.primary", | |
"Person.name.family", | |
"Person.name.full", | |
"Person.name.given", | |
"ResourceLink.title", | |
"ToolProxyBinding.memberships.url", | |
"User.id" | |
], | |
"optional_capability": [ | |
"BasicOutcome.url", | |
"BasicOutcome.sourcedId", | |
"Context.title", | |
"Person.email.primary", | |
"Person.name.family", | |
"Person.name.full", | |
"Person.name.given", | |
"ResourceLink.title", | |
"ToolProxyBinding.memberships.url" | |
] | |
}], | |
"icon_info": [{ | |
"default_location": { | |
"path": "pd/static/source/images/logos/turnitin-icon-rgb.png" | |
}, | |
"key": "iconStyle.default.path" | |
}] | |
}] | |
}, | |
"custom": { | |
"proxy_instance_id": "71683271-a431-42c3-a7dd-ffeb7a642df1", | |
"customer_id": "60039" | |
}, | |
"security_contract": { | |
"shared_secret": "rqk64jfadq4ujkkhodmpsmlfyimufvexnpqumqlzg9d2nse4hlhs3kg24dwxugm5zux13ogv17uhquwpfgdxbmabf6zlryxqvjvwiixtiqxkepa7ihg8hno95zslwriq", | |
"tool_service": [{ | |
"@type": "RestServiceProfile", | |
"service": "https://apps.imsglobal.org/lti/cert/tp/tp_tcprofile.php#ToolProxy.collection", | |
"action": ["POST"], | |
"required_capability": [], | |
"endpoint": "https://apps.imsglobal.org/lti/cert/tp/tp_toolproxy.php?b64=cmg4MGVrcTVjMnI0NHM2OWJmcDltZzRjNzI%3D" | |
}, { | |
"@type": "RestServiceProfile", | |
"service": "https://apps.imsglobal.org/lti/cert/tp/tp_tcprofile.php#Outcomes.LTI1", | |
"action": ["POST"], | |
"required_capability": [ | |
"BasicOutcome.url", | |
"BasicOutcome.sourcedId" | |
], | |
"endpoint": "https://apps.imsglobal.org/lti/cert/tp/tp_outcome.php?b64=cmg4MGVrcTVjMnI0NHM2OWJmcDltZzRjNzI%3D" | |
}] | |
}, | |
"enabled_capability": [] | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"@type": "ToolProxy", | |
"@context": ["http://static.integrations.turnitin.com/context.json-ld"], | |
"lti_version": "LTI-2p0", | |
"tool_consumer_profile": "https://apps.imsglobal.org/lti/cert/tp/tp_tcprofile.php?b64=cmg4MGVrcTVjMnI0NHM2OWJmcDltZzRjNzI%3D", | |
"tool_profile": { | |
"lti_version": "LTI-2p0", | |
"product_instance": { | |
"guid": "turnitin.com", | |
"product_info": { | |
"product_name": { | |
"default_value": "Turnitin", | |
"key": "tool.name" | |
}, | |
"description": { | |
"default_value": "One of the most widely distributed educational applications in the world, Turnitin is the most effective online technology used to manage the submission, tracking and evaluation of student papers online.", | |
"key": "tool.description" | |
}, | |
"product_version": "1.0", | |
"technical_description": { | |
"default_value": "Turnitin LTI Tool Provider - IMS Global LTI 1.0, 1.1, 2.0 Certified (IMS Registration: IMSB2C2tn2013W1) see more: http://guides.turnitin.com/03_Integrations/Learning_Tools_Interoperability_(LTI)", | |
"key": "tool.technicalDescription" | |
}, | |
"product_family": { | |
"code": "turnitin-lti", | |
"vendor": { | |
"code": "turnitin.com", | |
"vendor_name": { | |
"default_value": "Turnitin DevX", | |
"key": "vendor.name" | |
}, | |
"description": { | |
"default_value": "http://turnitin.com/en_us/about-us/our-company", | |
"key": "vendor.description" | |
}, | |
"website": "http://turnitin.com", | |
"timestamp": "2016-09-01T00:00:00Z" | |
} | |
} | |
} | |
}, | |
"base_url_choice": [{ | |
"default_base_url": "https://turnitin.ngrok.io/" | |
}], | |
"service_offered": [{ | |
"@id": "https://{turnitinWebhookHost}/webhooks/{turnitinHost}/proxys/{proxyInstanceId}/customers/{customerId}#vnd.Canvas.SubmissionEvent", | |
"@type": "RestService", | |
"endpoint": "https://tii-canvas.ngrok.io/webhooks/turnitin.ngrok.io/proxys/b721b916-266d-42b7-8af4-377eb158dcb6/customers/60039", | |
"format": ["application/json"], | |
"action": ["POST"] | |
}], | |
"resource_handler": [{ | |
"resource_type": { | |
"code": "tiiasmt" | |
}, | |
"resource_name": { | |
"default_value": "Turnitin Assignment Inbox", | |
"key": "assessment.resource.name" | |
}, | |
"description": { | |
"default_value": "Create Turnitin Assignment", | |
"key": "assessment.resource.description" | |
}, | |
"message": [{ | |
"message_type": "basic-lti-launch-request", | |
"path": "api/lti/1p0/assignment", | |
"parameter": [{ | |
"name": "context_memberships_url", | |
"variable": "ToolProxyBinding.memberships.url" | |
}], | |
"enabled_capability": ["BasicOutcome.url", "BasicOutcome.sourcedId", "Context.id", "Context.title", "Membership.role", "Person.email.primary", "Person.name.family", "Person.name.full", "Person.name.given", "ResourceLink.title", "ToolProxyBinding.memberships.url", "User.id"], | |
"optional_capability": ["BasicOutcome.url", "BasicOutcome.sourcedId", "Context.title", "Person.email.primary", "Person.name.family", "Person.name.full", "Person.name.given", "ResourceLink.title", "ToolProxyBinding.memberships.url"] | |
}], | |
"icon_info": [{ | |
"default_location": { | |
"path": "pd/static/source/images/logos/turnitin-icon-rgb.png" | |
}, | |
"key": "iconStyle.default.path" | |
}] | |
}] | |
}, | |
"custom": { | |
"proxy_instance_id": "b721b916-266d-42b7-8af4-377eb158dcb6", | |
"customer_id": "60039" | |
}, | |
"security_contract": { | |
"shared_secret": "7z5zjrxtbpjc1sxkgtxvtap5dwoxauxmvk5rm5j8d7trptoimrq70esgm9iylxqooarfxbqqtvbhvtdlvs4gkzalnvv5oaf83aggul3vcthz0capsnyd1n3ocgfxvovm", | |
"tool_service": [{ | |
"@type": "RestServiceProfile", | |
"service": "tcp:ToolProxy.collection", | |
"action": ["POST"], | |
"required_capability": [], | |
"endpoint": "https://apps.imsglobal.org/lti/cert/tp/tp_toolproxy.php?b64=cmg4MGVrcTVjMnI0NHM2OWJmcDltZzRjNzI%3D" | |
}, { | |
"@type": "RestServiceProfile", | |
"service": "tcp:Outcomes.LTI1", | |
"action": ["POST"], | |
"required_capability": ["BasicOutcome.url", "BasicOutcome.sourcedId"], | |
"endpoint": "https://apps.imsglobal.org/lti/cert/tp/tp_outcome.php?b64=cmg4MGVrcTVjMnI0NHM2OWJmcDltZzRjNzI%3D" | |
}] | |
}, | |
"enabled_capability": [] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
LTI Certification is currently failing as we are expanding the CURIEs in out
security_contract
section, but the certification suite does not like this: https://cl.ly/1M3a371b3z2wI've attached the invalid and working tool proxies to the gist above.
JSON-LD documentation suggests that it is valid for these CURIEs to be expanded into unambiguous identifiers, as we are doing, so I think this should be supported in the certification suite. https://json-ld.org/spec/ED/json-ld-syntax/20110615/