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.
2. Click the LTI Advantage Tab, then click Register Tool.
3. Choose standard registration.
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.
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.
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
- User Id
- Username
- Org Defined ID
- Link Information
- Title
- Description
5. Classlist including users not known to tool
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
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.
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.
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.
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
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
- The VitalSource team will send you an authentication link after receiving the application key and ID from you.
- Before clicking the link, go to your Brightspace site and make sure you are logged out of your own account.
- Click the link and enter the username and password for the user you created in Part 2 above.
- You should receive a Success! message meaning that you have authenticated the rostering application. Send a confirmation back to the VitalSource team.
- 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 |