Skip to content

Commit

Permalink
Merge pull request #1017 from ccnmtl/pylti1.3
Browse files Browse the repository at this point in the history
Add compatibility with new LTI 1.3 support
  • Loading branch information
ndittren authored Mar 25, 2024
2 parents d92fe9f + 5b8cf00 commit af9a322
Show file tree
Hide file tree
Showing 11 changed files with 339 additions and 1 deletion.
27 changes: 27 additions & 0 deletions configs/cert_suite_private.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAsW3eobPIj5LsyHcMGckVSSC621uL+0zkeMoWfXfNmvTH+zt5
WOeEIdz+X7fK+F+lO7ic5WdJEGmp9/cjAf0Z6SsmnvvHlHV/xsWtJm4DiuuF2MAa
hRQ5QEkhaEdh5QM2vAYyc8Nfxe504vA3czuynrW9MsOdZHeVzF+zWhhEl+olC5fW
A1rhTUPpdxuZ0opVIrGJtI/QYfndoN+7zTs/4CXqG6WpB+AZio8j7c6fJLC7J33c
pxB1+O+64Qbh+5sxz46cEByboAB8qerYCmcfxxfBbwyySBBK5X77aNHWA01B1kpO
Q2VB8YKQk+OrXsPgJobPkR9ONWa9DC9JjEdUJwIDAQABAoIBAQCAA+qutt2NIY/v
71zuudO+yHupSzsLXOY3dG+XpTnWhKhJTxb1m00Ndbqe6yfp3nCET2X8anIgAmzc
+RXsGGZ6gmTCLp1IMyK3EuckJBowQFB5G9nGjNnl1R3idCZgqtnx/XKnbZ6LW8o/
9tu7K6ZrtmrE1riXxWRyadYoufu7ssNTqtj03oh3Tvw+Ze6xvF6hpaxnbVHxJcGt
xZO51L6rGOSFq5CJ81BswyBDOKB/Z2OC0o3m2t4ZF4/2Lf070sB7RoejGD7mhYVe
lEOoC95C14hfcspzmDEb8I/n0MvAxlwddM4KZRilAJ+e2R0rM9M1MnyYsmYUsMNX
EKWcx+/5AoGBAOLtNVbIohpY5kbX4WREJ/0INPbbx0gf68ozEZTjsOzIP7oaIzry
URmxyZzSpx446QCO8s26vuxrPGm7OAteNS7UpDdunzKsaIlZScZQEpE9htp3MKKw
KXaA4l7H55uWWnaUAcDqjEdybhYL6SbPKhOaK53VeHOLro900FiRnfaDAoGBAMgp
O8GwAI3LbD06Fn+DT+3hj/i8wxbWilgJlI+RU+wWfQ421jMKv2dck8zbnzKGxEwA
3WPh6gGMlkavEZ95d0qZ/TOkSh+VIjJuOrjcckRcrKcycYJJUzreO7ENsFbA+8xL
Qp2gNV+NntiChzSUGY5Nup3keoaT9iV13oYDSdqNAoGARDn9Z3I7CqDf2zzcz0CO
pUzqX64EZHL0eX6RMqqibw5l2pYxMW/ZYlhJvZS4GiYSJ9DSv3f+Hya+qytW1lQk
uUfFd8USqDGd3G2z+KPqcTCGcviS7tb4IGDvrn976xNxb2VggZgDRRfqcUZzeu+e
PvaDVpjv9g1xFkCQw5BEZfECgYBcSB5jywhGV14c0FYlDd5g9xiQfj6XnewEcM5M
bp05gJjBX+jbeX4LYnRGA49fFSEVRWTMsxBXDIEQL5C5bJ/iBiLllz4RV4l/pLBw
IDqSaAO1xhztC29S+bidhYkiRjEQ3DXnREC3QCzW9z7sr8ckg5OhTgBrYXYfiTtB
n+yB1QKBgG/J+WhkqMEtZ8CgdoiTIqYKmFsLvl07wETAVU6Nv1sEI+jnhyug0QtQ
yLAlBOVyrXuJ1DZMX6hTRij4L0jvnJFSq0Sv8COuLIH90xdq/NTNQ3LAy60l/3b1
ojAnnRJORDegdJjCBxJ59Fch6Qfd+e8742DVsJu8zVo2garUVMH3
-----END RSA PRIVATE KEY-----
98 changes: 98 additions & 0 deletions configs/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
{
"http://imsglobal.org": [{
"default": true,
"client_id": "pytest12345",
"auth_login_url": "https://lti-ri.imsglobal.org/platforms/370/authorizations/new",
"auth_token_url": "https://lti-ri.imsglobal.org/platforms/370/access_tokens",
"key_set_url": "https://lti-ri.imsglobal.org/platforms/370/platform_keys/361.json",
"key_set": {
"keys": [
{
"kty": "RSA",
"e": "AQAB",
"n": "r3WB5ECKptJliYft6F_XJysCy1KevoGJgKNHgdVR20lplUv1SzRH1mifzOmEzxWM0kj6blS7SRxK9GFGs6optHAmzcb6_joegKzLHSj14RRVSoI0MgyltJcAl8z6d4yZ9KobV8OvpICnMgsGO20Wih-Cq-oSUjtJT7WET3GZmzmM9MzamiGsCtC0dUWdDOW1FOMzTt8et9YA5jOfkLdJdPyZ5mdUZjBkYMlDGoD8fPRPdS9M-uczxvUeuKvyy1BVGlu5AG0xy-wN1tKjSE1iuC5Kkm39CZwQXBRpStDExWw_ApzP40SK3CKez4ls3jjkE3i4CpJSgLn1D8rT6wOpJw",
"kid": "uhMfBQzVLmaJNU9c1am2X9pTzcEYhgYL2hO6hbYAvdw",
"alg": "RS256",
"use": "sig"
}
]
},
"private_key_file": "private.key",
"public_key_file": "public.key",
"deployment_ids": ["py1234"]
}],
"https://canvas.instructure.com": [{
"default": true,
"client_id": "43060000000000260",
"auth_login_url": "http://canvas.test/api/lti/authorize_redirect",
"auth_token_url": "http://canvas.test/login/oauth2/token",
"key_set_url": "http://canvas.test/api/lti/security/jwks",
"key_set": null,
"private_key_file": "private.key",
"public_key_file": "public.key",
"deployment_ids": [
"2:4dde05e8ca1973bcca9bffc13e1548820eee93a3",
"22708:d9b22ed2c560ba981f77e3f9b47853130e830f34"
]
}],
"https://canvas.test.instructure.com": [{
"default": true,
"client_id": "43060000000000260",
"auth_login_url": "http://canvas.test/api/lti/authorize_redirect",
"auth_token_url": "http://canvas.test/login/oauth2/token",
"key_set_url": "http://canvas.test/api/lti/security/jwks",
"key_set": null,
"private_key_file": "private.key",
"public_key_file": "public.key",
"deployment_ids": [
"2:4dde05e8ca1973bcca9bffc13e1548820eee93a3",
"22708:d9b22ed2c560ba981f77e3f9b47853130e830f34"
]
}],
"ltiadvantagevalidator.imsglobal.org": [{
"default": true,
"client_id": "imstestuser",
"auth_login_url": "https://ltiadvantagevalidator.imsglobal.org/ltitool/oidcauthurl.html",
"auth_token_url": "https://oauth2server.imsglobal.org/oauth2server/authcodejwt",
"key_set_url": "https://oauth2server.imsglobal.org/jwks",
"key_set": null,
"private_key_file": "cert_suite_private.key",
"public_key_file": null,
"deployment_ids": ["testdeploy"]
}],
"https://blackboard.com": [{
"default": true,
"client_id": "client-id",
"auth_login_url": "https://developer.blackboard.com/api/v1/gateway/oidcauth",
"auth_token_url": "https://developer.blackboard.com/api/v1/gateway/oauth2/jwttoken",
"key_set_url": "https://developer.blackboard.com/api/v1/management/applications/<your client id>/jwks.json",
"key_set": null,
"private_key_file": "private.key",
"public_key_file": "public.key",
"deployment_ids": ["deployment-id"]
}],
"https://partners.brightspace.com": [{
"default": true,
"client_id": "client-id",
"auth_login_url": "https://partners.brightspace.com/d2l/lti/authenticate",
"auth_token_url": "https://auth.brightspace.com/core/connect/token",
"auth_audience": "https://api.brightspace.com/auth/token",
"key_set_url": "https://partners.brightspace.com/d2l/.well-known/jwks",
"key_set": null,
"private_key_file": "private2.key",
"public_key_file": "public2.key",
"deployment_ids": ["deployment-id"]
}],
"http://moodle.test": [{
"default": true,
"client_id": "LyRl2z2Ai4Vxgok",
"auth_login_url": "http://moodle.test/mod/lti/auth.php",
"auth_token_url": "http://moodle.test/mod/lti/token.php",
"auth_audience": null,
"key_set_url": "http://moodle.test/mod/lti/certs.php",
"key_set": null,
"private_key_file": "private.key",
"public_key_file": "public.key",
"deployment_ids": ["1"]
}]
}
51 changes: 51 additions & 0 deletions configs/jwtRS256.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----
14 changes: 14 additions & 0 deletions configs/jwtRS256.key.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnm0vg6og9IA9G0LLASuF
CiEEPy2EV4jt1/DGTB19bGyQtfyJrJNLAbJH4h+H1uNc3Kr52tO5S7PjG74D7eHB
WyhnH1aJExlYqGOD2MLd5eK/+mQeHLgGT/rSLpBArRpqejqdTdZbs+szmoiqNzsT
DIstPu29tD2GAhUTdkKiwsIixEYgVot7mPrjgfJEK6ITe+bU3frhOe0BzuMdbIQn
8BUxmzolEzagDbvKuH7v8bJBxblGKdvBTO7F4uPzTbJHom/NdZeI+ZB4nrF40Hlo
ibxD1k16qv8YCH5Iw4BVipGEKz58ZTZyn8z7xQH7aRC3efjSuGPYkkdOtADE/JBK
19NXJ0F0RlFSvGKz+ulBeHJYS26lf3shuOEdjW57XURAOcSzJFY+Plalmwzwt2iQ
UPivn6s+DluZI+/HkoLbFjZDKECPunKpMrt8CJ4SJHMyOYLMP6jNda+HKgfugQJ3
3Ggkw8YI+Ry47DgH6gmen+F+dhXI6FsRyrJNnuwN/3tRvV/bPDuUjNKHUhGW+wqN
caMgnXrbw89+jkkJ9xVnQ+Nc0KnjARaIF7o2X2YQCvujUtxRvPww8APpun+pQEz7
cBUBP6n05T/N30vHT01iinCHZB2HxcyuAy8HCn8VL8sqPLYKquWf6HqifGDhdsGf
tagTB75rHhLhbgZe7gctI/8CAwEAAQ==
-----END PUBLIC KEY-----
51 changes: 51 additions & 0 deletions configs/private.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----
51 changes: 51 additions & 0 deletions configs/private2.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----
8 changes: 8 additions & 0 deletions configs/public.jwk.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"e": "AQAB",
"kid": "4-jxKnvNa6RPKLn2uIritoP4Vli-ixkUoSo2A5FGjL4",
"kty": "RSA",
"n": "nm0vg6og9IA9G0LLASuFCiEEPy2EV4jt1_DGTB19bGyQtfyJrJNLAbJH4h-H1uNc3Kr52tO5S7PjG74D7eHBWyhnH1aJExlYqGOD2MLd5eK_-mQeHLgGT_rSLpBArRpqejqdTdZbs-szmoiqNzsTDIstPu29tD2GAhUTdkKiwsIixEYgVot7mPrjgfJEK6ITe-bU3frhOe0BzuMdbIQn8BUxmzolEzagDbvKuH7v8bJBxblGKdvBTO7F4uPzTbJHom_NdZeI-ZB4nrF40HloibxD1k16qv8YCH5Iw4BVipGEKz58ZTZyn8z7xQH7aRC3efjSuGPYkkdOtADE_JBK19NXJ0F0RlFSvGKz-ulBeHJYS26lf3shuOEdjW57XURAOcSzJFY-Plalmwzwt2iQUPivn6s-DluZI-_HkoLbFjZDKECPunKpMrt8CJ4SJHMyOYLMP6jNda-HKgfugQJ33Ggkw8YI-Ry47DgH6gmen-F-dhXI6FsRyrJNnuwN_3tRvV_bPDuUjNKHUhGW-wqNcaMgnXrbw89-jkkJ9xVnQ-Nc0KnjARaIF7o2X2YQCvujUtxRvPww8APpun-pQEz7cBUBP6n05T_N30vHT01iinCHZB2HxcyuAy8HCn8VL8sqPLYKquWf6HqifGDhdsGftagTB75rHhLhbgZe7gctI_8",
"alg": "RS256",
"use": "sig"
}
14 changes: 14 additions & 0 deletions configs/public.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnm0vg6og9IA9G0LLASuF
CiEEPy2EV4jt1/DGTB19bGyQtfyJrJNLAbJH4h+H1uNc3Kr52tO5S7PjG74D7eHB
WyhnH1aJExlYqGOD2MLd5eK/+mQeHLgGT/rSLpBArRpqejqdTdZbs+szmoiqNzsT
DIstPu29tD2GAhUTdkKiwsIixEYgVot7mPrjgfJEK6ITe+bU3frhOe0BzuMdbIQn
8BUxmzolEzagDbvKuH7v8bJBxblGKdvBTO7F4uPzTbJHom/NdZeI+ZB4nrF40Hlo
ibxD1k16qv8YCH5Iw4BVipGEKz58ZTZyn8z7xQH7aRC3efjSuGPYkkdOtADE/JBK
19NXJ0F0RlFSvGKz+ulBeHJYS26lf3shuOEdjW57XURAOcSzJFY+Plalmwzwt2iQ
UPivn6s+DluZI+/HkoLbFjZDKECPunKpMrt8CJ4SJHMyOYLMP6jNda+HKgfugQJ3
3Ggkw8YI+Ry47DgH6gmen+F+dhXI6FsRyrJNnuwN/3tRvV/bPDuUjNKHUhGW+wqN
caMgnXrbw89+jkkJ9xVnQ+Nc0KnjARaIF7o2X2YQCvujUtxRvPww8APpun+pQEz7
cBUBP6n05T/N30vHT01iinCHZB2HxcyuAy8HCn8VL8sqPLYKquWf6HqifGDhdsGf
tagTB75rHhLhbgZe7gctI/8CAwEAAQ==
-----END PUBLIC KEY-----
14 changes: 14 additions & 0 deletions configs/public2.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnm0vg6og9IA9G0LLASuF
CiEEPy2EV4jt1/DGTB19bGyQtfyJrJNLAbJH4h+H1uNc3Kr52tO5S7PjG74D7eHB
WyhnH1aJExlYqGOD2MLd5eK/+mQeHLgGT/rSLpBArRpqejqdTdZbs+szmoiqNzsT
DIstPu29tD2GAhUTdkKiwsIixEYgVot7mPrjgfJEK6ITe+bU3frhOe0BzuMdbIQn
8BUxmzolEzagDbvKuH7v8bJBxblGKdvBTO7F4uPzTbJHom/NdZeI+ZB4nrF40Hlo
ibxD1k16qv8YCH5Iw4BVipGEKz58ZTZyn8z7xQH7aRC3efjSuGPYkkdOtADE/JBK
19NXJ0F0RlFSvGKz+ulBeHJYS26lf3shuOEdjW57XURAOcSzJFY+Plalmwzwt2iQ
UPivn6s+DluZI+/HkoLbFjZDKECPunKpMrt8CJ4SJHMyOYLMP6jNda+HKgfugQJ3
3Ggkw8YI+Ry47DgH6gmen+F+dhXI6FsRyrJNnuwN/3tRvV/bPDuUjNKHUhGW+wqN
caMgnXrbw89+jkkJ9xVnQ+Nc0KnjARaIF7o2X2YQCvujUtxRvPww8APpun+pQEz7
cBUBP6n05T/N30vHT01iinCHZB2HxcyuAy8HCn8VL8sqPLYKquWf6HqifGDhdsGf
tagTB75rHhLhbgZe7gctI/8CAwEAAQ==
-----END PUBLIC KEY-----
2 changes: 2 additions & 0 deletions djangoltiproviderexample/settings_shared.py
Original file line number Diff line number Diff line change
Expand Up @@ -167,3 +167,5 @@
'2': '/assignment/2/',
}
}

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
10 changes: 9 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,15 @@ oauth2==1.9.0.post1
oauthlib==3.2.2
pylti==0.7.0

django-lti-provider==1.0.0
certifi==2024.2.2 # requests
idna==3.6 # requests
charset_normalizer==3.3.2 # requests
urllib3==2.2.1 # requests
requests==2.31.0 # pylti1p3
pyjwt==2.8.0 # pylti1p3
jwcrypto==1.5.6 # pylti1p3
pylti1p3==2.0.0
django-lti-provider @ git+https://github.com/ccnmtl/django-lti-provider@main
entrypoints==0.4

stevedore==5.2.0
Expand Down

0 comments on commit af9a322

Please sign in to comment.