Configuring Azure (SAML) and Canvas Authentication

Document created by kevin Employee on Mar 25, 2015Last modified by cbroadhead@instructure.com on May 9, 2019
Version 20Show Document
  • View in full screen mode

    Official Canvas Document

Canvas + Logo transparent (WHITE)- 300px.png

 

 

Updated: March 2019 by Zoe Bogner

Authentication Terminology

TermDefinition
IdP

Identity Provider

The job of the IdP is to identify users based on credentials. The IdP typically provides the login screen interface and presents information about the authenticated user to service providers after successful authentication.

ADFS is the Identity Provider.

login_id

Username in Canvas terminology.

When information about an authenticated user is returned to Canvas, a user with a login_id matching the incoming data is looked for.

Metadata

Information about the SP or IdP.  This metadata is almost always provided in the form of XML.  The metadata about your Canvas instance is located at https://<yourcanvas>.instructure.com/saml2 (replace <yourcanvas> with the first portion of your Canvas domain).

SAML

Security Assertion Markup Language

SISStudent Information System
SIS ID

Unique ID of a user in Canvas.

Used to link a user to an outside system, often a Student Information System (SIS).

SLO

Single Logout

When a user logs out of a service, some IdPs can subsequently log the user out of all other services the user has authenticated to. 

ADFS supports this but may occasionally experience issues such as preventing a successful logout. Users will be logged out of Canvas but may not be logged out of ADFS.

SP

Service Provider

An SP is usually a website providing information, tools, reports, etc to the end user.  Canvas provides a learning environment to teachers, students, and admins and is, therefore, the Service Provider.

Note: An SP cannot authenticate against an IdP unless the IdP is known to the SP.  Likewise, an IdP will not send assertions to an SP that it does now know about.

SSO

Single Sign-On

This is what happens when a user isn't required to log in to a second service because information about the authenticated user is passed to the service.

Any user that needs to authenticate via Azure AD must already have a user account provisioned in Canvas.

Pre-requisites

  • The login_id field in Canvas must match the selected field returned from Azure.
  • Canvas does not automatically create user accounts from successful single-sign-ons. User accounts must either be created manually in the web interface or through the SIS import CSVs.
  • Your organization must have an Azure AD subscription.
  • You must be able to login to the admin console for your organization.

Login Release Valve

You may lock yourself out of Canvas while you are working on setting up authentication. If this happens, there is a way to log in to Canvas using local authentication. Simply go to /login/canvas. For instance: http://<yourcanvasname>.instructure.com/login/canvas (This forces Canvas to display the local login form rather than redirecting to the SAML login page).

Adding Canvas from the gallery

To configure the integration of Canvas into Azure AD, you need to add Canvas from the gallery to your list of managed SaaS apps.

  1. In the left navigation panel of the Azure portal, click Azure Active Directory icon.

  2. Click the Enterprise applications, then click the All applications.

     

             

 

            3. To add a new application, click the New application button on the top of the dialog.

 

   

 

            4. In the search box, type Canvas. In the results panel, select Canvas and then click the Add button to add the application.

               

 

            5. In the Canvas - Overview page of the Azure portal, click on Single Sign-on.

 

                          

 

6. Click SAML.

 

 

 

7. On the SAML-based sign-on page, edit the Basic SAML Configuration section by clicking the pencil in the top-right corner.

 

 

 

 

8. Fill in the Identifier (Entity ID) and Reply URL (Assertion Consumer Service URL) fields with your production, test and beta environment URLs followed by /saml2 (ie. replacing https://your-institution.instructure.com/saml2 with your Canvas URL).

 

In the Sign on URL field, enter your Canvas URL (eg https://your-instance.instructure.com ) Click Save in the top-left corner.

 

 

 

9. Edit the second section, User Attributes & Claims.

 

 

 

 

10. Click the Claim name ending in .../identity/claims/name to edit the entry.

 

 

 

 

11. Change the Source attribute to user.mail and click Save.

 

 

 

 

12. Repeat for the Claim Name ending with .../identity/claims/nameidentifier, to also change its Source attribute to user.mail

 

 

 

13. Click Properties. Change User assignment required to No. Click Save.

 

 

 

 

14. Return to the Single Sign-on screen. In the third section, copy the App Federation Metadata Url.

 

 

 

 

 

 

 

 

15. In a new browser tab, log in to your Canvas instance as an administrator. From the Admin tile, click Authentication.

 

 

 

 

 

16. Click on the Choose an Authentication drop-down, then select the SAML option.

 

 

 

 

 

17. On the SAML configuration page, paste the App Federation Metadata Url into the IdP Metadata URI field. Click Save.

 

 

 

 

18. The page will reload with the values for IdP Entity ID, Log On URL, Log Out URL and Certificate Fingerprint automatically filled.

 

19. Test the configuration. Open a new incognito window, and go to

https://<your-institution>.instructure.com/login/saml

If successful, you’ll be prompted to enter your Microsoft email address, followed by your password. You will then be logged in and redirected to your Canvas instance.

Note that Canvas does not automatically create user accounts from successful single-sign-ons. User accounts must either be created manually in the web interface or through the SIS import CSVs.

 

20. Return to the Authentication screen. To make SAML the primary method for authentication, navigate to the bottom of the SAML section, and change Position to 1. Click Save.

 

 

 

 

Azure AD with Vanity/Custom URL

Please follow these steps if you have a client that would like to use their vanity/custom URL in Canvas with Azure.

Note: In order to use this, the client must be using the paid version of Azure.

Add a Custom Application within Azure

Click the Azure Active Directory link.

 

 

In the Manage menu, click the Enterprise applications link.

 

 

 

Click the New application link.

 

 

 

Select the Non-gallery application option.

 

 

 

Give your new application a name to distinguish this app from other apps (e.g., Canvas Vanity URL). After you have added a name, click the Add button.

 

 

 

After the app has been created, navigate to the Single sign-on page and ensure the following settings are configured correctly:

 

 

Click on Configure Canvas at the bottom this page to obtain the Canvas configuration information. Copy these for use later when they configure the SAML settings within Canvas.

 

Example config information below:

 

 

Navigate to the Properties page. Make sure User assignment required is set to No.

 

 

 

Navigate to the Self-Service page. Make sure that Allow users to request access to this application is set to No.

 

 

In the Authentication Context drop-down menu, select the urn:sis:names:tc:SAML:2.0:ac:classes:unspecified option.

 

 

Turn on the debugger and have them test the authentication to see if it is working. If not, let Ryana know and I can work with them to try to get it to work. Good luck!

Attachments

    Outcomes