Launching Links with Learning Tools Interoperability (LTI)

LTI (formerly called Basic LTI or BLTI) is a communication protocol defined by IMS Global Learning Consortium that allows remote tools and content from Tool Providers (TP) to be securely integrated into a Tool Consumer (TC) like BrainHoney. With the Dec 2010 (2010.3) release of BrainHoney, BrainHoney and Agilix Learning Services were officially Basic LTI v1.0 compliant, and the May 2012 release is officially LTI 1.1 compliant. This means that if you create a Custom Activity item in your course that links to content hosted on some other LTI v1.1-compliant server, then that server can update scores in the BrainHoney gradebook for that content item using the industry-standard LTI protocol. See

For more details about LTI, visit

This document describes how you configure BrainHoney to use LTI links in your course content.

Storing a Key-and-Secret Combination

System Administrators store key-and-secret combinations in the domain customization XML for the domain that contains a course with LTI links. Beneath the securehash XML element, you create two secretkey elements: one for the key and one for the secret. You store the key in the clear, and you store the secret as encrypted text. Always create the key first, immediately followed by the secret so that for maintainability, you can later tell which secret goes with which key (the node order is preserved), especially if you store multiple key-and-secret combinations. Follow these steps to store a key and secret:

  1. Sign into BrainHoney with an account that has System Administrator privileges
  2. Click the Administration link to open the Domain Administration page
  3. Click [Edit] to open the Edit Domain screen
  4. Edit Domain

  5. Click the Customization tab
  6. Beneath the securehash element (create it if it does not exist), create two secretkey elements. On the first, specify hostname.key for the name attribute. On the second, specify hostname.secret for the name attribute, substituting the TP's URL hostname for hostname. For example, if the TP's URL is, specify for the first name and for the second name. DO NOT include http:// or https:// in the name.
  7. Enter the key, given to you from the TP, as the first secretkey node value.
  8. Enter the secret, given to you from the TP, as the second secretkey node value.
  9. Add the attribute xmlns="uri:Agilix:DlapSensitive" to the second secretkey node. This causes the node to be encrypted when you click [OK].
  10. Secure Hash 1

  11. Click [OK] to save changes
When you go away and come back to this page, the second secretkey element no longer appears in plain text. It has been encrypted for security.

Secure Hash 2

If you ever need to edit it, its order is preserved amongst its sibling nodes, so to edit an existing secret, you delete the EncryptedData element beneath the secretkey element and re-add the secretkey for the updated secret.

Creating LTI Links

Follow these steps to create an LTI Link in the BrainHoney Syllabus editor:

  1. Create a File or Web Site item for non-graded activities, or create a Custom Activity item for graded items. (See Updating the Gradebook with Tool Results below.)
  2. File Or Web Site

  3. Click [Choose Web Site...] and enter the Tool Provider's URL in the text box.
  4. Click [Advanced...] and check the Digitally sign the request for LTI checkbox
  5. LTI Sign

Launching Links

When any end-user views an activity configured for LTI signing, BrainHoney launches the activity with standard LTI parameters. Many are obvious from their names. This table lists the values for parameters that are not obvious and it also lists the extension parameters that BrainHoney includes:

NameCorresponding BrainHoney Data
context_idThe course's ID.
context_titleThe course's title.
context_labelThe course's External ID, if any. This parameter is omitted if the course does not have an External ID.
ext_user_external_idThe External ID of the user launching the link. This parameter is omitted if the user does not have an External ID.
lis_person_sourcedidThe username of the user launching the link.
resource_link_idA concatenation of the course's GUID and the item's ID.
resource_link_titleThe item's title.
tool_consumer_info_product_family_codeThe value BrainHoney.
tool_consumer_info_versionThe BrainHoney version numbers in the format For example, 2013.3.15554.
tool_consumer_instance_guidThe hostname from the BrainHoney URL, such as
tool_consumer_instance_nameThe title of the user's domain, such as Mountain View High School.
user_idThe user's BrainHoney-assigned ID.
Updating the Gradebook with Tool Results

A Tool Provider can update the BrainHoney gradebook with the learner's activity results using one of these mechanisms:

Creating an LTI (or BLTI) Provider

Content publishers that would like to make their content available through LTI or BLTI must implement their web site as an LTI or BLTI Tool Provider. Here are some useful links that can assist in the creation of a provider:

Sample C# code that demonstrates how to verify if an LTI request is properly signed and valid is available here: