Skip to main content
All CollectionsTechnical Documents
Kyron LTI 1.3 Documentation

Kyron LTI 1.3 Documentation

Updated this week

LTI Integration Overview

Learning Tools Interoperability (LTI) is a widely adopted technical standard that enables secure communication between Learning Management Systems (LMS) and external tools like Kyron Learning. This protocol streamlines the integration process, fostering a more interconnected learning environment.

An LMS or another web application (Platform) and a provider (Tool), like Kyron Learning, establish a secure connection by adhering to protocols defined by LTI. This connection enables the LMS to seamlessly access and display Kyron's interactive video lessons within its interface.


Benefits of integrating Kyron Learning with your LMS via LTI

  • Simplified Integration: LTI streamlines the process of adding Kyron's interactive video lessons to your LMS. This eliminates the need for complex, custom integrations, saving you valuable time and resources.

  • Seamless User Experience: With LTI, students can access and complete Kyron's engaging courses directly within your LMS, eliminating the need for separate logins and fostering a more cohesive learning experience.

  • Enhanced Security: LTI ensures secure data exchange between your LMS and Kyron Learning. User credentials and student progress are transmitted following industry standards, providing peace of mind for educators and institutions.

  • Centralized Data Tracking: LTI integrations enable instructors to track student progress and performance within Kyron's courses directly through your LMS, offering a more comprehensive view of student learning.

LTI establishes a secure connection between a platform (e.g., LMS) and a tool (e.g., Kyron Learning) following a set of protocols. This connection allows the platform to launch the tool's content (courses) for students and securely transfer student scores back to the platform.

To enable this flow, both the platform and tool need to be registered with each other. Read more about LTI 1.3 here.


Requirements

  • Kyron Learning Account: Create a Kyron Learning account to access the platform's course creation tools.

  • Learning Management System (LMS): An LMS platform that supports LTI 1.3. This can be a third-party LMS like Canvas, Coursera, etc.. Or it can be your own implementation of an LTI Platform.


Establishing an LTI connection

The LTI connection between a platform and Kyron involves a two-way registration process. You will need to first register Kyron as a tool in your platform. Then, register your platform in the Kyron application as an LTI platform.

1. Kyron Registration with the Platform:

💡Are you using Canvas?

You can use our Canvas Developer Key Deep Linking Setup URL to automatically setup the developer key.

Kyron provides the following information to the platform for LTI initiation:

  • Kyron LTI Initiation URL (OpenID Connect Initiation URL)

    https://app.kyronlearning.com/lti/v1/initiate

  • Target Link URI

    • This is an LTI launch link to a Kyron course.

      https://app.kyronlearning.com/lti/v1/launch

  • Deep Linking URL - LtiDeepLinkingRequest:

    • Deep linking URL is exactly the same as the LtiResourceLinkRequest URL shared in the item two above. Quality of the request is being calculated from the LTI message type in the request payload (id_token) - LtiResourceLinkRequest vs LtiDeepLinkingRequest.

https://app.kyronlearning.com/lti/v1/launch

This link can be obtained by reaching out to your administrator at Kyron Learning or reaching out to support@kyronlearning.com.

  • JWT Keyset

    • Kyron uses a keyset to validate JWT tokens. Make sure to choose only one of two methods to provide the keyset to the LMS. Using both methods at the same time might cause issues.

    • Get from keyset URL:

    https://app.kyronlearning.com/.well-known/jwks.json

    • Or, use keyset itself:

    {
    "e": "AQAB",
    "n":
    "xdEkWy-P6btIQIBdddlcgjD5pdubB2gRlkMlFBVhSedcsUkX4OhHKmGFElFVNIcGeQjh2aO8MIuvlWegLLNHJtVB29mv-zJiCVNJ2a-_ecWVRPeyVMfkOJJHopWSv0tXTsKlRpm4lN0HA-J13Wd001Cbw67O5Ibm4v5ZgqWlwIPF1bpBp9VlLOG8BdEXSLnso5zoaW4Pv4UD4c0ogR0DwXzmVN-wxSMdB_KDfJ30UXo2MZVHQCDSXFbS4uuvQKlgafBPGCzsS7lnbvABrg9ORNEUPENhb8lu_UmKRLRzpCokCJqX1HtLgTEiteBVgxmQAmIQ3EHL_4rNCyBKRgZONw",
    "alg": "RS256",
    "kid": "kyron-learning",
    "kty": "RSA",
    "use": "sig"
    }

