D2L LTI 1.3 Tool Installation & API Set

D2L/Brightspace LTI 1.3 Tool Setup and Link Placements

Follow these instructions to enable LTI 1.3 launches in the Brightspace (D2L) LMS. The first step is to create a new LTI 1.3 Tool Registration.

LMS Admin/Course Set-Up

LTI 1.3 Tool Registration

1. Click on the Settings icon, then click Manage Extensibility.

D2L1.png
2. Click the LTI Advantage Tab, then click Register Tool.

D2L2.png
3. Choose standard registration.

D2L3.png
4. Enter the following information in the Register Tool form:

  • Name: VitalSource
  • Description: VitalSource
  • Domain: https://bc.vitalsource.com
  • Redirect URLs: https://bc.vitalsource.com/oauth2callback
  • OpenId Connect Login URL: This will be given to you by your VitalSource Integration Manager
  • Target Link URI: https://bc.vitalsource.com/materials

5. Keyset URL: https://bc.vitalsource.com/ltia/security/jwks

6. Under Extensions, choose:

  • Assignment and Grade Services
  • Deep Linking
  • Names and Role Provisioning Service

7. Substitution Parameters

  • Click "Add Substitution Parameter"
    • Name: course_start_date
    • Select $CourseSection.timeFrame.begin
  • Click "Add Substitution Parameter" again
    • Name: course_end_date
    • Select $CourseSection.timeFrame.end

8. Once the new LTI 1.3 tool is registered, Brightspace will expose a set of configurations that are needed to complete the registration on the VitalSource side. Copy and paste this data. You will need it in a later step.

D2L4.png

Note: This data can also be seen again by clicking on the LTI Advantage Tool.

 

Tool Deployment

Next, create a Deployment for the new tool that was just created, either from the Creation screen or the Edit Tool screen.

1. Click the New Deployment button.

D2L5.png
2. Click the LTI 1.3 Tool Registration that was created in the previous step in the Tool dropdown.

3. Ensure the following Extensions are selected:

  • Assignment and Grade Services
  • Deep Linking

4. Ensure the following settings are selected/configured:

  • Org Unit Information
  • User Information
    • Name
    • Email
    • User Id
    • Username
    • Org Defined ID
  • Link Information
    • Title
    • Description

5. Classlist including users not known to tool

D2L6.png
6. Configuration Settings

  • Open as External Resource - Check
  • Grades created by LTI will be included in Final Grade - Not checked
  • Auto Create Grade Items - Not checked

D2L7.png

7. Select "Add Org Units."

8. To deploy the tool, ensure the checkbox is marked for the desired org unit(s); then enable the correct radio button in the options column to add any applicable descendant org units.

D2L8.png

9. After a successful Deployment creation, Brightspace will expose a unique Deployment ID. Enter the deployment id as well as the other registration details collected previously and enter it here.

D2L10.png

Note: This value can also be seen by clicking the new Deployment in the View Deployments screen.

 

LTI 1.3 Link Creation

The next step is creating the links to be used in the courses and navigation links. We recommend creating two links - one for use in navigation links and course modules and a second for deeplinking.

Deployment level

1. Click View Links from the View Deployments screen.

2. Click New Link and enter the link details.

D2L11.png
3. Enter the link information and select save and close.

a. Name: This is how the link will be displayed to instructors and students

b. URL: https://bc.vitalsource.com/materials

c. Type: Basic Launch

D2L12.png
4. Once the link is created and shared at the Deployment level it is available to be added in all of the courses that the deployment was shared with above. The link can also be added to course navigation bars.

 

Using the VitalSource Content Deep Linking Interface

The next step is to set up deep linking, a powerful feature of our existing LTI tooling that significantly improves course integration. Note that deep linking doesn’t require a new installation. VitalSource’s deep linking tool functions in two major capacities:

  • Allows for the creation of LTI links directly to specific locations within eBooks delivered in Bookshelf® back into your D2L course
  • Allows for the creation of LTI links directly to specific locations within courseware delivered via our Partner Integration (SSO) with many of our publishing partners

