Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,12 @@
"learners/sfd_discussions/keep_up.rst": "learners/sfd_discussions/discussions_notifications.rst",
"learners/sfd_discussions/provide_feedback.rst": "learners/sfd_discussions/find_follow_conversations.rst",
"educators/references/course_development/working_with_targz_file.rst": "educators/how-tos/course_development/work_with_targz_file.rst",
"educators/references/advanced_features/planning_content_reuse.rst": "educators/references/advanced_features/lti_content_compatibility.rst",
"educators/concepts/advanced_features/lti_reuse_content.rst": "educators/concepts/advanced_features/using_openedx_as_LTI_provider.rst",
"educators/how-tos/advanced_features/lti_prepare_content.rst": "educators/references/advanced_features/lti_content_compatibility.rst",
"site_ops/install_configure_run_guide/configuration/lti/authentication_options_lti.rst": "site_ops/install_configure_run_guide/configuration/lti/configure_lti.rst",
"site_ops/install_configure_run_guide/configuration/lti/settings_lti.rst": "site_ops/install_configure_run_guide/configuration/lti/configure_lti.rst",
"site_ops/install_configure_run_guide/configuration/lti/tpa_lti.rst": "site_ops/install_configure_run_guide/configuration/lti/configure_lti.rst",
}

tags_create_tags = True
Expand Down
103 changes: 0 additions & 103 deletions source/educators/concepts/advanced_features/lti_reuse_content.rst

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,63 +1,133 @@
.. _Using Open edX as an LTI Tool Provider:

Using Open edX as an LTI Tool Provider
Your instance as an LTI Tool Provider
######################################

.. tags:: educator, concept

You can also include content from an LTI provider in your courses. For more
information, see :ref:`About the LTI Component`.
Open edX platform can act as a Learning Tools Interoperability (LTI) tool provider, allowing you to deliver Open edX course content inside
another LMS such as Canvas, Blackboard or any system that supports LTI 1.1.

.. _Grading Remote Content:
Setting this up involves 2 roles:

Grading Remote Content
**********************
**Site operator**: Enables LTI provider functionality on the Open edX instance and creates LTI 1.1
credentials for external LMS. See :ref:`Configuring an edX Instance as an LTI Tool Provider` (site
operator docs).
Comment thread
sarina marked this conversation as resolved.

When you include problem components from a graded subsection in your Open edX
instance in an external LMS, your Open edX instance will grade the learner
responses to those problems. Your instance then transfers the learner scores
back to the external LMS. This exchange between an external LMS, your Open edX
instance, and the external LMS again is near real time. It can take a few
moments to complete this exchange for a single problem component, and up to
several minutes to return aggregated scores of all of the problems in a unit or
subsection.
**Educator**: Identifies the Open edX course content to share, constructs LTI URLs for that content,
and adds LTI 1.1 configuration along with those URLs to the external LMS.

When you include problem components from your Open edX instance in an external
LMS, note the following requirements.

* The problem component must be in one of the graded subsections in your course.
* Your external LMS might also require that you use a specific part of the
course for graded content. For example, in Canvas, you must add the LTI URL
of a problem component to the "Assignments" section of a course, or to a
module item that points to an assignment. In addition, the user who launches
the LTI material must be eligible to get a grade for the assignment; that is,
a learner and not a TA or course designer.
Content You Can Deliver
=======================

For more information about constructing an LTI URL for a course component, see
:ref:`Determine Content Addresses`.
The Open edX software lets you deliver specific parts of a course via LTI.
You can share a :ref:`subsection <About Course Subsections>`,
a :ref:`unit <About Course Units>`, or an individual :ref:`component <Add a Component>`.
:ref:`Sections <About Course Sections>` are not supported.

.. seealso::

For details on which content types work well when delivered via LTI, see :ref:`Content Compatibility for LTI`.


Learner Authentication Options
==============================

The authentication mode affects how seamlessly learners can access your course content and what you
need to configure in your external LMS. Site operators can configure 3 authentication methods via
the LTI Consumer settings in Django admin:

#. **Anonymous (default)**: First time a learner accesses Open edX content from the external LMS, a user
account is automatically created with a random username and a generated email address. No
personally identifiable information is stored. This mode provides the most seamless experience
and the learner may not even notice that your Open edX instance is involved.

#. **Auto-create with personal information**: When the "Use lti pii" option is enabled, a user account is
Comment thread
ayub02 marked this conversation as resolved.
Outdated
created using the learner's email address from the LTI launch data. If a user with the same
email already exists, the existing account is linked. This mode is useful when you need to identify
learners or associate their LTI activity with an existing Open edX account.

For this to work, configure your external LMS to include ``lis_person_contact_email_primary`` in
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[clarification] who has the ability to configure the external LMS?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will depend on the org. But my assumption is that it'll be educators is most cases since they'll be the ones creating content in Open edX, constructing URLs and then configuring those URLs in other LMSes.

