## WeBWorK Problems

### LTI connection with Canvas has a single error statement

by tim Payer -
Number of replies: 5

Greetings all,

We at HSU are having trouble establishing the LTI connection between Canvas and webwork.

We came very close to making the connection work, but regrettably have had to resort to downloading csv files each weekend in order to update the Canvas grade sheet.

Could I give you a brief summary of our problems in hopes that you might be able to determine where our error is located?

We are using Homework assignment specific grade pass-back.

The LTI connection worked fine for me as an instructor. I was brought to a specific homework assignment without any error statements. However other instructors and our test student kept getting the same error statement below:

The course.conf that we are using to establish the LTI connection is shown below.

Any feedback would be most appreciated.

Sincerley, Tim Payer

#!perl

################################################################################

# WeBWorK Online Homework Delivery System

#

# This program is free software; you can redistribute it and/or modify it under

# Free Software Foundation; either version 2, or (at your option) any later

# version, or (b) the "Artistic License" which comes with this package.

#

# This program is distributed in the hope that it will be useful, but WITHOUT

# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

# FOR A PARTICULAR PURPOSE.  See either the GNU General Public License or the

# Artistic License for more details.

################################################################################

# This file is used to override the global WeBWorK course environment for

# requests to this course. All package variables set in this file are added to

# the course environment. If you wish to set a variable here but omit it from

# the course environment,  use the "my" keyword. Commonly changed configuration

# options are noted below.

# Database Layout (global value typically defined in defaults.config)

#

# Several database are defined in the file conf/database.conf and stored in the

# hash %dbLayouts.

#

# The database layout is always set here, since one should be able to change the

# default value in localOverrides.conf without disrupting existing courses.

#

# defaults.config values:

#       $dbLayoutName = 'sql_single'; # *dbLayout =$dbLayouts{$dbLayoutName};$dbLayoutName = 'sql_single';

*dbLayout = $dbLayouts{$dbLayoutName};

# Allowed Mail Recipients (global value typically not defined)

#

# Defines addresses to which the PG system is allowed to send mail. This should

# probably be set to the addresses of professors of this course. Sending mail

# from the PG system (i.e. questionaires, essay questions) will fail if this is

# not set.

#

# defaults.config values:

#       $mail{allowedRecipients} = []; # By default, feedback is sent to all users who have permission to # receive_feedback. If this list is non-empty, feedback is also sent to the # addresses specified here. # # * If you want to disable feedback altogether, leave this empty and set #$permissionLevels{submit_feeback} = undef;

#   This will cause the

#   feedback button to go away as well.

#

# * If you want to send email ONLY to addresses in this list, set

#   $permissionLevels{receive_feedback} = undef; # # It's often useful to set this in the course.conf to change the behavior of # feedback for a specific course. # defaults.config values: #$mail{feedbackRecipients} = [];

# Users for whom to label problems with the PG file name (global value typically "professor")

#

# For users in this list, PG will display the source file name when rendering a problem.

#

# defaults.config values:

#       $pg{specialPGEnvironmentVars}{PRINT_FILE_NAMES_FOR} = ['professor']; #!perl # wouldn't we uncomment the line above for an execution in perl? ############################################################################# # authen_LTI.conf # Configuration for using LTI authentication. # To enable this file, uncomment the appropriate lines in localOverrides.conf ############################################################################# # set this to 1 to have LTI calling parameters printed to HTML page for # debugging. This is useful when setting things up for the first time because # different LMS systems have different parameters$debug_lti_parameters = 0; # Changed from 0 for our first time...

# This first section enables LTI authentication.

# Failover to Basic_TheLastOption is necessary to authenticate with

###################

$authen{user_module} = [ { "*" => "WeBWorK::Authen::LTIAdvanced", }, #preferred authorization method { "*" => "WeBWorK::Authen::Basic_TheLastOption",} #fallback authorization method ]; # If the preferred module is an external authentication # module but the sequence includes an internal authentication # system, e.g., Basic_TheLastOption, then the following line # must be commented out. # If it is uncommented and the value = 1, # then, if the authentication sequence reaches # Basic_TheLastOption, then WeBWorK::Login # will display a screen directing the user # back to an external authentication system.$external_auth=0;

# NOTE:  If external authentication is disabled

# then you should probably also prevent students

# from changing their passwords (because they cant use them).

# To do this ucomment the following

#  $permissionLevels{change_password} = "ta"; ################################################################################ # LTI Basic parameters ################################################################################ ################################################################################ # LTI Preferred Source of Username ################################################################################ # If both lis_person_sourcedid (or one of its variants) # and lis_person_contact_email_primary are present, # then one needs to state which one is preferred # as the WeBWorK username. # The considerations are (1) ensuring that usernames # are unique and (2) being as compatible as possible with the practices # of the institutions that are being served in a site. # If a site is only being used be students from a single # institution and the value lis_person_sourcedid is # unique across the population and matches the logon username # at that institution, then lis_person_sourcedid is # probably the better choice. # On the other hand, if a site is serving a population # from several institutions and lis_person_sourcedid is not # necessarily unique across the population, then # lis_person_contact_email_primary is the better choice. # Because the WeBWorK username must be unique across # the population served by a site, the default if # neither line is uncommented will be the value of # lis_person_contact_email_primary. # NOTE: Even if a course management system sends # one of the common misspellings of "lis_person_sourcedid", i.e., # lis_person_sourced_id, lis_person_source_id, and # lis_person_sourceid, one must nevertheless use # the correct spelling here, i.e. "lis_person_sourcedid". #$preferred_source_of_username = "lis_person_sourcedid";

Hope this helps.

-- Mike

### Re: LTI connection with Canvas has a single error statement

by Sara Nagreen -
the consumer key is only marked in Canvas. Where does it go in Webwork? I cannot see in Authen_LTI.conf where it would go. I tried grepping the conf files without a noticable place.

I have tried to add it to either Authen_LTI.conf and sneak it into SubmitGrades.pm to see if that helps, without success.

Turning on debugging gives me an additional warning message.

Now, if it's trying to deliver using Sourcedid, that may be the issue. Per our developers, neither email address or PVI (aka lis_person_sourceid) is a good method for source of username. They instead made a change to lib/WebWork/Authen/LTIAdvanced.pm to use a param from custom_canvas_user_login_id. (\$eppn) I'd have to go back and review why this change was exactly needed, but it seems like while the change they made doesn't impact login but DOES impact grade passback.

Well, at least this gives me a direction to go in.