1. Create a VitalSource LTI 1.3 link that will initiate the Deep linking flow:

2. Click the View Links link from the View Deployments screen.

3. Click the New Link button and enter the deeplink LTI details:

  • Name: VitalSource Content Links
  • URL: https://bc.vitalsource.com/adopt
  • Description: VitalSource Content Links
  • Type: Deeplinking Quick Link
  • Width: 1200
  • Height: 800
  • Click Save and Close

Adding a Course Navigation link

1. Click on the Settings icon, then click Navigation & Themes

2. Select the Navbar where you’d like the VitalSource LTI tool to appear.

3. In the Links section, click the Add Links button.

4. Click Create Custom Link and enter the following:

a. Name: This is how your the link will display in the Navbar. Your bookstore may have a specific name for their program they’d like to use, otherwise we recommend Course Materials.

b. Click the Insert Quicklink option by the URL field. Go to External Learning Tools, and locate the basic launch link created in the previous steps.

c. Availability:

i. If applicable, check the box for share with child org units

5. Click Create

6. The link is now available in your Navbar, and you can drag it to the desired position within the Navbar.


Brightspace/D2L APIs for Courses and Enrollments

Part 1: Create a Role with Permissions

We recommend you create a role specifically for this integration. This will allow you to control the permissions available to VitalSource without affecting other users.

1. Click on the gear icon to view the Admin Tools.

2. Under the Security Tab, select Roles & Permissions.

3. Click Create/Copy.

4. You can copy an existing role if you like or start fresh. Either way, make sure your role is configured as noted in the next steps.

  • General
    • Name: VitalSource
    • Cascading Role: Check this box
    • Description: Can add if needed
    • Role Alias: Can add if needed
    • You do not need to select anything in Tool Behavior Options or Classlist Display Options
    • Course Access Options:
      • Access Inactive Courses: Check the box
      • Access Past Courses: Check this box
      • Access Future Courses: Check this box
      • Access All Course Sections
      • Access All Course Groups

5. Click Save.

6. On the Edit Role Interactions page, check all boxes for your Administrator role.

7. Click Save and you have created the role.

8. On the Role List page, click the down arrow next to the VitalSource role you just created and select Import Permissions.

9. Download the .txt file attached to this article.

  • This contains all the permissions required by VitalSource. See below for a complete list of permissions.

10. Select the VitalSource D2L Permissions file to import. Click Next, and then Import.

 

Part 2: Create a System User

1. Navigate to the Settings Menu (gear icon) and select Users.

2. Click New User and enter the following:

  • First Name: VitalSource
  • Last Name: Integration
  • Username: vst.integration
  • Role: Select the VitalSource role you created in Part 1
  • Password: Check the Manually set password box and enter a password that you will remember. You will need this later.

3. Click Save.

 

Part 3: Register an App

1. Navigate to the Settings Menu (gear icon) and select Manage Extensibility.

2. Click Register an App and enter the following:

  • Application Name: VitalSource
  • Trusted URL: https://bc.vitalsource.com/oauth2callback
  • Major and minor version box is mandatory for the admin to fill in as well.
  • Enable this application: Check this box
  • I accept the Non-Commercial Developer Agreement: Check this box
  • Click Register Application

3. Copy the Application ID and Application Key and save them. You’ll need them again.

4. Click Register Application.

5. Copy the Application ID & Application Key and enter them here to send them to the VitalSource team.

 

Part 4: Authenticate

  1. The VitalSource team will send you an authentication link after receiving the application key and ID from you.
  2. Before clicking the link, go to your Brightspace site and make sure you are logged out of your own account.
  3. Click the link and enter the username and password for the user you created in Part 2 above.
  4. You should receive a Success! message meaning that you have authenticated the rostering application. Send a confirmation back to the VitalSource team.
  5. Once VitalSource has confirmed that the setup was successful, please add a VitalSource link to a course in your upcoming term and click on this link.
    • This will initiate the API sync and allow us to begin pulling course and roster information.

