All Collections
LTI Integration for LMS Administrators
Brightspace LTI and API Implementation
Brightspace LTI and API Implementation

How to create a global tool in D2L/Brightspace

Sujay Darji avatar
Written by Sujay Darji
Updated over a week ago

The Willo Labs LTI External Tool can be configured at the system, template or offering level with Brightspace. Below are the steps based on your institution’s policy.

These instructions assume that you have received the necessary course-level configuration data from Willo Labs, including title, URL, consumer key and secret, and custom book parameters.

System Level Configuration of LTI External Tool Provider

  1. Log in to Brightspace (D2L)

  2. Navigate to Admin Tools > External Learning Tools

  3. Click on Manage Tool Providers tab

  4. Click on New Tool Provider

5. Populate the form with the values provided by Willo Labs:

Launch point: as provided by PanOpen (app.willolabs.com)

Key/secret: as provided by Willo Labs

Oauth Signature Method: HMAC-SHA-1

Security settings: check all

Org units: can be done on a course-by-course basis or system wide

6. Select Save

7. Check the box labelled Use custom tool consumer information instead of default. This will allow you to fill in the next set of fields:

Key: A consumer key for your LMS environment is provided to you by Credo and is listed on the How to Use tab of your Instruct admin dashboard.

Name: Give the tool provider a name, for example "panOpen OER Courseware."

Description: Add a description if desired.

8. The next group of settings control visibility and security:

Visibility: Check the box for "Allow users to use this tool provider."

Security Settings: These settings control what information your D2L environment sends to panOpen's platform during an LTI connection.  You can chose to restrict information sent to panOpen, however, it may affect how data is visible to faculty as they analyze student engagement analytics.

9. Optional "Make Tool Provider Available To" settings to designate which courses in your D2L environment can use the tool.

10. Click "Save and Close" button.

Course Template/Offering Level Configuration of LTI External Tool Provider

  1. Log in to Brightspace (D2L) and navigate to the appropriate course offering or template

  2. Select Course Admin from the top navigation menu

  3. Select the External Learning Tools link

  4. Click the New Tool Provider button

  5. Populate the form with the values provided by Willo Labs:

    Launch point: app.willolabs.com

    Key/secret: as provided by panOpen

    Oauth Signature Method: HMAC-SHA-1

    Security settings: check all

    Org units: can be done on a course-by-course basis or system wide

  6. Select Save

Screen_Shot_2019-02-13_at_4.23.00_PM.png

IMS Role Mappings

1. Log in to Brightspace and go to Admin tools > IMS Configuration.

2. Next to Instructor, confirm that Instructor checkbox is selected and the Student checkbox is not. (Other roles are optional.)

3. Next to Student, confirm that Student checkbox is selected and the Instructor checkbox is not. (Other roles are optional.)

4. Next to Admin, confirm that Instructor checkbox is selected and the Student checkbox is not. (Other roles are optional.)

Brightspace API

1. Log into Brightspace as an Administrator, and navigate to the Admin tools area:

• Access the Manage Extensibility.

• Switch to the OAuth 2.0 tab.

2. Click to Register an App.

Screen_Shot_2019-10-10_at_3.30.20_PM.png

3. Complete the OAuth 2.0 Register an Application form with the following values:

Application Name: Willo Labs Grade Sync

Scope: core:*:* grades:gradeobjects:deletegrades:gradeobjects: readgrades:gradeobjects:write grades:gradevalues:readgrades: gradevalues:write enrollment:orgunit:read content:*:*

Access Token Lifetime (seconds): 3600

Description: Optional field. We recommend the input notes about the integration, including original requester, course titles/crns, and date of setup.

4. Ensure “prompt for user consent” and “enable refresh tokens” are enabled

5. Check I accept the Non-Commercial Developer Agreement

Screen_Shot_2019-10-10_at_3.39.12_PM.png

6. Click Register. Please copy/notate the Client ID and Client Secret.

Willo Labs Integration Admin Dashboard

1. Access the Willo Labs Settings dashboard by navigating to: https://app.willolabs.com/customer-access/

Note: If it is your first time logging, input your email address to complete the authentication request. You will receive an e-mail within five minutes with access to your Admin Dashboard.

2. Click on the Settings button in the top-right.

3. Click Configure Grade Sync next to your listed LMS instance

4. Fill in the Grade Sync Configuration Form:

