Extension to manage LTI services for TAO
These instructions assume that you have already a TAO installation on your system. If you don't, go to package/tao and follow the installation instructions.
If you installed your TAO instance through package/tao,
oat-sa/extension-tao-lti
is very likely already installed. You can verify this under Settings -> Extension
manager, where it would appear on the left hand side as taoLti
. Alternatively you would find it in
the code at /config/generis/installation.conf.php
.
Note, that you have to be logged in as System Administrator to do this.
Add the extension to your TAO composer and to the autoloader:
composer require oat-sa/extension-tao-lti
Install the extension on the CLI from the project root:
Linux:
sudo php tao/scripts/installExtension oat-sa/extension-tao-lti
Windows:
php tao\scripts\installExtension oat-sa/extension-tao-lti
As a system administrator you can also install it through the TAO Extension Manager:
- Settings (the gears on the right hand side of the menu) -> Extension manager
- Select taoLti on the right hand side, check the box and hit install
Description: this specifies LTI client configuration.
If the configuration file is not present as
../config/generis/ServiceOptions.conf.php
, create it by copying from
../generis/config/default/ServiceOptions.conf.php
.
Example
<?php
return new oat\generis\model\DependencyInjection\ServiceOptions(
[
oat\taoLti\models\classes\Client\LtiClientFactory::class => [
'config' => [ // This configuration accepts
'proxy' => [ // [Guzzle Request Options](https://docs.guzzlephp.org/en/stable/request-options.html)
'http' => 'http://localhost:8125',
'https' => 'https://localhost:9124',
],
],
],
]
);
Description: this specifies a single option as the adapter
key of the array. This adapter is to be used to authenticate LTI requests and is retrieved in FactoryLtiAuthAdapterService.
Possible values of the adapter
key:
- an instance of any class that implements the
common_user_auth_Adapter
interface
Value examples:
['config' => ['adapter' => 'oat\\taoLti\\models\\classes\\LtiAuthAdapter']]
Description: This option determine whether to check if the 'session' request parameter matches the internal PHP session ID before launching an LTI tool
Possible values:
true
: enable the session check. 2 more HTTP redirects are neededfalse
: disable the session check
Description: factory for producing LTI users
Possible values:
- an instance of any class that implements the
oat\taoLti\models\classes\user\LtiUserFactoryInterface
interface
Description: not used
Description: not used
Description: a prefix for storing taoId
=> ltiId
relation in the key-value storage to look up LTI users
Possible values:
- any unique string
Description: a prefix for storing ltiId
=> taoId
relation in the key-value storage to execute reverse lookup
Possible values:
- any unique string
Description: specifies a list of validators to be used for validating LTI launch data
Possible values:
- a list of instances of any classes that implement the
LtiValidatorInterface
interface. Validators should throwLtiException
in case of not valid data, return values are not considered
Value examples:
[ new oat\taoLti\models\classes\LaunchData\Validator\Lti11LaunchDataValidator() ]
ENV variable | Required | Description |
---|---|---|
LTI_AUTHORIZATION_SERVER_FACTORY_ENCRYPTION_KEY | Yes | Encryption key for Authorization server factory |
LTI_DEFAULT_SCOPE | No, default value is https://purl.imsglobal.org/spec/lti-bo/scope/basicoutcome |
A scope for score repository |
You can find the extension wiki here.