Feature Wiki
Tabs
Support for Deep Linking as Provider/Tool
Page Overview
[Hide]If you need any help in filling out this wiki page, please visit our ILIAS Community FAQ. And please complete the metadata information in the right column after having created the page.
1 Initial Problem
ILIAS does not support LTI Deep Linking 2.0 when it acts as an LTI 1.3 Provider/Tool. An external Platform cannot launch ILIAS into a selection workflow, allow an authorised user to choose repository content and receive launchable resource links for the selected objects.
This capability is required for interoperable LTI Advantage integrations. ILIAS 12 needs Deep Linking support in the Provider/Tool role, limited initially to repository objects returned as LTI resource links.
2 Conceptual Summary
When an external LTI 1.3 Platform starts a Deep Linking launch, ILIAS shall authenticate the user and present a repository browser. The user can navigate and search the repository, select one or more eligible repository objects and confirm the selection.
ILIAS shall return the selected objects to the Platform in a signed LtiDeepLinkingResponse. The initial scope returns only ltiResourceLink content items. Each item contains the title, optional description, launch URL and the information needed for a later LTI resource-link launch.
The feature is limited to ILIAS as Provider/Tool in ILIAS 12. The external Platform controls which content types, presentation targets and number of items it accepts; ILIAS shall respect these settings.

3 User Interface Modifications
3.1 List of Affected Views
- LTI Provider/Tool Deep Linking launch entry point.
- Repository browser for Deep Linking content selection.
- Selection confirmation and return to the external Platform.
3.2 User Interface Details
- The repository browser shall provide existing repository navigation and search controls, together with a selectable object list. Only objects eligible for an LTI resource-link launch are selectable.
- A Select button confirms the selected objects. It is enabled only when the selection respects the Platform request, including accepted item type and maximum number of items.
- A Cancel button returns an empty Deep Linking response so that the external Platform can close its selection workflow without creating a resource link.
- After confirmation, ILIAS returns the signed response to the Platform without presenting a new repository object to the user.
3.3 New User Interface Concepts
No new UI concept is required. The feature reuses existing repository navigation, search, selection controls and standard buttons.
3.4 Accessibility Implications
No new accessibility issue is expected. The repository browser and Select/Cancel controls must remain keyboard-operable, expose accessible names and use existing ILIAS focus management. The external Platform owns its surrounding Deep Linking user interface.
4 Technical Information
- ILIAS validates the signed
LtiDeepLinkingRequestusing the existing LTI 1.3 launch and registration data. - It reads
deep_linking_settings, including accepted types, presentation targets, multiple-selection setting and return URL. - It maps selected eligible repository objects to
ltiResourceLinkcontent items and sends a signedLtiDeepLinkingResponseby HTTP form POST to the supplied return URL. - The feature depends on existing LTI Provider launch handling, repository access checks, object launch URL generation, JWT/key management and provider privacy settings.
5 Privacy
The Deep Linking launch processes the data already used by LTI 1.3: a pseudonymous user identifier, user role, context identifier and context title. Name, email and profile picture are included only when permitted by the existing LTI Provider privacy settings. The selected repository object title, description and launch URL are returned to the Platform as content-item data; they are not additional personal data.
6 Security
Deep Linking accepts an external, signed launch request and returns a signed response. ILIAS must validate the request signature, issuer, audience, deployment, expiry, nonce/state and authorised user before showing repository content. The return URL must come from the validated request, and the response must be posted only to that URL. Repository access checks apply to every selectable object, and titles, descriptions and custom parameters must be treated as external input when later displayed or launched.
7 Contact
Author of the Request: Díaz, Saúl [sdiaz]
Maintainer: Díaz, Saúl [sdiaz]
Implementation of the feature is done by: Díaz, Saúl [sdiaz]
8 Funding
If you are interest in funding this feature, please add your name and institution to this list.
- …
9 Discussion
10 Implementation
{ The maintainer has to give a description of the final implementation and add screenshots if possible. }
Test Cases
- {Test case number linked to Testrail} : {test case title}
Privacy
Information in privacy.md of component: updated on {date} by {user} | no change required
Approval
Approved at {date} by {user}.
Last edited: 24. Jul 2026, 13:59, Díaz, Saúl [sdiaz]