the LTI launch request. Without it, your Open edX instance cannot identify the learner and will create an
account using the LTI user ID instead. You can also send ``lis_person_name_full`` (or
``lis_person_name_given`` and ``lis_person_name_family``) to populate the learner's display name
on the new account, but this is optional.

#. **Require existing account**: When the "Require user account" option is enabled, the learner must
already be logged into your Open edX instance in the same browser, and their Open edX account email must match
the email address the external LMS sends in the launch request. If either condition is not met,
they see an error page with a link to the login page of your Open edX instance. After signing in with the matching
account, they can return to the LTI content. This mode is useful when learners must have
pre-existing accounts on your Open edX instance.

For this to work, configure your external LMS to include ``lis_person_contact_email_primary`` in
the LTI launch request. Without it, the email match fails and the learner sees the error
page, regardless of whether they are signed in.

If both "Use lti pii" and "Require user account" are enabled, "Require user account" takes
precedence and "Use lti pii" is ignored.
Comment thread
ayub02 marked this conversation as resolved.
Outdated


Grading
=======

When you include problem components from a graded subsection in an external LMS, the Open edX software grades
the learner responses and transfers the scores back to the external LMS.

If the content is an individual problem component, the Open edX instance returns the grade for each learner
immediately after they submit an answer.

If the content is a unit or subsection, the Open edX instance aggregates the grades and returns them after a
configurable delay (15 minutes by default).

:ref:`Create a Duplicate Course for LTI use` (how-to)
.. note::

:ref:`Determine Content Addresses` (how-to)
Your external LMS may have additional requirements for grading to work. For example, in Canvas,
the LTI URL of a problem component must be added to the Assignments section of a course, or to
a module item that points to an assignment.

:ref:`Planning for Content Reuse` (reference)
Or the user who launches the LTI material must be eligible to receive a grade (that is, a learner,
not a TA or course designer).

:ref:`Open edX as an LTI Provider to Canvas` (how-to)
What You Need from Your Site Operator
=====================================

:ref:`Open edX as an LTI Provider to Blackboard` (how-to)
Before you can configure your external LMS to consume Open edX content, you need the following
from your site operator:

:ref:`Configuring an edX Instance as an LTI Tool Provider` (site operators)
#. Consumer key: A unique identifier for the external LMS. Your site operator creates this when
configuring the LTI consumer in Django admin.

#. Consumer secret: A shared secret used to authenticate the LTI connection. Created alongside the
consumer key.

You will enter these values into your external LMS when setting up the LTI integration. In
addition, you will need the LTI URL for each piece of Open edX content you want to deliver.
You'll need to construct these yourself using the course ID and usage ID. See :ref:`Determine Content Addresses`.


.. note::

Not all Open edX content types work well when delivered via LTI. For details on which component types are
compatible, see :ref:`Content Compatibility for LTI`.



.. seealso::

:ref:`Content Compatibility for LTI`

:ref:`Determine Content Addresses`

:ref:`Configuring an edX Instance as an LTI Tool Provider` (site operator)

:ref:`Configuring Credentials for a Tool Consumer` (site operators)


**Maintenance chart**

+--------------+-------------------------------+----------------+--------------------------------+
| Review Date | Working Group Reviewer | Release |Test situation |
| Review Date | Reviewer | Release |Test situation |
+--------------+-------------------------------+----------------+--------------------------------+
| 2025-06-04 | MITx | Teak | Pass |
| 2026-05-06 | Aamir Ayub | Verawood | Pass |
Comment thread
sarina marked this conversation as resolved.
+--------------+-------------------------------+----------------+--------------------------------+
| 2025-06-04 | MITx | Teak | Pass |
+--------------+-------------------------------+----------------+--------------------------------+
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,9 @@ To use Open edX course content in the Blackboard LMS, you add a new app to the c

:ref:`Using Open edX as an LTI Tool Provider` (concept)

:ref:`Create a Duplicate Course for LTI use` (how-to)

:ref:`Determine Content Addresses when using Open edX as an LTI Provider<Determine Content Addresses>` (how-to)

:ref:`Planning for Content Reuse (LTI)<Planning for Content Reuse>` (reference)
:ref:`Content Compatibility for LTI` (reference)

:ref:`Example - Open edX as an LTI Provider to Canvas<Open edX as an LTI Provider to Canvas>` (reference)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,9 @@ To use Open edX course content in the Canvas LMS, you add a new app to the cours

:ref:`Using Open edX as an LTI Tool Provider` (concept)

:ref:`Create a Duplicate Course for LTI use` (how-to)

:ref:`Determine Content Addresses when using Open edX as an LTI Provider<Determine Content Addresses>` (how-to)

:ref:`Planning for Content Reuse (LTI)<Planning for Content Reuse>` (reference)
:ref:`Content Compatibility for LTI` (reference)

:ref:`Example - edX as an LTI Provider to Blackboard<Open edX as an LTI Provider to Blackboard>` (how-to)

Expand Down
Loading