longhornopen / laravel-celtic-lti

Integrates the Celtic LTI library with a Laravel app
GNU Lesser General Public License v2.1
11 stars 12 forks source link

Recent LTI Endpoint changes seem to be breaking launches #18

Closed jonespm closed 9 months ago

jonespm commented 10 months ago

I was working on configuring Qualtrics LTI fresh and it was setting up a settings in lti2_consumer with this config.

{"_authentication_request_url":"https:\/\/sso.beta.instructure.com\/api\/lti\/authorize_redirect","_oauth2_access_token_url":"https:\/\/sso.beta.instructure.com\/login\/oauth2\/token","_jku":"https:\/\/sso.beta.instructure.com\/api\/lti\/security\/jwks"}

This didn't work and generated the error {"message":"domain not found"} on launch.

It looks like this was recently mentioned here that these domain names changed

And it looks like this is being set here? https://github.com/longhornopen/laravel-celtic-lti/blame/a9f8893e7b9cdd6cea27b5db0fabc2d96233f475/src/PlatformCreator.php#L66

I think the fix here would be to change instructure.com to canvaslms.com. I manually changed the settings to this and it launched. {"_authentication_request_url":"https:\/\/sso.beta.canvaslms.com\/api\/lti\/authorize_redirect","_oauth2_access_token_url":"https:\/\/sso.beta.canvaslms.com\/login\/oauth2\/token","_jku":"https:\/\/sso.beta.canvaslms.com\/api\/lti\/security\/jwks"}

chrispittman commented 10 months ago

Hmm. We haven't made this change so far because of the bit further up in that Canvas documentation you linked to:

No existing LTI 1.3 behavior will break after those dates, and tools do not need to switch endpoints before those dates. We recommend that all 1.3 tools move to use these endpoints as soon as possible, but will not be enforcing the change at this time.

We haven't made this change in any of the LTI tools at UT Austin, and they continue to launch fine as far as I know. No objection to making the change here, of course, but nothing about this should be causing an error. The hostname 'sso.beta.instructure.com' still exists, so if that's what's generating a 'domain not found' error, I can't explain it.

jonespm commented 10 months ago

Hmm, at https://sso.beta.instructure.com/ it gives a different error than https://sso.beta.canvaslms.com/

In our production database we have https://canvas.beta.instructure.com, not https://sso.beta.instructure.com.

The ones that seem to still work are

https://canvas.beta.instructure.com and https://sso.beta.canvaslms.com

So maybe something else broke here in unreleased code. From what I can see this is where this was changed in the library https://github.com/longhornopen/laravel-celtic-lti/commit/22811cecac37ac226935edec5a56833e92b60c4b

But it doesn't look like this code is used yet in Qualtrics LTI? At least not in the version we're running.

chrispittman commented 9 months ago

Should be fixed in v1.0.1. Thanks!