About registering an LMS to your classroom
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."
Note: 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."
Supported LMSes
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."
Configuring Canvas for GitHub 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.
1. Register GitHub Classroom Developer Keys in Canvas
-
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".
2. Register your developer keys with GitHub Classroom
-
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.
Configuring Moodle for GitHub Classroom
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.
1. Enable publishing as an LTI tool in Moodle
- 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.
2. Register GitHub Classroom as an external tool
-
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.
3. Registering your Moodle instance with GitHub Classroom
-
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.
Configuring Sakai for GitHub Classroom
1. Register GitHub Classroom as an external tool
-
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.
2. Registering your Sakai instance with GitHub Classroom
-
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.