PyLTI1p3 is a Python implementation of LTI 1.3 Advantage Tool.
First of all choose and configure test LTI 1.3 Platform. It may be:
- IMS Global test site
- Canvas LMS (Detailed instruction how to setup Canvas as LTI 1.3 Platform is here)
- Blackboard Learn (Documentation)
The most simple way to check example is to use docker
+ docker-compose
.
Change the necessary configs in the configs/game.json
(here is instruction how to generate your own public + private keys):
{
"<issuer>" : [{ // This will usually look something like 'http://example.com'
"default": true, // this block will be used in case if client-id was not passed
"client_id" : "<client_id1>", // This is the id received in the 'aud' during a launch
"auth_login_url" : "<auth_login_url>", // The platform's OIDC login endpoint
"auth_token_url" : "<auth_token_url>", // The platform's service authorization endpoint
"auth_audience": null, // The platform's OAuth2 Audience (aud). Is used to get platform's access token,
// Usually the same as "auth_token_url" but in the common case could be a different url
"key_set_url" : "<key_set_url>", // The platform's JWKS endpoint
"key_set": null, // in case if platform's JWKS endpoint somehow unavailable you may paste JWKS here
"private_key_file" : "<path_to_private_key>", // Relative path to the tool's private key
"public_key_file": "<path_to_public_key>", // Relative path to the tool's public key
"deployment_ids" : ["<deployment_id>"] // The deployment_id passed by the platform during launch
}, {
"default": false,
"client_id" : "<client_id2>",
...
}]
}
and execute:
$ docker-compose up --build
You may use virtualenv instead of docker:
$ virtualenv venv
$ source venv/bin/activate
$ pip install -r requirements.txt
$ cd game
$ python app.py
You may also use Heroku to host this sample. For more information, see this link
Now there is game example tool you can launch into on the port 9001:
OIDC Login URL: http://127.0.0.1:9001/login/
LTI Launch URL: http://127.0.0.1:9001/launch/
JWKS URL: http://127.0.0.1:9001/jwks/