Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This guide provides steps for deploying the Microsoft 365 Learning Tool Interoperability® (LTI) app in any LTI 1.3 compliant LMS.
For an overview of the Microsoft 365 LTI integration for learning management systems (LMS), see Integrating Microsoft products with your Learning Management System.
Request a Microsoft 365 sandbox environment
Important
If you're a Microsoft Partner that has an LTI 1.3 Advantage conformant platform and wish to test deployment and functionality of the Teams Assignments LTI tool on behalf of your customers, you need a Microsoft 365 Education sandbox environment to deploy and test the application.
To request a Microsoft 365 sandbox environment:
You first need a Microsoft Partner ID. Your Microsoft Partner ID appears in the top right corner next to your name when you log into the Microsoft Partner Center. If you don't have one, you can obtain one by joining the Microsoft AI Cloud Partner program.
When you have your Microsoft Partner ID, request a sandbox using one of the following methods based on your business type:
- Request a Microsoft 365 Education development/testing sandbox as an Education ISV or SI partner who builds and supports integrations with Microsoft products and services.
- Request to join the Microsoft Global Training Partner program as a Training Partner who delivers training and support to customers on Microsoft products and services.
Important
The person who deploys this integration should be an Administrator role in the LMS. A person in your organization who is a Microsoft 365 Global Administrator is also needed to help complete the configuration of the app before first time use.
By installing and using the Microsoft Education LTI app, educators and students can transmit grades to the LMS where the terms of use and privacy policy of that application apply.
LTI requirements for integration
LTI 1.3 Advantage Complete platform implementation and conformance
The following LTI specifications should be implemented by the platform:
- Learning Tools Interoperability (LTI) Core Specification
- Learning Tools Interoperability (LTI) Deep Linking Specification
- Learning Tools Interoperability (LTI) Names and Roles Provisioning Services Specification
- Learning Tools Interoperability (LTI) Assignment and Grading Services Specification
Note
1EdTech LTI Certification isn't required but highly recommended for ensuring conformance to the above specifications.
LMS configuration requirements for the integration
User matching between Microsoft 365/Entra ID and the LMS
To fully integrate with your LMS environment and perform tasks on behalf of users (like populating students and co-teachers into OneNote Class Notebooks, setting file permissions, or sending grades from Assignments to the LMS gradebook), the Microsoft 365 LTI app must be able to map Student and Teacher identities between the LMS and the Microsoft Entra ID directory services. It's required to populate the LMS user Email field (which is the same email value returned from the LTI Names and Roles Provisioning Service) with the user's Microsoft 365/Entra User UPN or Primary Email address. Verify this for people in every course that will use the integration to ensure the Microsoft apps can match LMS users.
Deploy the Teams Assignments LTI tool for your LMS
Go to the Microsoft LMS Gateway.
Select the Go to Registration Portal button.
Sign in with a Microsoft 365 Education account (this is the account provided to you by a qualified education institution, or an account in your Edu Partner Microsoft 365 Education sandbox environment).
After signing in, select Add new registration.
Select Microsoft 365 LTI, and then select Next.
Enter an easily identifiable Registration name.
Select Other as the LMS platform, and then select Next. You're given a list of keys that need to be copied and pasted to your LMS site.
Leave the Microsoft LMS Gateway open in your browser tab and open the LMS site in another browser or tab and log in as an administrator.
Navigate to your platform's LTI 1.3 Tool configurations to add a new LTI 1.3 tool.
Copy the values provided and save them to the like fields in your configuration. You need to add them to your LMS LTI 1.3 tool configuration in the following steps. Hint: Check your LMS documentation to find the steps to create a new LTI 1.3 registration and the correct fields to paste these values into.
Your LMS should provide you with platform URLs that is needed to complete the Microsoft LMS Gateway registration. Hint: Check your LMS's documentation to find the correct place to get the registration values from your LMS.
On the Microsoft LMS gateway tab, select LMS provided registration keys.
Copy and paste the platform values from the LMS tool registration into correct fields on Microsoft's LMS provided registration keys page.
Select Next.
Review the fields and values summarized on the Review and add page.
If there are no errors, select Save and exit.
When you see a message indicating successful registration and summarizing the values you entered, you've completed registration of the platform on the Microsoft LMS Gateway. You can return to the Microsoft LMS Gateway to view these values for troubleshooting or to restore a registration on the LMS side anytime.
You're now ready to continue configuring common registration settings in the LTI 1.3 tool in your LMS platform.
Configure common registration settings
Every platform may have different options and steps for completing tool registration and adding placements for where the tool is launched within the platform. However, many common settings and steps are required to successfully deploy the app.
Enable the tool to be available to both instructor (teacher) and learner (student) roles in the platform.
Enable Names and Roles Provisioning Service (NRPS).
Enable Assignment and Grading Services (AGS).
Confirm that the Name, Email, and Username of the user that launches the tool will be sent to the tool in the privacy settings.
Add the following custom parameters to be replaced by the platform at runtime. The LTI spec suggests the following variables be available, but platforms may have additional variables that are better suited based on definitions.
Name LTI/LIS Variable Description Example expression t ResourceLink.title Title of the resource lineItem (assignment) from the label property t=$ResourceLink.title dd ResourceLink.submission.endDateTime Due date of the resource lineItem (assignment) from the endDateTime property dd=$ResourceLink.submission.endDateTime mp N/A Maximum score possible for a lineItem submission from the scoreMaximum property mp=$ResourceLink.lineItem.scoreMaximum csid CourseOffering.sourcedId Sourced ID for the course offering in the LMS csid=$CourseOffering.sourcedId ssid CourseSection.sourcedId Sourced IDs for the course sections in the LMS ssid=$CourseSection.sourcedId Add the secure Icon URL from the tool values copied if the platform requires this URL to display an icon.
Add placements for the tool to launch from in the LMS platform
The Teams Assignments LTI tool implements several launches that can be leveraged by a platform including Resource Launches and Deep Linking launches.
Resource Launch placement - best used in a course context as a navigation menu item placement, or where course level resources are available to instructor and student member roles.
Deep Linking Launch placement - best used in a new assignment or content activity placement (external tool type of assignment/content) where the tool, when launched by an instructor, creates a resource link that can be launched from the assignments or content activity list by instructors and teachers. The tool also creates a lineItem and sends scores back to the LMS to sync into its gradebook as Teams Assignments are graded by the instructor.
In the following list, select the feature/launches available to view their expected behaviors. Not every platform has to implement every launch.
Microsoft 365 navigation
Feature/Launch:
- Microsoft 365 navigation
Description:
- Instructors and students can navigate to all of the Microsoft Education experiences enabled in the Microsoft 365 LTI.
Role:
- membership#Instructor
- membership#Student
LTI Launch Message Type:
- LtiResourceLinkRequest
Custom Claim Parameters:
- N/A
Tool Response:
- Renders the OneDrive Explorer
Advantage Service Calls:
- N/A
Allowed File Type:
- All file types allowed
Previewable File Types:
Linking a OneDrive file
Feature/Launch:
- Linking a OneDrive file
Description:
- An instructor can link a OneDrive file inside a course. The file is accessible as readonly to all students in the class.
Role:
- membership#Instructor
LTI Launch Message Type:
- LtiDeepLinkingRequest
Custom Claim Parameters:
- launchType = link-selection
Tool Response:
- DeepLinkResponse with launch url
LtiLinkItem contentItem = new LtiLinkItem
{
Title = <Name>,
Url = <Url>,
Custom = {
"LtiUserId", <LtiUserId>,
"Type", <type>, // Link/Embed
"ltiContextId", <ContextId>
"sharedItemId", <ItemId> // guid
},
};
Advantage Service Calls:
- N/A
Allowed File Type:
- All file types allowed
Previewable File Types:
Link and embed OneDrive files
Feature/Launch:
- Link and embed OneDrive files
Description:
- An instructor can link or embed a OneDrive file inside a course. The file is accessible as readonly to all students and teacher in the class.
Role:
- membership#Instructor
LTI Launch Message Type:
- LtiDeepLinkingRequest
Custom Claim Parameters:
- launchType = shared-item
Tool Response:
- DeepLinkResponse with launch url
LtiLinkItem contentItem = new LtiLinkItem
{
Title = <Name>,
Url = <Url>,
Custom = {
"LtiUserId", <LtiUserId>,
"Type", <type>, // Link/Embed
"ltiContextId", <ContextId>
"sharedItemId", <ItemId> // guid
},
};
Advantage Service Calls:
- N/A
Additional Details:
- Need mechanism to pass custom parameters in deep links https://www.imsglobal.org/spec/lti-dl/v2p0#custom-properties
Allowed File Type:
- All file types allowed
Previewable File Types:
View linked/embedded files
Feature/Launch:
- View linked/embedded files
Description:
- View the embedded files with a deep links
Role:
- membership#Instructor
- membership#Student
LTI Launch Message Type:
- LtiResourceLinkRequest
Tool Response:
- Renders the embedded file
Advantage Service Calls:
- N/A
Additional Details:
- Custom parameters set by the deep link request must be sent in the corresponding resource link launch.
Allowed File Type:
- All file types allowed
Previewable File Types:
Create a Microsoft submittable activity that is part of an LMS content item
Feature/Launch:
- Create a Microsoft submittable activity that is part of an LMS content item
Description:
- An instructor adds a Microsoft document or assignment to an LMS content item (assignment) for all student members of the course to complete and submit.
Role:
- membership#Instructor
LTI Launch Message Type:
- LtiDeepLinkingRequest
Custom Claim Parameters:
- launchType=assignments
Tool Response:
- DeepLink Response with launch url
LtiLinkItem contentItem = new LtiLinkItem
{
Title = <Name>,
Url = <Url>,
Custom = {
"LtiUserId":<LtiUserId>,
"Type":<type>, // Link/Embed
"ltiContextId":<ContextId>
"sharedItemId":<ItemId> // guid,
"launchType":"assignments",
"icon: " : <iconurl>
},
};
Advantage Service Calls:
- N/A
Additional Details:
- Need mechanism to pass custom parameters in deep links
https://www.imsglobal.org/spec/lti-dl/v2p0#custom-properties
Allowed File Type:
- PPTX, XLSX, DOCX
Previewable File Types:
- PPTX, XLSX, DOCX
View a Microsoft submittable activity that is part of an LMS content item
Feature/Launch:
- View a Microsoft submittable activity that is part of an LMS content item
Description:
- Students able to view and get their own copy of the Microsoft activity (document, assignment, etc.) to view, complete, and submit
Role:
- membership#Student
LTI Launch Message Type:
- LtiResourceLinkRequest
Custom Claim Parameters:
- launchType=assignments
- Two additional claims required:
- max allowed Attempts
- student attempts done
Tool Response:
- Render the assignment
Advantage Service Calls:
- N/A
Additional Details:
- Custom parameters set by the deep link request must be sent in the corresponding resource link launch.
- The launch should have a AssignmentGradeService LineItemUrl
- In Canvas. the two custom claims are:
- "AllowedAttempts": "$Canvas.assignment.allowedAttempts",
- "StudentAttempts": "$Canvas.assignment.submission.studentAttempts"
Allowed File Type:
- PPTX, XLSX, DOCX
Previewable File Types:
- PPTX, XLSX, DOCX
Create a Microsoft submittable activity
Feature/Launch:
- Create a Microsoft submittable activity
Description:
- An instructor adds a Microsoft document or assignment to an LMS content item (assignment) for all student members of the course to complete and submit.
Role:
- membership#Instructor
LTI Launch Message Type:
- LtiDeepLinkingRequest
Custom Claim Parameters:
- launchType=courseAssignments
Tool Response:
- DeepLink Response with launch url
{
Title = <Name>,
Url = <Url>,
Custom = {
"LtiUserId":<LtiUserId>,
"Type":<type>, // Link/Embed
"ltiContextId":<ContextId>
"sharedItemId":<ItemId> // guid,
"launchType":"assignments",
"icon: " : <iconurl>
},
};
View a Microsoft submittable activity
Feature/Launch:
- View a Microsoft submittable activity
Description:
- Students able to view and get their own copy of the Microsoft activity (document, assignment, etc.) to view, complete, and submit.
Role:
- membership#Student
LTI Launch Message Type:
- LtiResourceLinkRequest
Custom Claim Parameters:
- launchType=assignments
- Two additional claims required:
- max allowed Attempts
- student attempts done
Tool Response:
- Render the assignment
Advantage Service Calls:
- N/A
Additional Details:
- Custom parameters set by the deep link request must be sent in the corresponding resource link launch.
- The launch should have a AssignmentGradeService LineItemUrl.
- In Canvas, the two custom claims are:
- "AllowedAttempts": "$Canvas.assignment.allowedAttempts",
- "StudentAttempts": "$Canvas.assignment.submission.studentAttempts"
Allowed File Type:
- PPTX, XLSX, DOCX
Previewable File Types:
- PPTX, XLSX, DOCX
Submit a cloud assignment
Feature/Launch:
- Submit a cloud assignment
Description:
- Once students finish editing the file, OneDrive UX provides a way to submit the file which would be available to Teacher for Grading using AGS.
Role:
- membership#Student
LTI Launch Message Type:
- LtiResourceLinkRequest
Custom Claim Parameters:
- Call is from within the OneDrive UX.
Advantage Service Calls:
- AGS Call to upload the score.
LtiContentItem[] contentItems = new[]
{
new LtiContentItem
{
Url = driveItemWithDownloadUrl.DownloadUrl,
Title = driveItemWithDownloadUrl.Name,
Text = driveItemWithDownloadUrl.Name,
Type = "file",
},
};
LtiSubmission ltiSubmission = new LtiSubmission
{
SubmittedAt = DateTime.UtcNow,
ContentItems = contentItems,
};
var score = new LtiScore
{
UserId = ltiUser.LtiUserId,
ActivityProgress = ActivityProgress.Completed,
GradingProgress = GradingProgess.PendingManual,
TimeStamp = DateTime.UtcNow,
Submission = ltiSubmission,
};
Post Call - <LineItemUrl>/Scores
Allowed File Type:
- PPTX, XLSX, DOCX
Previewable File Types:
- PPTX, XLSX, DOCX
Submit a Assignment using One Drive (Templateless)
Feature/Launch:
- Submit a Assignment using One Drive (Templateless)
Description:
- For a submission, student can upload a file using OneDrive.
Role:
- membership#Student
LTI Launch Message Type:
- LtiDeepLinkingRequest
Custom Claim Parameters:
- launchType=assignments
Tool Response:
- DeepLink response
LtiFileItem contentItem = new LtiFileItem
{
Title = <name>,
Url = driveItem.DownloadUrl,
CopyAdvice = true,
Text = <filename>,
Custom = new Dictionary<string, string>
{
{ "LtiUserId", sharedItem.LtiUserId },
{ "Type", sharedItem.ItemType },
},
};
Advantage Service Calls:
- N/A
Additional Details:
- The LMS should use the downloadUrl to download the file.
Allowed File Type:
- All file types allowed
Previewable File Types:
- No preview
Create a collaboration document
Feature/Launch:
- Create a collaboration document
Description:
- Instructors or students can create a collaboration document where all members in a course can collaborate with option to use an existing file or create a blank file.
Role:
- membership#Instructor
- membership#Student
LTI Launch Message Type:
- LtiDeepLinkingRequest
Custom Claim Parameters:
- launchType=collaborations
Tool Response:
- DeepLink Response with launch url
LtiLinkItem contentItem = new LtiLinkItem
{
Title = <Name>,
Url = <Url>,
Custom = {
"LtiUserId", <LtiUserId>,
"Type", <type>, // Link/Embed
"ltiContextId", <ContextId>
"sharedItemId", <ItemId> // guid
},
};
LtiDeepLinkingResponse response = new LtiDeepLinkingResponse
{
Data = ltiDeepLinkingRequest?.DeepLinkingSettings?.Data,
DeploymentId = ltiDeepLinkingRequest?.DeploymentId,
ContentItem = {
Title = collaborationFileRequest.DocumentName,
Url = documentLink,
Text = collaborationFileRequest.DocumentDescription,
Type = "ltiResourceLink",
Custom = new Dictionary<string, string>()
{
{ "launchType", "collaborations" },
{ "sharedItemId", sharedItem.ItemId },
},
"https://canvas.instructure.com/lti/collaboration" = {
Users = [],
Groups = []
}
}
}
};
Advantage Service Calls:
- NRPS
Additional Details:
- Max 250 members allowed in collaboration.
Allowed File Type:
- PPTX, XLSX, DOCX
Previewable File Types:
- PPTX, XLSX, DOCX
View a collaboration document - Jatin
Feature/Launch:
- View a collaboration document - Jatin
Description:
- Opening a collaboration document
Role:
- membership#Instructor
- membership#Student
LTI Launch Message Type:
- LtiResourceLinkRequest
Custom Claim Parameters:
- launchType = collaborations
- sharedItemId = <itemId>
Tool Response:
- Renders the collaboration document
Allowed File Type:
- PPTX, XLSX, DOCX
Previewable File Types:
- PPTX, XLSX, DOCX
Copy Assignments from one course to another
Feature/Launch:
- Copy Assignments from one course to another
Description:
- Copy assignments that contain OneDrive LTI resources; allows educators to import existing assignments to new courses
Role:
- membership#Instructor
- membership#Student
LTI Launch Message Type:
- LtiResourceLinkRequest
Custom Claim Parameters:
- ContextHistory=$Context.id.history (irrespective of placement; as in Canvas)
Tool Response:
- Copies over the resource and renders it when launched
Additional Details:
- Prerequisite: Context.id.history LTI parameter must be implemented
http://www.imsglobal.org/spec/lti/v1p3/#lti-context-variable
Admin settings UX launch
Feature/Launch:
- Admin settings UX launch
Role:
- System/person#Administrator
- Institution/person#Administrator
LTI Launch Message Type:
- LtiResourceLinkRequest
Custom Claim Parameters:
- launchType=account
Tool Response:
- Renders admin settings UX
First-time Configuration by an LMS Administrator
You must launch the app for the first time as a user with an LMS Administrator role (http://purl.imsglobal.org/vocab/lis/v2/system/person#Administrator or http://purl.imsglobal.org/vocab/lis/v2/institution/person#Administrator) to complete the configuration for your deployment and activate the tool. Users won't have access until you complete this step.
As an LMS Administrator, access any course that has the tool deployed with a Resource or DeepLinking launch.
Launch the tool to trigger the Admin Settings first-run experience for configuration.
Continue with the Microsoft 365 LTI first-time configuration steps to complete the configuration for your organization.
The Microsoft Education app is deployed, configured, and is ready to use in your LMS!
Ongoing use by educators and students in a course
On first access, users must sign in using their Microsoft 365 (Microsoft Entra) account.
Browser settings
Cookies should be allowed for Microsoft apps.
Popups shouldn't be blocked for Microsoft apps.
If you receive an error message regarding cookies being blocked, check your browser's address bar for an icon to allow third-party cookies and popups. If this issue persists, review your settings related to cookies and popups to make sure they're allowed for this app.
Getting help and giving feedback
LMS and Microsoft 365 admins can contact Microsoft Education Support to help resolve configuration and deployment issues, for themselves or on behalf of users.
Educators and Learners can contact support or give feedback directly from the app through the help and feedback menu.
Learning Tools Interoperability® (LTI®) is a trademark of the 1EdTech Consortium, Inc. (1edtech.org).