2. Platform Registration with Kyron

To register your platform with Kyron Learning, navigate to the LTI Configuration page on Settings & Members in the LTI Settings Tab

All the information on the registration page is required. You will need to provide the following.

  • Name: Name of your LMS platform.

  • Description: Brief description of your LMS platform.

  • Issuer: Unique URL identifying your LMS platform in HTTPS format. E.g. https://canvas.instructure.com.

  • Client ID: Unique identifier your platform uses with Kyron Learning.

  • Keyset URL: URL to your platform's keyset.

  • OIDC Auth URL: URL to your platform's OIDC authentication endpoint.

  • Access Token URL: URL to your platform's access token endpoint for score return.

💡 Are you using Canvas?

These are some of the exact values you will need to register a platform in Kyron. Even if you have your own Canvas instance, Canvas expect these URLs to match exactly when configuring LTI:

Access Token URL:

https://<your_canvas_instance_subdomain>.instructure.com/login/oauth2/token

BEWARE: Any trailing slash at the end of these values might break your LTI connection.

3. Obtaining Kyron Lesson Launch Links

For users whose accounts were created BEFORE 10/8: If you are not using LTI deep linking flow and in need of individual resource launch links for the courses, you can find them in your Kyron Studio library. Click the three dot menu next to your lesson title and click Get LTI Link.

Note: The lesson must be published for you to access the link.

For users whose accounts were created AFTER 10/8: The LTI link is in the course editor. Click on Export Course > LTI.

If you have any trouble, you should reach out to your administrator from Kyron to provide you with these links.

4. Assigning Kyron Lessons to Students

Note: LTI Deep Linking functionality is under development. Currently, course links need to be added individually within the LMS.

Once you have completed platform registration (Step 1 and Step 2) and obtained course links (Step 3), you can proceed with assigning courses to students. The assignment method depends on your LMS platform:

  • Advanced LMS (e.g., Canvas). Utilize your LMS's built-in lesson assignment functionalities.

  • Basic LMS. Share the obtained launch link from Kyron Learning with students as an assignment. A properly registered platform will establish the LTI connection through this link.

  • Embedded Player. For presenting Kyron courses within an LMS via an embedded player during the LTI session, refer to your LMS's documentation for iframe implementation details regarding LTI connections. Kyron's shared information (as explained in Step 1) remains unchanged.

5. Deep Linking Flow (LtiDeepLinkingRequest)

Why should you use LTI Deep Linking?

Deep linking will enable your tutors, teacher or whoever will be responsible to assign courses from Kyron to your audience to easily and safely reach and to list all the courses available to them in Kyron. This way, they will be able to get the correct connection information (URL) to the course along with other information about the course and assign them with a few clicks.

Please follow the Kyron Registration with Platform section to establish a LTI deep linking connection. Be aware that launch endpoints for both resource link and deep linking requests are the same: https://app.kyronlearning.com/lti/v1/launch.

When the Kyron is registered in your platform for the deep linking flow (LtiDeepLinkingRequest), you will be able to get a list of your courses -along with all the public courses available to all users- on Kyron Learning to search and assign quickly.

Deep linking flow requires necessary implementations in your platform to render said course selection tool in an iframe within your application. You can follow Deep Linking Specifications to learn how.

Once this is set up, you should be able to see the following view on your end when you send a launch request with message type claim LtiDeepLinkingRequest to our OIDC URL endpoint.

6. Score - Assignment and Grade Services (AGS)

For score reporting to function, your platform must grant Kyron Learning "score" scope during LTI flow initiation. Refer to the related documentation.