Brightspace URL: Input the URL of your Brightspace instance (i.e. https://institution.brightspace.com)

OAuth 2.0 client ID: Input ID copied/notated above.

OAuth 2.0 client secret: Input Key copied/notated above.

• Click Save Configuration.

• Click on Login to grade access or refresh access tokens.

Note: If you are no longer logged into Brightspace, it will prompt you to login again.

Note #2: If you would like to login with Willo Labs user account, please make sure the account has access to all courses using the Willo Labs solution. User Permissions can be limited as shown below.

5. Click Accept to allow access to Brightspace Grade APIs from the Willo Labs dashboard. This completes the configuration of Willo Labs Grade Sync.

Integration Details/Frequently Asked Questions

Why does Willo Labs utilized LMS APIs for Grade Sync? Why is the configuration/access set up at the site-level vs. individual course level?

The Willo Labs API is set up at the site level one time to ease the implementation required at the course level. The API only initiates when the Instructors accesses a Willo Labs Integration within their LMS course, which sends course creation information back to the provider/publisher system via Willo Labs. At that point Willo Labs will access and pass back grades via the LMS API end-points for any courses that have had activity within the last 5 days. If there are sections without activity or provider content, Willo Labs will not be able to access the APIs for those sections.

What are the Brightspace API end-points being utilized?

=> whoami

Request Type: GET

Request Path: /d2l/api/lp/(version)/users/whoami

Use: Retrieve the current user context’s user information. Used by Willo Labs to test the API connection to the Brightspace instance.

=> Get Grade Objects

Request Type: GET

Request Path: /d2l/api/le/(version)/(orgUnitId)/grades/

Use: Retrieve all the current grade objects for a particular org unit. Used by Willo Labs to determine if a grade object already exists in the course, or if a new grade object should be created.


=> Get Grade Object

Request Type: GET

Request Path: /d2l/api/le/(version)/(orgUnitId)/grades/(gradeObjectId)

Use: Retrieve a specific grade object for a particular org unit. Used by Willo Labs to determine if a previously created grade object still exists.


=> Delete Grade Object

Request Type: DELETE

Request Path: /d2l/api/le/(version)/(orgUnitId)/grades/(gradeObjectId)

Use: Delete a specific grade object for a particular org unit. Used by Willo Labs to delete a previously created grade object when there is an upstream error mapping a grade object to a grade column the integrated product gradebook.


=> Create Grade Object

Request Type: POST

Request Path: /d2l/api/le/(version)/(orgUnitId)/grades/

Use: Create a new grade object for a particular org unit. Willo Labs maps the newly created grade object to a grade column in the integrated product gradebook.


=> Update Grade Object [future use]

Request Type: PUT

Request Path: /d2l/api/le/(version)/(orgUnitId)/grades/(gradeObjectId)

Use: Update a specific grade object. Used by Willo Labs to update grade object name to reflect current name in product gradebook.


=> Update Column Grade

Request Type: PUT

Request Path: /d2l/api/le/(version)/(orgUnitId)/grades/(gradeObjectId)/values/(userId)

Use: Provide a specific grade value for a particular user. Used by Willo Labs to post a student’s grade from the integrated product into the Brightspace course gradebook.

What are the specific permissions required for the API Scope?

  • core:*:*

  • grades:gradeobjects:delete

  • grades:gradeobjects:read

  • grades:gradeobjects:write

  • grades:gradevalues:read

  • grades:gradevalues:write

  • enrollment:orgunit:read

  • content:*:*

What are the specific Brightspace role permissions required for the API Grade Sync?

Classlist

  • Has Access to the Classlist

  • View and Modify Flagged Status

Course Management Console

  • See Course Info

Grades

  • See the grades tool

  • Enter Grades

  • Manage Grades

  • Manage Items and Categories

  • See user grades values (API Only)

Content

  • Push deep links back into Brightspace

How does Willo Labs Store API Credentials?

Willo Labs stores all API credentials using strong encryption (AES256).

Who at Willo Labs / publishers / providers has access to API Credentials

  • Tier 3 senior technical staff have access to stored API credentials via federated access protected site.

  • Staff with Direct Integration Admin or Super Admin accounts have access to OAuth 2.0 Client ID and secret, but not access token

  • Staff with Direct Integration Admin or Super Admin accounts may grant LMS Admin permissions in Willo Labs Admin Dashboard

Who at Willo labs / publishers/ providers has access to API requests via a manual approach?

Tier 3 Engineers have access to API request layer to launch non-systematic API requests. This functionality is only used in escalated support situations.

Did this answer your question?