.. _openedx: Connecting Open edX =================== .. contents:: On this page :local: :depth: 2 This page describes how to connect an `Open edX `_ site to Blocks. Open edX exposes LTI 1.3 tools through the **reusable LTI configuration** (``lti_store``) and the ``lti_consumer`` XBlock. Before you start ---------------- * You need administrator access to the Open edX site, including the LTI reusable configuration store (Django admin or Studio LTI settings, depending on your deployment). * You need a Blocks workspace with available platform/registration/deployment capacity in your plan. Step 1: Create the platform in Blocks ------------------------------------- #. In the workspace sidebar, open **Integrations**. #. Create a new **platform** and choose the **Open edX** setup type. #. Enter your Open edX site's issuer (its base URL, for example ``https://campus.example.com``) and save. Step 2: Register Blocks in Open edX ----------------------------------- #. Open the new platform's edit page in Blocks. It shows the Open edX form values to use. #. In Open edX, create a reusable LTI configuration (LTI 1.3) and paste in the Blocks values: * **OIDC login URL** * **Launch / redirect URL** * **JWKS URL** (or the public key PEM, if your version pastes a key instead of a URL) * **Deep Linking URL** #. Save the configuration in Open edX. Open edX then issues platform values, including: * **Client ID** * **Deployment ID** (usually ``1``) * **Public keyset URL** * **Access token URL** * **Login URL** Step 3: Complete the registration in Blocks ------------------------------------------- #. Copy the **Client ID** from Open edX back into the Blocks platform. #. Use the **Create suggested registration** shortcut on the platform edit page. Blocks pre-fills the **access token URL** and **public keyset URL** from the issuer using the default Open edX reusable store path; adjust them if your deployment uses different values. #. Save the registration. Blocks automatically creates the default **deployment** (ID ``1``). .. note:: OIDC login and launch validation will fail until both the **registration** and the **deployment** exist in Blocks. The Open edX registration flow creates the default deployment for you. Step 4: Add an activity to a course ----------------------------------- #. In Studio, add an **LTI Consumer** component to a unit and select the reusable configuration you created. #. Use the component's content-selection (Deep Linking) action to open Blocks and choose a tool type. See :ref:`deep_linking`. #. Publish the unit. Learners can now launch the activity from the course. Troubleshooting --------------- * **Launch is rejected** — confirm the client ID, deployment ID, and keyset/token URLs in Blocks exactly match what Open edX issued, and that both a registration and a deployment exist. * **Keyset errors** — verify the public keyset URL in Blocks points to the correct ``lti_consumer`` keyset for this configuration. `Back to Home `_