Kyron Learning scores each assessment module and transmits the total score of a lesson as a percentage through LTI. In addition, Kyron will transmit when a student starts and completes an assignment.

  1. Student Starts Assignment

The platform receives a notification from Kyron Learning when a student begins a Kyron course (either through embedded player or a new tab). The result resembles this:

{
"activityProgress": "Started",
"gradingProgress": "NotReady",
"scoreGiven": 0,
"scoreMaximum": 1,
"comment": ""
}

2. Student Completes Assignment

Upon course completion, Kyron Learning sends a second result, containing the score of the course if there was an assessment section present. If there is no assessment section, Kyron will return the grading status as “PendingManual” and will leave it to the instructor of the course to provide a grade.

https://app.kyronlearning.com/lti/score

The result will look like this:

{
activityProgress: "Completed",
gradingProgress: "FullyGraded",
scoreGiven: 0.9,
scoreMaximum: 1,
comment: "Lessons transcription is available in claim: https://app.kyronlearning.com/lti/score within this result object.",

"https://app.kyronlearning.com/lti/score": "<JSON_TRANSCRIPT>", // see below
}

If you encounter any questions during the integration process, contact Kyron Learning support at support@kyronlearning.com.


Canvas Integration

Kyron Learning seamlessly integrates with Canvas, a widely adopted Learning Management System (LMS), empowering you to effortlessly incorporate Kyron Learning's interactive learning materials directly into your Canvas courses. This streamlined integration fosters a cohesive learning environment, simplifies content delivery, and enhances student engagement.

1. Benefits of Canvas Integration

  • Simplified Content Delivery: Effortlessly import Kyron courses into your Canvas courses, eliminating duplicate content creation and saving valuable time and resources.

  • Enhanced Student Engagement: Students can access Kyron's interactive learning experiences directly within their familiar Canvas environment, promoting a more engaging and interactive learning experience.

  • Streamlined Workflow: Manage courses, assignments, and student progress efficiently within the familiar Canvas interface, leveraging Kyron Learning's robust learning materials within your existing workflow.

  • Improved Learning Outcomes: Track student progress and identify areas for improvement using Kyron Learning's data-driven insights, integrated seamlessly with Canvas, to personalize instruction and achieve better learning outcomes.

2. Requirements

3. Configuration

Register Kyron with your Canvas account

  1. Navigate to your Canvas account as an administrator and access the "Admin" tab.

  2. Locate the "Developer Keys" section and click the "+ Developer Key" button.

  3. Choose "LTI Key" from the dropdown menu and proceed to the configuration page.

  4. Follow these configuration tips:

    1. Configuration: Refer to Registering Kyron with Platform section for the values need to be entered in the developer key creation form.

    2. LTI Advantage Services Configuration: Refer to the image below - this is the required configuration for Kyron to work properly in Canvas.

    c. Additional Settings > Privacy Level: The default privacy level is PRIVATE, in

    which case Canvas will not share any student information through the LTI

    connection. If you would like to include the learner’s name and email in data

    and analytics reporting, select Privacy Level: PUBLIC. This will share the

    name, email, and icon from the learner’s Canvas account via LTI

    connections.

    d. Placements: Add "Assignment Selection" to enable incorporating Kyron

    courses into assignments. Choose other options, if you’re adding the

    course in other places of your course.

  5. Click “Save”

Canvas Developer Key Deep Linking Setup URL

You can retrieve this URL from Kyron Learning:

  1. Click on the more actions menu (three dots)

or you can just use the URL below:

https://app.kyronlearning.com/lti/v1/config/canvas/developer_key_settings_deep_linking.json

Then, to register Kyron with your Canvas account, all you need to do is to paste this in the developer key creation form as shown below:

BEWARE - This method will set up an LTI deep linking configuration for you. However, it is very easy to switch between. Once you complete below steps, make sure to go to the Assignment Selections > Select Message Type and pick the one you wish to use with this developer key configuration.