For Each New Term

Each term sync is initiated with a click on the VitalSource link within a course associated with the upcoming term. To pull course and roster information for each new term, be sure to click on the VitalSource link in a course in the upcoming term to initiate the new term sync.

Permissions

Here is a comprehensive list of the permissions required by the VitalSource app for syncing courses and enrollments.

Note: If your campus utilized RedShelf’s Automated Tool Link Placement service, VitalSource does also support this. Additional permissions are required and are detailed here.

  • Classlist
    • Has Access to the Classlist: All boxes
    • See Classlist Report: All boxes
    • View Group Enrollments: All boxes
  • Course Management Console
    • See Course Info: Course Offering, Group, Semester, Section, Department, Program, School Type, Campus
  • My Org Units
    • See My Org Units: Organization, Course Template, Course Offering, Group, Semester, Section, Department, Program
    • Manage My Org Units tool: Course Offering
  • Org Unit Editor
    • View Org Unit Editor: Organization
  • User Information Privacy
    • See First Names: All boxes
    • See Last Names: All boxes
    • See Usernames: All boxes
    • See Org Defined IDs: All boxes
    • See Email Addresses: All boxes
  • Users
    • View the Users' Email Address: All boxes
    • View Users' Org Defined IDs: All boxes
    • View User Enrollments: All boxes
    • Search for 'Instructor': All boxes
    • Search for 'Student': All boxes

Endpoints

Here is a comprehensive list of the D2L Valence APIs used by the VitalSource app.

  • GET /d2l/api/lp/1.2/courses/:course_id
  • GET /d2l/api/lp/1.2/orgstructure/:semester_id/children/
  • GET /d2l/api/lp/1.2/enrollments/orgunits/:course_id/users/
  • GET /d2l/api/lp/1.2/organization/info
  • GET /d2l/api/lp/1.2/orgstructure/:semester_id
  • GET /d2l/api/lp/1.2/orgstructure/:org_id/children

Data Storage & Usage

Here is a description of the Brightspace data the VitalSource app receives and how that data is stored & used.

Field

Description

Storage & Usage

(course) identifier

Unique course identifier

stored & used for identifying unique courses, communication of student opt-out decisions to publisher courseware providers when applicable

(course) name

Course title

stored & used for display in VitalSource Launch & Analytics and matching LMS/VLE course data to SIS course data for Inclusive Access programmes

(course) code

Course code/label

stored & used for display in VitalSource Launch & Analytics and matching LMS/VLE course data to SIS course data for Inclusive Access programmes

(course) StartDate

Course start date

stored & used for determining when courses should be considered active in application displays and when to issue add/drop content access to students

(course) EndDate

Course end date

stored & used for determining when a course ends

(semester) identifier

Unique semester identifier

stored & used to group courses together that belong to the same semester

(semester) name

Semester title

stored & used to group courses together that belong to the same semester

(semester) code

Semester abbreviation

not stored or used

(department) identifier

Unique department identifier

not stored or used

(department) name

Department name

not stored or used

(department) code

Department abbreviation

not stored or used

(user) identifier

Unique user identifier

not stored or used

(user) displayName

User full name

stored & used for personalised display

(user) emailAddress

User email address

stored & used for matching LMS/VLE student accounts to SIS student enrolment for Inclusive Access programmes

(user) orgDefinedId

Unique user identifier

stored & used for matching LMS/VLE student accounts to SIS student enrolment for Inclusive Access programmes

(user) profileBadgeUrl

D2L profile badge url

not stored or used

(user) profileIdentifier

D2L profile identifier

not stored or used

(user) role

A user's role within an org unit

stored & used to determine the appropriate user experience and access type a user should be granted

(organization) identifier

Unique D2L organisation identifier

not stored, used to execute other D2L Valence APIs

Was this article helpful?