Before you can connect your LMS to a classroom, an administrator for your LMS instance needs to configure your LMS to allow GitHub Classroom and then register your LMS with GitHub Classroom to initiate the OAuth handshake. An admin only needs to do this registration process once, then any teacher who uses their LMS instance may sync their LMS courses to classrooms. For more information on connecting an LMS course to a classroom, see "
Connect a learning management system course to a classroom
."
GitHub Classroom supports connecting with LMSes that implement Learning Tools Interoperability (LTI) standards.
- LTI version 1.3
- LTI Advantage
Using LTI helps keep your information safe and secure. LTI is an industry-standard protocol and GitHub Classroom's use of LTI is certified by the Instructional Management System (IMS) Global Learning Consortium. For more information, see
Learning Tools Interoperability
and
About IMS Global Learning Consortium
on the IMS Global Learning Consortium website.
GitHub has tested and verified registration, connection and the import of roster data from the following LMSes into GitHub Classroom.
- Canvas
- Moodle
- Sakai
- Google Classroom
Note:
Other LMSes that implement LTI 1.3 may also work with GitHub Classroom, but have not yet been verified. LMS admins may need to configure custom settings around privacy and button placement and may need to provide teachers with documentation on how to launch into GitHub Classroom from the LMS.
Google Classroom does not use the LTI protocol, so does not need to be connected to GitHub Classroom before importing the roster. For more information, see "
Connect a learning management system course to a classroom
."
You can register your Canvas installation with GitHub Classroom to enable teachers to import roster data into their classrooms. For more information about Canvas, see the
Canvas website
.
-
Sign into
Canvas
.
-
In the left sidebar on the home page, click
Admin
, then click
Site Admin
.
-
Click
Developer Keys
.
-
Under "Developer Keys", click the
+ Developer Key
button, then select
+ LTI Key
from the dropdown menu.
-
On the "Key Settings" configuration screen, set the fields to the following values.
Field in Canvas app configuration
| Value or setting
|
---|
Method
| Manual Entry
|
Title
| GitHub Classroom
Note
: You can use any name, but if you set this to something else, be sure this is communicated to teachers.
|
Description
| Sync Canvas course rosters to GitHub Classroom
(or something similar)
|
Target Link URI
| https://classroom.github.com/context-link
|
OpenID Connect Initiation URL
| https://classroom.github.com/lti1p3/openid-connect/auth
|
JWK Method
| Public JWK URL
|
Public JWK URL
| https://classroom.github.com/.well-known/jwks.json
|
Redirect URIs
| https://classroom.github.com/lti1p3/openid-connect/redirect
|
LTI Advantage Services
dropdown
| Select the "Can retrieve user data associated with the context the tool is installed in" checkbox.
|
Additional Settings
dropdown
| Under "Privacy Level", select
Public
|
Placements
| Select
Course Settings Sub Navigation
.
Note
: If you set the placement to something else, this must be communicated to teachers. Our documentation will expect that this is the placement of the button.
|
-
Click
Save
.
-
In the table on the "Developer Keys" page, in the row for the GitHub Classroom developer key, take note of the value of the client ID in the "Details" column -- this must be communicated to teachers for them to finish setup.
-
In the table on the "Developer Keys" page, under the "State" column, toggle the state of the key to "On".
-
Go to
https://classroom.github.com/register-lms
.
-
Fill in the following information:
- Under "LMS Type", choose "Canvas" from the dropdown menu.
- "Issuer Identifier":
https://canvas.instructure.com
- "Domain": The base URL to your Canvas instance
- "Client ID": The "Client ID" under "Details" from the developer key you created
- "OIDC Authorization end-point": The base URL to your Canvas instance with
/api/lti/authorize_redirect
appended at the end.
- "OAuth 2.0 Token Retrieval URL": The base URL to your Canvas instance with
/login/oauth2/token
appended at the end.
- "Key Set URL": The base URL to your Canvas instance with
/api/lti/security/jwks
appended at the end.
-
Click
Register
.
-
You should see the "Successfully registered LMS" banner at the top of the screen, which means that you've registered your LMS instance and teachers can now link their classrooms.
You can register your Moodle installation with GitHub Classroom to enable teachers to import roster data into their classrooms. For more information about Moodle, see the
Moodle website
.
You must be using Moodle version 3.0 or greater.
- Sign into
Moodle
.
- Click the "Site administration" tab in the top level menu.
- On the "Site administration" page, click the "Plugins" tab, then scroll down to the "Authentication" section and click
Manage authentication
.
- Next to the "LTI" field, click the toggle button to enable LTI.
- Click the "Plugins" tab again, then scroll down to "Enrolments" and click
Manage enrol plugins
.
- Next to the "Publish as LTI tool" field, click the toggle button to enable publishing as an LTI tool.
- Return to the "Site administration" page by clicking on the "Site administration" tab in the top level menu, then scroll down to the "Security" section and click
HTTP Security
.
- Next to "Allow frame embedding", select the checkbox to enable frame embedding, then click
Save changes
.
-
Return to the Moodle "Site administration" page by clicking on the "Site administration" tab in the top level menu.
-
Click the "Plugins" tab, then next to the "Activity modules" section, under "External tool", click
Manage tools
.
-
Click
Configure a tool manually
.
-
Enter the following values in the fields.
Field in Moodle app configuration
| Value or setting
|
---|
Tool name
| GitHub Classroom
Note
: You can use any name, but if you set this to something else, be sure this is communicated to teachers.
|
Tool URL
| https://classroom.github.com
|
LTI version
| LTI 1.3
|
Public Key type
| Keyset URL
|
Public keyset
| https://classroom.github.com/.well-known/jwks.json
|
Initiate login URL
| https://classroom.github.com/lti1p3/openid-connect/auth
|
Redirection URI(s)
| https://classroom.github.com/lti1p3/openid-connect/redirect
|
Default launch container
| New window
|
-
Select the
Supports Deep Linking (Content-Item Message)
checkbox.
-
Under the "Services" dropdown, next to "IMS LTI Names and Role Provisioning", select "Use this service to retrieve members' information as per privacy settings" from the dropdown menu.
-
Under the "Privacy" dropdown, set "Share launcher's name with tool" to "Always" and set "Share launcher's email with tool" to "Always."
-
Click
Save changes
.
-
GitHub Classroom has now been registered as an external tool. Under "Tools", on the 'GitHub Classroom" box, click the menu icon to see the "Tool configuration details" screen. This screen contains important information you'll need to input in the last step of registering your instance in GitHub Classroom below.
-
Go to
https://classroom.github.com/register-lms
.
-
Fill in the following information:
- Under "LMS Type", choose "Moodle" from the dropdown menu.
- "Issuer Identifier": The "Platform ID" from the "Tool configuration details" of the external tool you created in Moodle
- "Domain": The base URL to your Moodle instance
- "Client ID": The "Client ID" from the "Tool configuration details" of the external tool you created in Moodle
- "Authentication request URL": The "Authentication Request URL" from the "Tool configuration details" of the external tool you created in Moodle
- "Access token URL": The "Access token URL" from the "Tool configuration details" of the external tool you created in Moodle
- "Key Set URL": The "Public keyset URL" from the "Tool configuration details" of the external tool you created in Moodle
-
Click
Register
.
-
You should see the "Successfully registered LMS" banner at the top of the screen, which means that you've registered your LMS instance and teachers can now link their classrooms.
-
Go to Sakai and log in.
-
Go to "Administration Workspace" and select
External Tools
in the left hand sidebar.
-
Click
Install LTI 1.x Tool
.
-
Enter the following values in the fields.
Field in Sakai app configuration
| Value or setting
|
---|
Tool name
| GitHub Classroom - [Your Course Name]
Note
: You can use any name, but if you set this to something else, be sure this is communicated to teachers.
|
Button Text
(Text in tool menu)
| What the teacher will see on the button to launch to GitHub Classroom. For example, the value could be
sync
.
|
Launch URL
| https://classroom.github.com/context-link
|
Send User Names to External Tool
| Select this checkbox.
|
Provide Roster to External Tool
| Select this checkbox.
|
Tool supports LTI 1.3
| Select this checkbox.
|
LTI 1.3 Tool Keyset URL
| https://classroom.github.com/.well-known/jwks.json
|
LTI 1.3 Tool OpenID Connect/Initialization Endpoint
| https://classroom.github.com/lti1p3/openid-connect/auth
|
LTI 1.3 Tool Redirect Endpoint
| https://classroom.github.com/lti1p3/openid-connect/redirect
|
-
Upon submitting, Sakai will show you the information you need to register your Sakai instance with GitHub Classroom.
-
Go to
https://classroom.github.com/register-lms
.
-
Fill in the following information:
- Under "LMS Type", choose "Sakai" from the dropdown menu.
- "LTI 1.3 Platform Issuer": The "LTI 1.3 Platform Issuer" field as provided by Sakai
- "Domain": The base URL to your Sakai instance
- "LTI 1.3 Client ID": The "LTI 1.3 Client ID" field as provided by Sakai
- "LTI 1.3 Platform OIDC Authentication URL": The "LTI 1.3 Platform OIDC Authentication URL" field as provided by Sakai
- "LTI 1.3 Platform OAuth2 Bearer Token Retrieval URL": The "LTI 1.3 Platform OAuth2 Bearer Token Retrieval URL" field as provided by Sakai
- "LTI 1.3 Platform OAuth2 Well-Known/KeySet URL": The "LTI 1.3 Platform OAuth2 Well-Known/KeySet URL" field as provided by Sakai
-
Click
Register
.
-
You should see the "Successfully registered LMS" banner at the top of the screen, which means that you've registered your LMS instance and teachers can now link their classrooms.