Register your Canvas account with Kyron

  1. Navigate to the "LTI Platforms" tab within your Kyron Studio account: https://app.kyronlearning.com/studio/lti_platforms

  2. Click the “+” button

  3. Fill out the configuration information on the page. Here are some tips for some of the fields:

    1. Refer to section 2. Platform Registration with Kyron for details

    2. Client ID is shown here (see screenshot below) when you create your developer key in Canvas

  4. Click the checkmark button to save the configuration.

Add a new Kyron app to your Canvas account

  1. Return to your Canvas account.

  2. Navigate to Admin > Settings > Apps > View App Center.

  3. Click the “+ App” button.

  4. Locate "Configuration Type" and choose "By Client ID".

  5. Insert the Developer Key you created in step 1.

  6. Click "Install".

Add a Kyron Course to an assignment

  1. If you need to create a new course, go to Admin > Courses.

  2. Click "+ Course" and follow the on-screen instructions.

  3. Select the course title from the course list.

  4. Select “Assignments” from the left-hand menu.

  5. Click “+ Assignment”.

  6. Within the assignment settings, locate the "Submission Type" section and choose "External Tool" from the dropdown menu.

  7. Click "Find" and select the app you created in Step 3.

  8. Click "Save".

Following these steps, the Kyron course should be embedded directly within the Canvas assignment.

If you encounter any questions during the integration process, contact Kyron Learning support at support@kyronlearning.com.

Troubleshooting Kyron LTI Connection Setup

The following lists all potential errors you might encounter while setting up the LTI connection with Kyron. Any errors encountered beyond this list likely originate from a different layer you're interacting with, not Kyron itself.

API Errors

Errors might occur during a request to /lti/v1/initiate

  1. param is missing or the value is empty: <param_name>

    • Description: This error occurs when a required parameter is missing or its value is empty in the request sent to the /lti/v1/initiate endpoint.

    • Potential Causes:

      • The platform is not sending a required parameter in the request body.

      • The value of a required parameter is an empty string or null.

    • Solution:

      • Ensure that all required parameters (iss, login_hint, target_link_uri, and lti_message_hint) are included in the request body.

      • Verify that the values for these parameters are not empty strings or null.

  2. Could not find issuer: <issuer_uri> or client_id: <client_id>

    • Description: This error occurs when the client sends an iss (issuer URI) or client_id that does not match the registered platform in Kyron.

    • Potential Causes:

      • The client has not registered their platform with Kyron.

      • The iss (issuer URI) value sent in the request does not match the "Issuer" value entered during platform registration in Kyron.

      • The client_id value sent in the request does not match the "Client ID" value entered during platform registration in Kyron.

    • Solution:

      • Register your platform in Kyron Learning > LTI Platforms.

      • Ensure that the iss (issuer URI) and client_id values sent in the request match the corresponding values entered during platform registration in Kyron.

  3. Invalid target_link_uri: <target_link_uri>

    • Description: This error occurs when the target_link_uri sent in the request is invalid.

    • Potential Causes:

      • The target_link_uri does not use a secure protocol (HTTPS).

      • The target_link_uri domain does not match the Kyron domain.

    • Solution:

      • Ensure that the target_link_uri uses the HTTPS protocol.

Verify that the target_link_uri domain matches the Kyron domain.

