WeBWorK LTI 1.3 Integration with Brightspace (D2L)

Contributors: Andrew Kabbes and Sukhjit Singh Sehra

If you are using Brightspace and would like the convenience of seamless integration between Brightspace and WeBWorK that offers automatic login and grade transfer, then the newly revamped WeBWorK LTI 1.3 interface will help.

This tutorial will assist in configuring WeBWorK and D2L so that LTI 1.3 can be utilized.

Tool Registration in D2L (Step 1)

Select Standard registration and provide a suitable name for the link. The name can be whatever is convenient and sensible. The description field is optional.

The next set of information is all based on the WeBWorK server domain name for example: https://webwork.yourschool.edu. Replacing the domain name to match your context, fill in the following information in the tool registration:

  • Domain: https://webwork.yourschool.edu
  • Redirect URLs: https://webwork.yourschool.edu/webwork2/ltiadvantage/launch
  • OpenId Connect Login URL: https://webwork.yourschool.edu/webwork2/ltiadvantage/login
  • Target Link URI: https://webwork.yourschool.edu/webwork2
  • Keyset URL: https://webwork.yourschool.edu/webwork2/ltiadvantage/keys

Under Roles, select “Send Institution Role”.

Once the tool is registered, D2L provides the following parameters that must be entered into authen_LTI_1_3.conf. Be sure to have the following values available when completing the next step:

  • Client Id
  • Brightspace Keyset URL
  • Brightspace OAuth2 Access Token URL
  • OpenID Connect Authentication Endpoint
  • Brightspace OAuth2 Audience
  • Issuer

WeBWorK Configuration Part 1 (Step 2)

Copy authen_LTI_1_3.conf.dist to authen_LTI_1_3.conf and edit authen_LTI_1_3.conf.

Begin by updating the $LTI{v1p3}{LMS_name} and $LTI{v1p3}{LMS_url} variables:

Next, set the $LTI{v1p3}{preferred_source_of_student_id} to be 'ext_d2l_orgdefinedid'.

Navigate to the LTI 1.3 Basic Authentication Parameters section and define the following variables (provided by D2L in Step 1):

  • $LTI{v1p3}{PlatformID} = ‘Issuer’;
  • $LTI{v1p3}{ClientID} = ‘Client Id’;
  • $LTI{v1p3}{PublicKeysetURL} = ‘Brightspace Keyset URL’;
  • $LTI{v1p3}{AccessTokenURL} = ‘Brightspace OAuth2 Access Token UR’;
  • $LTI{v1p3}{AuthReqURL} = ‘OpenID Connect Authentication Endpoint’;

Note: at this step, $LTI{v1p3}{DeploymentID} is left blank. This will be filled in after the tool has been deployed in D2L (Step 3)

Tool Deployment in D2L (Step 3)

Once the tool is registered, it must be deployed. Select the Tool that was just registered from the the drop down list and give it a Name. Again, the description field is optional.

Under Security Settings, you can choose to send information that D2L will share with WeBWorK. There are some options, but for simplicity, User Information should be shared with WeBWorK.

Any settings beyond are optional.

Once this step is complete, D2L will provide a Deployment ID.

WeBWorK Configuration Part 2 (Step 4)

In the authen_LTI_1_3.conf file, add the Deployment ID given in step 3:

  • $LTI{v1p3}{DeploymentID} = ‘Deployment ID’;

Finally, copy authen_LTI.conf.dist to create authen_LTI.conf. Edit authen_LTI.conf to complete the LTI 1.3 configuration in WeBWorK.

  1. Within the $authen{user_module}, comment out the LTIAdvanced module and uncomment the LTIAdvantage module.
  2. Uncomment the line to include(‘conf/authen_LTI_1_3.conf’);. The include(‘conf/authen_LTI_1_1.conf’); can be commented out.
  3. Set the $LTIVersion variable: $LTIVersion = 'v1p3';

The result should be: