mhuber84 / oat-lti
Wrapper for TAO - LTI 1.3 Core Library
Installs: 2
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Forks: 0
Type:typo3-cms-extension
pkg:composer/mhuber84/oat-lti
Requires
- oat-sa/lib-lti1p3-core: ^7.3
- typo3/cms-core: ^12.4
Requires (Dev)
- roave/security-advisories: dev-latest
Replaces
- typo3-ter/oat-lti: 1.0.4
README
Show a LTI tool resource (f.e. a moodle course) with TYPO3 as LTI platform.
Implementation for the "TAO - LTI 1.3 Core Library" https://github.com/oat-sa/lib-lti1p3-core LTI 1.3 specification: https://www.imsglobal.org/spec/lti/v1p3/
Content Elements
You can use two different content elements, "Button" and "iFrame". Both elements need a logged in frontend user!
The frontend user will get an account in the LTI tool via oauth2 and oidc, if he uses the element the first time. Then he gets logged in at the LTI tool and can use the resource.
The value for the field "LTI Resource" in the TYPO3 content elements comes from the LTI tool.
Moodle: Edit course / More / Published as LTI tools / Launch details / Custom Properties / id=xxx-xxx-xxx-xxx-xxx-xxx
Use the "xxx-xxx-xxx-xxx-xxx-xxx" in the TYPO3 content element's field "LTI Resource". Deep Linking is not implemented!
https://docs.moodle.org/501/en/Publish_as_LTI_tool#Sharing_access_to_a_course_or_activity
https://docs.moodle.org/501/en/Publish_as_LTI_tool#/media/File:publishing_resources.png
Configuration
TYPO3: config/sites/main/config.yaml
oat_lti:
platforms:
-
identifier: '111-xxx-xxx-xxx-xxx'
name: 'My TYPO3 Platform'
audience: 'https://typo3.ddev.site'
oidcInitiationUrl: 'https://typo3.ddev.site/oatlti/authorize'
launchUrl: 'https://typo3.ddev.site/oatlti/token'
tools:
-
identifier: '222-xxx-xxx-xxx-xxx'
name: 'My LTI Tool'
audience: 'https://moodle.ddev.site'
oidcInitiationUrl: 'https://moodle.ddev.site/enrol/lti/login.php?id=555123'
launchUrl: 'https://moodle.ddev.site/enrol/lti/launch.php'
deepLinkingUrl: 'https://moodle.ddev.site/enrol/lti/launch_deeplink.php'
keyChains:
-
identifier: '333-xxx-xxx-xxx-xxx'
keySetName: 'key-set-name'
privateKey: 'oauth2/private.key'
publicKey: 'oauth2/public.key'
registrations:
-
identifier: '444-xxx-xxx-xxx-xxx'
typo3BackendName: 'My TYPO3 Platform => My LTI Tool'
clientId: '444-xxx-xxx-xxx-xxx'
platform: '111-xxx-xxx-xxx-xxx'
tool: '222-xxx-xxx-xxx-xxx'
platformKeyChain: '333-xxx-xxx-xxx-xxx'
toolKeyChain: null
platformJwksUrl: null
toolJwksUrl: 'https://moodle.ddev.site/enrol/lti/jwks.php'
deploymentIds:
- '666123'
LTI Tool:
Platform details:
- Platform name: My TYPO3 Platform
- Platform ID (issuer): https://typo3.ddev.site
- Client ID: 444-xxx-xxx-xxx-xxx
- Authentication request URL: https://typo3.ddev.site/oatlti/authorize
- Public keyset URL: https://typo3.ddev.site/oatlti/jwks/key-set-name.json
- Access token URL: https://typo3.ddev.site/oatlti/token
Deployments:
- Deployment ID: 666123
Moodle: Site Administration / Plugins / Publish as LTI tool / Tool registration / Register Platform
Dynamic Registration is not implemented! Use the manual registration process.
https://docs.moodle.org/501/en/Publish_as_LTI_tool#Register_Moodle_with_the_platform