Configuring Azure (SAML) and Canvas Authentication

Document created by kevin Employee on Mar 25, 2015Last modified by Ryan Adamson on Sep 25, 2019
Version 26Show Document
  • View in full screen mode

    Official Canvas Document

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

 

 

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.

Pre-requisites

  • 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.
  • The login_id field in Canvas must match the selected field returned from Azure.
  • 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 accidentally lock yourself out of Canvas while you are setting up authentication. If this happens, you can log in to Canvas using local authentication. Simply go to http://<yourcanvasname>.instructure.com/login/canvas (This forces Canvas to display the local login form rather than redirecting to the SAML login page).

Configure Azure Active Directory

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.

    Click Azure Active Directory

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

     

    Click Enterprise applications         Click All applications

 

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

 

Click New application

   

 

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

               

Add an application

 

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

 

                          Click Single sign-on

 

6. Click SAML.

 

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.

 

 

Click Edit

 

 

8. Fill in the Identifier (Entity ID) fields with the http (not https) URLs of your production, test, and beta environments, followed by /saml2 (ie. http://your-institution.instructure.com/saml2 ).

In the Reply URL (Assertion Consumer Service URL) fields, add your https production, test, and beta environment URLs followed by a wildcard (*) (ie. https://your-institution.instructure.com/* ).

In the Sign on URL field, enter your Canvas production URL (ie. https://your-instance.instructure.com ).


Click Save in the top-left corner.

 

 

                                                    

 

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

 

 

User Attributes & Claims

 

 

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

 

 

Click /identity/claims/name

 

 

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

 

 

Manage user claims

 

 

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

 

 

Edit Claim /identity/claims/nameidentifier

 

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

 

 

Edit Canvas Properties

 

 

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

 

 

App Federation Metadata Url

 

 

Configure Canvas Authentication


The following steps take place in Canvas. 

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

 

 

Authentication link

 

 

 

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

 

 

Choose an authentication

 

 

 

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

 

 

Paste App Federation Metadata Url

 

 

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.

 

Change Position to 1

 

 

 

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 Azure Active Directory

Click the Azure Active Directory link.

 

 

Click Enterprise applications

In the Manage menu, click the Enterprise applications link.

 

 

Click New application

 

Click the New application link.

 

Click Non-gallery application

 

 

Select the Non-gallery application option.

 

 

Application name

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.

 

 

Single sign-on settings

 

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

 

Configure Canvas

 

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:

 

 

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

 

 

Application Self-Service

 

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

 

Authentication Context

 

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!

3 people found this helpful

Attachments

    Outcomes