LTI 1.3 Integration with Symfony 6.2 tool

PVSargent
Community Member

Hello! 

I'm trying to integrate a tool we developed with Symfony 6.2, to Canvas using LTI (1.3). My goal is to allow students access the tool from the course overview, without the need to log in again (since they are already logged in through Canvas, which uses our institution's CAS auth). We've integrated tools using API developer keys in the past, and I've also managed to set up OAuth2 login to Canvas from my tool (which requires users to authorize Canvas every time they log in, which is a drawback we're facing right now). I'd like to keep the tool's database synchronized with Canvas, so teachers and students enrollments are populated through the API. I have a basic implementation of access tokens (which expire after 1 hour) and would like to implement refresh tokens instead. 

However, I'm new to software development, and trying to do LTI integration has been tricky. I've installed the oat-sa/lib-lti1p3-core, since the bundle is not compatible with our current Symfony version, but I'm lost on how to start setting things up. I've read the docs noticing there is a reference to "Dynamic Registration", which leads to 1EdTech page. I've tried the Reference Implementation as an example, but I'm not sure of how to use this info to actually configure the LTI integration. 

The further I read documentation for both Canvas and IMS, the more it seems the process is complex and requires a lot of configuration (OIDC, handling messages, setting JKWS endpoint, etc).

If anyone has already made an LTI integration with Symfony, I would much appreciate any guidance on how to proceed and which steps you've followed. Also, if you find these objectives are achievable without the need of LTI integration, please let me know. 

Thanks in advance!