A WeBWorK server can pair with multiple LMSs for authentication, though there are a couple of different approaches.
For WeBWorK servers that serve multiple institutions, they typically have the LTI connection configured at the course level, which provides the ability to set different parameters for the LMS that is connected to that course, including having a different consumer secret for each instance. This method has been in use for several years so it definitely works. The downside is that you have to maintain the configuration for each course, though this can be mitigated by copying or linking a template configuration file.
In your case it would probably make more sense to have a global LTI configuration for WeBWorK, and then use the same consumer secret in both Moodle and Canvas. As long as the LMS provides the correct authentication WeBWorK doesn't care where it's coming from, so there is no reason why both LMSs can't connect to the same server with the same secret.
It sounds like each course at your institution will need to choose between Moodle and Canvas, which will prevent some other possible complications. If two different LMSs connect to the same WeBWorK course I see two issues that could arise:
- If the student's username is different in the two LMSs, then it raises the possibility of two accounts getting created for the same student.
- There would likely be unpredictable behaviour If you enable grade passback, since the two LMSs would be fighting over which one gets the grade passback.
There will be one thing to be careful of if you install WeBWorK 2.17: there is a new feature that allows you to add a name and url for your LMS so that the WW login screen can redirect users to the right place to log in. If you're using multiple LMSs you would have to think about what to put in those places.