...
This adapter processes the launch data so that it is compliant with the format that the Sakai Basic LTI provider expects. Firstly, the endpoint_url parameter is suffixed with the tool_id. Next the context_id is checked to see if it is a ~. If so, an , an additional parameter is added, ext_sakai_provider_eid with value of the user_id. This tells the Sakai Basic LTI provider that it is to treat the supplied user_id as the eid, ie jsmith26. Ordinary calls expect this to be the actual internal UUID for the user, which is unknown to external applications without a web service call so we use the available data instead. It also signals The value if ~ for the context_id signals to the provider that the site we are requesting is the user's My Workspace (signalled by the ~) so we are able to render tools from My Workspace if context_id=~site..
Launch data, example 1:
Code Block |
---|
endpoint_url=https://your.sakai.server/imsblti/provider/;; context_id=~;; tool_id=sakai.resources;; |
...
- The required logic for the Sakai Basic LTI provider was added in version 1.4 . This is shipped with Sakai 2.9 but is also compatible with earlier versions of Sakai so and ported back to 1.3. So if you are using an older version of Basic LTI you will need to upgrade the Sakai Basic LTI providerto at least 1.3. If you are using Sakai 2.6, there is a patch included in the source tag of Basic LTI that you need to apply in order to get Basic LTI 1.3 running in Sakai 2.6 (there are a couple of API changes).
- You should also enable the highly trusted consumers setting in sakai.properties. This allows the user_id and context_id to be used by the provider as-is. Under the standard configuration, the Sakai Basic LTI provider will prefix the incoming user_id and context_id, and create a new user account and site. This limits the level of integration possible as many users will have existing sites and content that can be reused outside of Sakai. You need to set the following property to allow the values to passthrough without this prefixing occurring:
Code Block basiclti.provider.highly.trusted.consumers=my.consumer.key.here
- If enabling highly trusted consumers (recommended) it assumes the username of users in both uPortal and Sakai are identical (e.g. jsmith26 in both systems).
- The tool_id you can use is dictated by the list of allowed tools in sakai.properties.
...