Errors might occur during a request to /lti/v1/launch

  1. Missing required params: <param_name>

    • Description: This error occurs when a required parameter is missing in the request sent to the /lti/v1/launch endpoint.

    • Potential Causes:

      • The platform is not sending a required parameter in the request.

    • Solution:

      • Ensure that all required parameters (id_token and state) are included in the request.

  2. Invalid state token.

    • Description: This error occurs when the state parameter sent in the request is an invalid JWT token.

    • Potential Causes:

      • The state parameter is not a valid JWT token.

      • The JWT token has been tampered with or is invalid.

    • Solution:

      • Verify that the state parameter is a valid JWT token -that’s sent to the platform in the response from /initiate endpoint by Kyron.

      • Ensure that the JWT token has not been modified or tampered with.

  3. Invalid id_token.

    • Description: This error occurs when the id_token parameter sent in the request is invalid.

    • Potential Causes:

      • The id_token is not a valid JWT token.

      • The JWT token has been tampered with or is invalid.

    • Solution:

      • Verify that the id_token parameter is a valid JWT token generated by the LTI platform.

      • Ensure that the JWT token has not been modified or tampered with.

  4. Invalid LTI version. Got: <version> Expected: 1.3

    • Description: This error occurs when the LTI version specified in the id_token payload is not 1.3.

    • Potential Causes:

      • The LTI platform is sending an unsupported LTI version.

    • Solution:

      • Ensure that the LTI platform is configured to use LTI version 1.3.

  5. Invalid issuer: <issuer_uri>

    • Description: This error occurs when the issuer (iss) specified in the id_token payload does not match any registered platform in Kyron.

    • Potential Causes:

      • The client has not registered their platform with Kyron.

      • The iss (issuer URI) value in the id_token does not match the "Issuer" value entered during platform registration in Kyron.

    • Solution:

      • Register your platform in Kyron Learning > LTI Platforms.

      • Ensure that the iss (issuer URI) value in the id_token matches the corresponding value entered during platform registration in Kyron.

  6. Invalid lesson identifier

    • Description: This error occurs when the lesson_collection_id parameter sent in the request is invalid, or the corresponding lesson collection does not exist.

    • Potential Causes:

      • The lesson_collection_id parameter is missing or invalid.

      • The specified lesson collection does not exist in the system.

    • Solution:

      • Ensure that the lesson_collection_id parameter is included in the request and has a valid value.

      • Verify that the specified lesson collection exists in the Kyron system.

  7. https://purl.imsglobal.org/spec/lti/claim/message_type claim has invalid value. Got: <value>, Expected one of: <expected_values>

    • Description: This error occurs when the LTI message type in the id_token payload is invalid.

    • Potential Causes:

      • The LTI platform is sending an invalid value for the specified claim.

    • Solution:

      • Ensure that the LTI platform is sending one of the following as the LTI message type: LtiResourceLinkRequest, LtiDeepLinkingRequest

  8. JWT verification error when initiating LTI session.

    • Description: This error occurs when there is an issue verifying the id_token JWT during the LTI session initialization process.

    • Potential Causes:

      • The id_token is not signed with the correct key.

      • The id_token has been tampered with or is invalid.

    • Solution:

      • Verify that the id_token is signed with the correct key registered for the LTI platform.

      • Ensure that the id_token has not been modified or tampered with.

  9. Invalid record creation when initiating LTI session.

    • Description: This error occurs when there is an issue creating the LTI session record in the database during the initialization process.

    • Potential Causes:

      • An internal issue.

    • Solution:

      • Reach out to the Kyron support team.

UI Errors

Blank screen issue

  • Description: There is no error appearing in the view. Only blank/white screen.

  • Potential Causes:

    • The platform does not have access to the content that is attempted to be displayed.

  • Solution:

    • Make sure if the requested content ID matches with the ID of the content that is wanted to be served.

    • Check to see if the resource is privately published.

Data Protection

Kyron Learning is committed to protecting the privacy and security of student and educator data collected through our educational technology platform.

Data Collected Through LTI

Kyron Learning uses LTI 1.3 to connect to LMSs. It allows our Platform to securely connect with your LMS without requiring students or educators to create separate accounts for our service. During this interaction, we may collect the following data, depending on the specific LTI configuration and features used:

User Information: anonymized user ID

Course Information: course names, IDs, rosters

Activity Information: lesson transcript, scores, completion data, time spent on activities

NOTE: We do not collect names, email addresses or any other personally identifiable information (PII).

Data Minimization and Purpose Limitation

We adhere to the principle of data minimization. We only collect the data necessary to deliver our Platform's functionalities and improve the learning experience. The collected data is used solely for the following purposes:

  • Providing and maintaining access to the Platform

  • Delivering educational content and activities

  • Analyzing student performance and progress

  • Improving the Platform's functionality and user experience

We use the minimal set of data required to establish a successful LTI connection as described in the LTI 1.3 documentation.

Click here to read more details about our Privacy Policy.

Did this answer your question?