LAMS is LTI 1.1 compliant tool provider. It can work with a number of LMSs that support LTI, e.g. Blackboard, Moodle, Sakai, etc.
In order for any LMS to be able to use LAMS as LTI tool provider, it needs to be registered with LAMS first. For this
1. Open sysdmin menu as sysadmin
2. Choose "Maintain LTI Tool Consumers" menu item and opt for adding new LTI Tool Consumer. The page where you can enter tool consumer's settings will look like the following:
3. Enter appropriate values and save. Please note that key and prefix should be unique among all LTI tool consumers and integration servers. If this conditions aren't met, LAMS won't allow saving the new tool consumer and will show according error message.
- Key: this is the server identification string that we will use to individually identify the LMS server that will be "talking" to LAMS.
- Secret: this is the secret key that both systems will be used to sign the request using OAuth during authentication. Make sure you keep your server key private
- Name: the server name
- Description: a meaningful server description
- Prefix: the prefix that the usernames will have in LAMS. (usually just one or two letters will do)
- Disabled: whether the tool consumer should be disabled
- Lesson finish callback URL: shows what URL will be used for sending scores back to LMS. It's set automatically during the first LTI request to LAMS and can't be altered by sysadmin, thus it's shown here only for the reference. And if it's empty - it means there haven't been done any LTI calls by this consumer yet.
In order to use LAMS as a LTI tool provider in Blackboard it needs to be registered in Blackboard.
1. Open System Admin tab, click on Building Blocks link and then open LTI Tool Providers.
2. At first, register new LAMS provider domain by pressing on Register Provider Domain button, you'll see the following page where you should enter details about LAMS server. Once entered, save it. It needs to be done only once per any Blackboard server.
- Provider Domain: LAMS server's host name (without indication of protocol http:// and any contexts like /lams/).
- Default Configuration: Choose 'Set globally' if you're going to use only one pair of server key and secret for the entire server (this is the preferable option). Or 'Set separately for each link' if you're going to use several pairs of server key and secret, one per each link.
- Tool Provider Key: this is the server identification string that we will use to individually identify the LMS server that will be "talking" to LAMS.
- Tool Provider Secret: this is the secret key that both systems will be used to sign the request using OAuth during authentication. Make sure you keep your server key private
- Tool Provider Custom Parameters: leave it blank
- Send User Data: choose 'Send user data over any connection' option which will allow sending user details to LAMS.
- User Fields to Send: choose what exact user details will be sent to LAMS. Preferably to select all of them: 'Role in Course', 'Name', 'Email Address'.
3. Create new placements. Once LAMS tool provider has been created, you'll be prompted to LTI Tool Providers page. Find LAMS tool provider row and then click on a number shown in Placements column (in the beginning it's zero, as a tool provider is just created and doesn't have any placements yet). To achieve the same results hover over tool provider's name and click on its options menu and then select 'Manage Placements'. Press on a Create Placement button.
- Label: This is the label that will show up in the course.
- Description: description of the tool.
- Handle: This uniquely identifies the placement inside Blackboard and thus should have unique value inside BB server. It's not used or passed to LAMS.
- Type: choose 'Content Type' and then select from the dropdown menu the area where the new tool will be available to teachers: 'Tools' means it will be shown in regular Tools menu, 'Build content (create)' - tool will be available in Build Content area. Tick 'Placement allows grading' if you want LAMS to send results back to Blackboard once users finishes the lesson, it will automatically generate columns in Blackboard's Grade center.
- Tool Provider URL: should be set to http://LAMS_SERVER_HOSTNAME/lams/LoginRequestLti, where LAMS_SERVER_HOSTNAME is LAMS server's hostname (it should be equal to Provider Domain value set during LTI Tool Provider registration).
- Tool Provider Key: not available for editing if 'Set globally' option is chosen during LTI Tool Provider registration.
- Tool Provider Secret: not available for editing if 'Set globally' option is chosen during LTI Tool Provider registration.
- Tool Provider Custom Parameters: leave it blank
After this it's possible to start adding LAMS lessons using just created placement.
4. Adding LAMS lessons.Go to any course and find newly created placement in the tools area it got added, for example, it could be 'Tools' tab. Select it. The page will look like this:
- Name: Lesson name. It will also be passed to LAMS during lesson creation.
- Description: Lesson description. It will also be passed to LAMS during lesson creation.
- Enable Evaluation: 'Yes' in case LAMS is supposed to send marks back to Blackboard.
- Points Possible: full grade number. E.g. 100 or 50.
- Visible to Students: whether students are allowed to see it.
- Due Date: due date
Work with LAMS LTI Tool Provider
Popup pages should be allowed in a browser, as all LAMS LTI pages are shown as popups. This statement is at least true for Blackboard.
Authoring LAMS lesson
When teacher opens LAMS link for the first time, he'll get shown LAMS add lesson interface. Where he can author new sequence by using 'Author new LAMS lessons' buttons or select from the list of existing ones from the tree on the left side. After pressing Save button, he'll get prompted to learner-monitor interface (see below).
Accessing LAMS lesson
Once lesson is created by a teacher, LAMS LTI will show learner-monitor interface to anybody accessing this lesson.
Pressing Open Lesson button will open regular LAMS learning interface.
Pressing Open Monitor button will open regular LAMS monitor interface. Besides, this button is only shown to monitors.
Highly recommend http://ltiapps.net/test/tc.php to simulate your LTI client/consumer. Make sure you pass the correct roles to make it work properly.
Login Failed - authentication error. Failed to validate: signature_invalid
Most likely there's a problem with the proxy either on the client and/or server side. In LAMS, make sure that you have proxy-address-forwarding="true" set properly:
<server name="default-server"> <http-listener name="default" socket-binding="http" max-post-size="104857600" certificate-forwarding="true" proxy-address-forwarding="true" /> <host name="default-host" alias="localhost"> <location name="/" handler="welcome-content"/> <!-- Removing server headers <filter-ref name="server-header"/> <filter-ref name="x-powered-by-header"/> --> <filter-ref name="hsts"/> <access-log pattern="combined" /> </host> </server>
If it's in the client side, they might be calling LAMS from behind their proxy (see 192.168.1.x address in the referrer), like:
127.0.0.1 - - 30/May/2017:13:52:39 +0800 "POST /lams/LoginRequestLti HTTP/1.1" 401 133 "http://192.168.1.237/moodle3.2/moodle/mod/lti/launch.php?id=33" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0"