Closed kreut closed 3 years ago
The issue was mine. I was pasting in the link instead of clicking on the link and letting Canvas perform the Deep Linking configuration behind the scenes. With that said, I'm not sure why Canvas allows manual entry when it causes an issue with the flow.
Summary:
JWT doesn't contain LTIDeepLinkingResponse even though JSON config contains an LtiDeepLinkingRequest.
Steps to reproduce:
My LTI 1.3 config and a sample JWT follow:
And a typical JWT response (decoded I can see that it starts with "https://purl.imsglobal.org/spec/lti/claim/message_type": "LtiResourceLinkRequest", which makes me nervous!)
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDYtMThUMjI6MzM6MjBaIn0.eyJodHRwczovL3B1cmwuaW1zZ2xvYmFsLm9yZy9zcGVjL2x0aS9jbGFpbS9tZXNzYWdlX3R5cGUiOiJMdGlSZXNvdXJjZUxpbmtSZXF1ZXN0IiwiaHR0cHM6Ly9wdXJsLmltc2dsb2JhbC5vcmcvc3BlYy9sdGkvY2xhaW0vdmVyc2lvbiI6IjEuMy4wIiwiaHR0cHM6Ly9wdXJsLmltc2dsb2JhbC5vcmcvc3BlYy9sdGkvY2xhaW0vcmVzb3VyY2VfbGluayI6eyJpZCI6ImQzYTI1MDRiYmE1MTg0Nzk5YTM4ZjE0MWU4ZGYyMzM1Y2ZhODIwNmQiLCJkZXNjcmlwdGlvbiI6bnVsbCwidGl0bGUiOm51bGwsInZhbGlkYXRpb25fY29udGV4dCI6bnVsbCwiZXJyb3JzIjp7ImVycm9ycyI6e319fSwiYXVkIjoiMTAwMDAwMDAwMDAwMDkiLCJhenAiOiIxMDAwMDAwMDAwMDAwOSIsImh0dHBzOi8vcHVybC5pbXNnbG9iYWwub3JnL3NwZWMvbHRpL2NsYWltL2RlcGxveW1lbnRfaWQiOiI3Ojg4NjVhYTA1YjRiNzliNjRhOTFhODYwNDJlNDNhZjVlYThhZTc5ZWIiLCJleHAiOjE2MDYzNTI0NzcsImlhdCI6MTYwNjM0ODg3NywiaXNzIjoiaHR0cHM6Ly9kZXYtY2FudmFzLmxpYnJldGV4dHMub3JnIiwibm9uY2UiOiJub25jZS01ZmJlZjA1MDMwODY5Mi42MTQxNzk3OCIsInN1YiI6IjM4MmE5MWI5LWE2MjItNDVmYS05NmJlLTk2NjY0N2JlMTk4ZiIsImh0dHBzOi8vcHVybC5pbXNnbG9iYWwub3JnL3NwZWMvbHRpL2NsYWltL3RhcmdldF9saW5rX3VyaSI6Imh0dHBzOi8vZGV2LmFkYXB0LmxpYnJldGV4dHMub3JnL2FwaS9sdGkvdGFyZ2V0LWxpbmstdXJpIiwiaHR0cHM6Ly9wdXJsLmltc2dsb2JhbC5vcmcvc3BlYy9sdGkvY2xhaW0vY29udGV4dCI6eyJpZCI6ImQzYTI1MDRiYmE1MTg0Nzk5YTM4ZjE0MWU4ZGYyMzM1Y2ZhODIwNmQiLCJ0aXRsZSI6InRlc3QiLCJ0eXBlIjpbImh0dHA6Ly9wdXJsLmltc2dsb2JhbC5vcmcvdm9jYWIvbGlzL3YyL2NvdXJzZSNDb3Vyc2VPZmZlcmluZyJdLCJ2YWxpZGF0aW9uX2NvbnRleHQiOm51bGwsImVycm9ycyI6eyJlcnJvcnMiOnt9fSwibGFiZWwiOiJ0ZXN0In0sImh0dHBzOi8vcHVybC5pbXNnbG9iYWwub3JnL3NwZWMvbHRpL2NsYWltL3Rvb2xfcGxhdGZvcm0iOnsiZ3VpZCI6IkY5bDZTaHNqUXE4Y1Q1QVhldlcxTzVZQ1pRWnJ3dHd2ZXgzR0pHd3g6Y2FudmFzLWxtcyIsIm5hbWUiOiJMaWJyZVRleHRzIiwidmVyc2lvbiI6ImNsb3VkIiwicHJvZHVjdF9mYW1pbHlfY29kZSI6ImNhbnZhcyIsInZhbGlkYXRpb25fY29udGV4dCI6bnVsbCwiZXJyb3JzIjp7ImVycm9ycyI6e319fSwiaHR0cHM6Ly9wdXJsLmltc2dsb2JhbC5vcmcvc3BlYy9sdGkvY2xhaW0vbGF1bmNoX3ByZXNlbnRhdGlvbiI6eyJkb2N1bWVudF90YXJnZXQiOiJpZnJhbWUiLCJoZWlnaHQiOm51bGwsIndpZHRoIjpudWxsLCJyZXR1cm5fdXJsIjoiaHR0cHM6Ly9kZXYtY2FudmFzLmxpYnJldGV4dHMub3JnL2NvdXJzZXMvMy9tb2R1bGVzIiwibG9jYWxlIjoiZW4iLCJ2YWxpZGF0aW9uX2NvbnRleHQiOm51bGwsImVycm9ycyI6eyJlcnJvcnMiOnt9fX0sImxvY2FsZSI6ImVuIiwiaHR0cHM6Ly9wdXJsLmltc2dsb2JhbC5vcmcvc3BlYy9sdGkvY2xhaW0vcm9sZXMiOlsiaHR0cDovL3B1cmwuaW1zZ2xvYmFsLm9yZy92b2NhYi9saXMvdjIvaW5zdGl0dXRpb24vcGVyc29uI0FkbWluaXN0cmF0b3IiLCJodHRwOi8vcHVybC5pbXNnbG9iYWwub3JnL3ZvY2FiL2xpcy92Mi9pbnN0aXR1dGlvbi9wZXJzb24jSW5zdHJ1Y3RvciIsImh0dHA6Ly9wdXJsLmltc2dsb2JhbC5vcmcvdm9jYWIvbGlzL3YyL21lbWJlcnNoaXAjSW5zdHJ1Y3RvciIsImh0dHA6Ly9wdXJsLmltc2dsb2JhbC5vcmcvdm9jYWIvbGlzL3YyL3N5c3RlbS9wZXJzb24jU3lzQWRtaW4iLCJodHRwOi8vcHVybC5pbXNnbG9iYWwub3JnL3ZvY2FiL2xpcy92Mi9zeXN0ZW0vcGVyc29uI1VzZXIiXSwiaHR0cHM6Ly9wdXJsLmltc2dsb2JhbC5vcmcvc3BlYy9sdGkvY2xhaW0vY3VzdG9tIjp7fSwiZXJyb3JzIjp7ImVycm9ycyI6e319LCJodHRwczovL3B1cmwuaW1zZ2xvYmFsLm9yZy9zcGVjL2x0aS1hZ3MvY2xhaW0vZW5kcG9pbnQiOnsic2NvcGUiOlsiaHR0cHM6Ly9wdXJsLmltc2dsb2JhbC5vcmcvc3BlYy9sdGktYWdzL3Njb3BlL2xpbmVpdGVtIiwiaHR0cHM6Ly9wdXJsLmltc2dsb2JhbC5vcmcvc3BlYy9sdGktYWdzL3Njb3BlL2xpbmVpdGVtLnJlYWRvbmx5IiwiaHR0cHM6Ly9wdXJsLmltc2dsb2JhbC5vcmcvc3BlYy9sdGktYWdzL3Njb3BlL3Jlc3VsdC5yZWFkb25seSIsImh0dHBzOi8vcHVybC5pbXNnbG9iYWwub3JnL3NwZWMvbHRpLWFncy9zY29wZS9zY29yZSJdLCJsaW5laXRlbXMiOiJodHRwczovL2Rldi1jYW52YXMubGlicmV0ZXh0cy5vcmcvYXBpL2x0aS9jb3Vyc2VzLzMvbGluZV9pdGVtcyIsInZhbGlkYXRpb25fY29udGV4dCI6bnVsbCwiZXJyb3JzIjp7ImVycm9ycyI6e319fSwiaHR0cHM6Ly9wdXJsLmltc2dsb2JhbC5vcmcvc3BlYy9sdGktbnJwcy9jbGFpbS9uYW1lc3JvbGVzZXJ2aWNlIjp7ImNvbnRleHRfbWVtYmVyc2hpcHNfdXJsIjoiaHR0cHM6Ly9kZXYtY2FudmFzLmxpYnJldGV4dHMub3JnL2FwaS9sdGkvY291cnNlcy8zL25hbWVzX2FuZF9yb2xlcyIsInNlcnZpY2VfdmVyc2lvbnMiOlsiMi4wIl0sInZhbGlkYXRpb25fY29udGV4dCI6bnVsbCwiZXJyb3JzIjp7ImVycm9ycyI6e319fX0.syAoZV5Z0dIdoXdPqjWCbsOYOCUv7T1xFIIhe4ASxrAWiJFy7UKJXmclMVdu8cqHeEG6uGAvpn5uaB5cg406CQ