Authentication Integration Worksheet For any questions or assistance, please contact: Authentication@CampusLabs.com (716) 270-0000 Authentication Method Please note that ALL campus community members will need to have access to your site. This includes students, faculty, and staff. Make sure that the information you provide will allow all of these users to access the site. Campus Labs only supports ONE campus authentication method at a time. Important Note Campus Labs requires that the selected authentication method must return a unique, never-changing, and never-recycled Person Identifier for each user upon a successful sign in. Please refer to our documentation on Choosing a Person Identifier for guidance. Complete ONLY ONE of the following sections Shibboleth / SAML .................................................................................................................................................................. 2 Generic Pass-Through Authentication (GPT) .......................................................................................................................... 6 Central Authentication Service (CAS).................................................................................................................................... 12 Lightweight Directory Access Protocol (LDAP) ..................................................................................................................... 13 Shibboleth / SAML CampusLabs supports native Shibboleth SP and SAML authentication and is a member of the InCommon Federation (http://www.incommon.org). Steps to implement a Shibboleth / SAML authentication: 1. Contact our Authentication Support Specialist (authentication@campuslabs.com) and indicate that you’d like to setup Shibboleth authentication. 2. Answer the questions below so we can determine which configuration we will use. 3. We will work with you to get a site configured based on your answers to the questions. 4. Implement our metadata on your end and authorize the site we’ve created to connect to your authenticator. 5. Testing and troubleshooting The standard attributes that we support are documented on the InCommon Federation’s website (http://www.incommon.org/attributesummary.html). Please let us know if you are using something different. Are you a member of the InCommon Federation (http://www.incommon.org/participants/)? Yes – What is your entity ID? No – Are you running a local Shibboleth Identity Provider (IdP)? Yes – Please provide the URL to your metadata or send your metadata to the authentication specialist. The URL to our metadata is: https://federation.campuslabs.com/Shibboleth.sso/Metadata No – Please provide information about your setup. Campus Labs® Authentication Integration Worksheet 8 February 2016 2 developers.campuslabs.com support@campuslabs.com 716.270.0000 (8am – 8pm ET) Training, Support, and Test Account Information While a unique, permanent vendor account is not required, it can be helpful for assisting us with troubleshooting and authentication-related support issues. If we are not issued a test account, we will be required to contact your campus IT department for assistance. User ID Password Single Log Out & Shibboleth Authentication Considerations What is Single Log Out? Single Log Out (SLO) is the process of reversing a Single Sign On (SSO) authentication session. SSO is often preferred by campuses because it can reduce the number of times a user needs to provide credentials (username/password) to campus web applications throughout the day. A simple analogy: Single Sign On (SSO) is like using your key fob to unlock all of your car doors at one time in order to keep them open at a tailgate party so that you can easily get in to grab additional items throughout the day. Single Log Out (SLO) is the action of locking your car with your key fob before heading to the game. SSO is designed for convenience. SLO is designed for security. Sometimes these conflict. What if a neighbor accesses your car while you are not looking? What if you need to get back into your car several times after you locked the doors? Ultimate security would have you unlock and re-lock your car each time you access it for items. Ultimate convenience would not enable the ability to lock the car. What is Shibboleth? Shibboleth is a popular authentication protocol that many campuses (especially InCommon federation participants) use to apply security to web applications that are used by members of the campus community. Shibboleth is popular because it is highly secure and easy to configure for both the campus and third party platforms, like Campus Labs. However, there is one tradeoff for the security and simplicity of Shibboleth that can cause user experience issues in specific use circumstances that are important to understand. Limitations of Shibboleth Single Log Out The Shibboleth protocol does not support Single Log Out by design. The best and only way to log out of an authenticated session is to completely close the web browser when finished using a web application, like Campus Labs, secured by Shibboleth. Campus Labs® Authentication Integration Worksheet 8 February 2016 3 developers.campuslabs.com support@campuslabs.com 716.270.0000 (8am – 8pm ET) Practical Implications of SLO Limitation In scenarios where users are using their personal device and do not share their device with others this SLO limitation is not particularly invasive since the user will likely perceive that the Campus Labs application only requires seemingly periodic authentication, similar to Facebook or other web services that want to make it easy for users to quickly access content. However, in scenarios where multiple users will use the same device and browser in rapid succession (taking turns filling out a survey, using the Location tracking kiosk screen, etc...), and where it is unlikely that the browser will be closed after each log out attempt, users can unknowingly continue use of the application as a previous user who did not successfully log out. Remedies for the Shibboleth SLO Limitation 1. Users not sharing a device If it is rare that multiple users will use a single device to participate in surveys or location tracking, then the simplest remedy is to remind users to close the browser upon log out. The Campus Labs platform offers a configuration option called a "Shibboleth log out URL" which allows a campus to define a URL that the system will direct the user to upon clicking the "Log out" button in the application. The content of the webpage is at the discretion of the campus but should contain a reminder to close the browser to complete the log out process. * It is important to note that the presence of a Shibboleth log out URL does not guarantee a successful log out for each user, it is simply a mechanism to remind users to close their browser. 2. Users sharing a device If it is common for users to share a device, or the campus would like to use the location tracking features of the application then a permanent change in authentication method to one that supports SLO is needed. The Campus Labs platform supports the Central Authentication Services (CAS), Lightweight Directory Access Protocol (LDAP), and a proprietary authentication method based on Security Assertion Markup Language (SAML) that we call Generic Pass Through. If you would like to employ either of these strategies please contact our support team by creating a help ticket. Technical Summary of Issue Adapted from The University of Texas at Austin https://www.utexas.edu/its/help/shibboleth/2299 Campuses using a Shibboleth Identity Provider based on SAML 2.0 do not support single logout (SLO). SLO is the process of reversing the single sign on (SSO) process by destroying all sessions that are created while using SSO. For the context of this document, that would mean destroying the identity provider session and service provider sessions. Before explaining this in more detail, there are a couple of important terms to know. This document will refer to a service provider (SP) which is the host of the service or application, in this case the Campus Labs platform that users are attempting to access and the identity provider (IdP) which hosts user authentication and user attributes at the campus to be consumed by the SP. Campus Labs® Authentication Integration Worksheet 8 February 2016 4 developers.campuslabs.com support@campuslabs.com 716.270.0000 (8am – 8pm ET) For example, the university controls idp.its.campus.edu which is the IdP used to allow users to authenticate using campus username/password credentials and gain access to an SP, like Campus Labs. Understanding Shibboleth Single Sign-On Sessions There are usually up to 3 sessions associated with Shibboleth IdP and SP integration: the IdP session, the SP session, and the optional web application session for the service the SP is providing. The following is the most common authentication flow for the creation of these sessions at a high level. Whenever a user attempts to access an SP-protected application for the first time, they will not have an SP session or an application session and are redirected to the IdP to see if they have a valid IdP session. When they make it to the IdP, they also do not have an IdP session at this time and are prompted to provide credentials to authenticate. Upon successful authentication, an IdP session is created and an associated IdP session cookie is placed in the user’s browser. The user is redirected back to the SP where the IdP session is verified and an SP session is created and an SP session cookie is placed in the user’s browser. Finally, the user is passed to the application itself where a web application session may also be created. Upon returning to the application, the optional web application session is checked and then the SP session is checked. If either of these sessions are still valid, the user will not be redirected back to the IdP to re-authenticate. If neither of these sessions are valid, the user will be sent back to the IdP where the IdP session is checked using the IdP session cookie that was created upon initial authentication. If the user makes it back to the IdP with the IdP session cookie and the IdP session is still valid, the user will not get prompted to provide credentials. The IdP session will be refreshed and the user will be returned back to the SP and web application where new SP and web application sessions will be created. If the user makes it back to the IdP without the IdP session cookie, or with an IdP session cookie but an invalid IdP session, the user will be asked to authenticate. The Complications of Single Logout and User Expectations When a user clicks on a logout button in an SP’s application, they have a set of expectations. These expectations combined with technical roadblocks currently keep SLO from being implemented. When the logout button is clicked, the user’s web application session and SP session are ended, but the user is not logged out of the IdP. Therefore, if the user were to revisit the web application, they would be automatically reauthenticated because they still have a valid IdP session cookie. In theory one might, instead of just destroying the web application session and SP session, have the SP tell the IdP to destroy its session as well. Unfortunately, the IdP does not know which SPs the user has sessions with, cannot inform those SPs to destroy the user’s sessions, and cannot enforce that those SPs destroy the user’s session on the SP and web application side. This creates a false sense of security for the user because they may believe that they have been logged out of all systems. It also means that the user could go from SP to SP and get varying experiences after logging out of one SP. Campus Labs® Authentication Integration Worksheet 8 February 2016 5 developers.campuslabs.com support@campuslabs.com 716.270.0000 (8am – 8pm ET) Generic Pass-Through Authentication (GPT) Campus Labs supports authentication of users via secure HTTPS requests. Generic Pass-Through Authentication is a custom authentication method based on security best practices that can be utilized in situations where the other methods are insufficient or unavailable on campus. In this method, the campus is responsible for actually authenticating the user, and upon successful authentication, redirecting the user to Campus Labs’ authentication server with a link that contains their username and other desired attributes. One of the parameters on the URL is a hash of the data sent, which is generated using a shared secret key known only to Campus Labs and the campus. Because the redirection is done over SSL, the data in the link itself is protected, and upon receipt Campus Labs’ authentication server verifies the contents of the hash using the shared secret – this verifies the data provided has not been tampered with and that the link was generated by someone possessing the secret key. Steps to implement a Generic Pass-Through (GPT) authentication: 1. Contact our Campus Labs Authentication Support Specialist and indicate that you’d like to setup GPT authentication. 2. Campus Labs will create and configure a site and a shared key for you. 3. Create code that will generate the needed link to pass to Campus Labs. 4. Testing and troubleshooting Required parameters: realm NOTE: realm should NOT be included in the pre-hash string The URL of the product that you are connecting to*: Data Manager (required) Un-encoded URL: https://schoolname.campuslabs.com/management/auth/ Baseline (formerly StudentVoice) Un-encoded URL: https://schoolname.campuslabs.com/app/views/home/default.aspx Beacon Un-encoded URL: https://schoolname.campuslabs.com/beacon/ Campus Labs® Authentication Integration Worksheet 8 February 2016 6 developers.campuslabs.com support@campuslabs.com 716.270.0000 (8am – 8pm ET) Course Evaluation - Students Un-encoded URL: https://schoolname.campuslabs.com/courseeval/ Course Evaluation - Faculty Un-encoded URL: https://schoolname.campuslabs.com/faculty/ Course Evaluation – Administrative Staff Un-encoded URL: https://schoolname.campuslabs.com/ce/ CollegiateLink** Un-encoded URL: https://schoolname.collegiatelink.net/externalauthentication/federationresult/ Compliance Assist Un-encoded URL: https://schoolname.compliance-assist.com/ * The realm parameter you use in your GPT code MUST be URL-encoded **If you are using the Vanity URL feature with CollegiateLink, your realm URL will include the encoded version of your Vanity URL instead of schoolname.collegiatelink.net. userID The unique identifier for the user who is authenticating. time The current time represented in milliseconds (UTC). This should be a 13 digit timestamp. Time must be synchronized with an international time server. (E.g., http://tycho.usno.navy.mil/cgi-bin/timer.pl) NOTE: We can support time in seconds, but you will have to alert us so that we can make an adjustment on our end. Campus Labs® Authentication Integration Worksheet 8 February 2016 7 developers.campuslabs.com support@campuslabs.com 716.270.0000 (8am – 8pm ET) random A random series of alphanumeric characters returnUrl The URL user is redirected to upon login* *Only for CollegiateLink product hash A 32-character MD5 hex representation of specific querystring values + the symmetric key. In an example where no additional optional parameters are sent, the hash would be built from the following string: hash = “userID + time + random + returnUrl + symmetric key” In an example where first name and last name are also being sent, the hash would be built as such: hash = “userID + time + random + returnUrl + firstname + lastname + symmetric key” The order of the fields in the hash must match the order of the corresponding querystring values. See more detailed examples below. To verify your md5 hashing algorithm, running the string “hello” through an MD5 hash should generate the following result string: “5d41402abc4b2a76b9719d911017c592” Campus Labs® Authentication Integration Worksheet 8 February 2016 8 developers.campuslabs.com support@campuslabs.com 716.270.0000 (8am – 8pm ET) Optional parameters: firstName User’s first name lastName User’s last name campusEmail User’s primary (campus) email address affiliation User’s primary affiliation with the campus (e.g. Undergraduate, Graduate, Staff) swipecardidentifier User’s swipe card number. This can be used for tracking attendance at events via swipe card readers. Additional parameters: Other parameters may be added to be automatically populated in the CollegiateLink profile and shown on system reports. Common parameters include class year, major, school / college, part-time / full-time, etc. Examples of a URL that your system would need to generate for authenticating a user into CollegiateLink using this method would look like this: Minimum Requirement: https://federation.campuslabs.com/gpt?realm=https%3A%2F%2Fschoolname.campuslabs.com%2Fmanagement%2Faut h%2F&userID=joeuser&time=1290238293223&random=23lkjhsxd82K&hash=280a1d8599f2054a291c3e83af1d5aaf To generate the hash value: userID – joeuser time – 1290238293223 random – 23lkjhsxd82K key – e1afc12960864755b8697638d17c0ee8bd9f8c47da4d4a0daf4f692f2517bffc prehash – joeuser1290238293223lkjhsxd82Ke1afc12960864755b8697638d17c0ee8bd9f8c47da4d4a0daf4f692f2517bffc hash – 280a1d8599f2054a291c3e83af1d5aaf Campus Labs® Authentication Integration Worksheet 8 February 2016 9 developers.campuslabs.com support@campuslabs.com 716.270.0000 (8am – 8pm ET) Passing additional information: https://federation.campuslabs.com/gpt?realm=https%3A%2F%2Fschoolname.collegiatelink.net%2Fexternalauthenticati on%2Ffederationresult%2F&userID=joeuser&time=1290238293223&random=23lkjhsxd82K&returnUrl=/Organizations& firstName=Joe&lastName=EndUser&campusEmail=juser%40schoolname.edu &hash=77fee2706c33bc3fa8ce634f774d9da9 To generate the hash value: userID – joeuser time – 1290238293223 random – 23lkjhsxd82K returnUrl – /Organizations firstName – Joe lastName – EndUser campusEmail - juser@schoolname.edu key – e1afc12960864755b8697638d17c0ee8bd9f8c47da4d4a0daf4f692f2517bffc prehash – joeuser1290238293223lkjhsxd82K/OrganizationsJoeEndUserjuser@schoolname.edue1afc12960864755b8697638d17c0 ee8bd9f8c47da4d4a0daf4f692f2517bffc hash - 77fee2706c33bc3fa8ce634f774d9da9 Our system will not allow any requests that are 6 minutes in the past or future to be processed. This will prevent anyone from reusing the URLs to authenticate. In addition, each subsequent request for any user produces a varying set of URL parameters, thus thwarting brute force attacks. Campus Labs supports GET and POST. Your secret key is the last parameter in the string. If all parameters are specified, you should concatenate as follows: hash = MD5(userID + time + random + returnUrl + secret) The single point of failure with this method of authentication is the exploitation of the symmetric key. It is important to take proper precautions to ensure that the key is adequately protected. Step by Step Example: 1. User goes to our product site. 2. User clicks the login link, which redirects the user to campus login page. 3. User enters credentials. 4. User is redirected back to us with a URL that resembles Example 1 above, upon successful authentication. Campus Labs® Authentication Integration Worksheet 8 February 2016 10 developers.campuslabs.com support@campuslabs.com 716.270.0000 (8am – 8pm ET) Complete the following information: Authentication Server Information URL Please provide the link to the page that we can direct users to in order to log in. Training, Support, and Test Account Information While a unique, permanent vendor account is not required, it can be helpful for assisting us with troubleshooting and authentication-related support issues. If we are not issued a test account, we will be required to contact your campus IT department for assistance. User ID Password Campus Labs® Authentication Integration Worksheet 8 February 2016 11 developers.campuslabs.com support@campuslabs.com 716.270.0000 (8am – 8pm ET) Central Authentication Service (CAS) CAS URLs Please complete: (if not relevant, please denote writing “N/A”) CAS Login Page: This is the page the user gets redirected to from the login page. The user enters the CAS login credentials on this page. CAS Logout URL: This is the URL that the user is redirected to when they log out. URL Parameters CAS Login URL CAS Logout URL Our Service URL is: https://federation.campuslabs.com/auth/signin/ Training, Support, and Test Account Information While a unique, permanent vendor account is not required, it can be helpful for assisting us with troubleshooting and authentication-related support issues. If we are not issued a test account, we will be required to contact your campus IT department for assistance. User ID Password Campus Labs® Authentication Integration Worksheet 8 February 2016 12 developers.campuslabs.com support@campuslabs.com 716.270.0000 (8am – 8pm ET) Lightweight Directory Access Protocol (LDAP) Campus Labs Server CNAMES The following CNAME must be able to connect to your system(s). Please configure any needed firewall exemptions. Production Authentication Relay ldap-sso.campuslabs.com 208.83.125.234 While not mandatory, it may be helpful for to also allow the following CNAMEs: Development Environment 1 ldap-dev1.campuslabs.com Development Environment 2 ldap-dev2.campuslabs.com Multiple Campus LDAP servers Please note that our products can be configured to connect to multiple LDAP sources (for example, students and staff are in containers on different servers). If you opt for this configuration, the user will have to select their system from a drop-down box before entering their username / password. Please enter all of the LDAP servers below, with a note for what audience is being served by that server. Configuration Options An important consideration is whether or not the username that the user is entering should be used as their unique ID in Campus Labs. It’s necessary for it to be unique and something that does not change. For that reason, email addresses and usernames that might change over time are not ideal. We offer the ability to retrieve a different attribute than what the user is entering to be used as their unique id. In this situation, the LDAP authentication process will be configured to use a search account to connect to the server, a subtree-search will be performed starting at the desired level, if a user is found, a bind will be performed with their entered credentials, and finally the alternative username attribute will be retrieved. Based on this decision, please complete either Option A (Direct Bind) or Option B (Search) below. Authentication Server(s) Information – LDAPS (LDAP over SSL) is required Server (Host name or IP) Campus Labs® Authentication Integration Worksheet 8 February 2016 Port Description (if necessary) 13 developers.campuslabs.com support@campuslabs.com 716.270.0000 (8am – 8pm ET) Option A – Direct Bind If we are capable of taking user provided credentials to use as a direct bind to your LDAP server AND the username the user enters is intended to be their unique ID. Please provide a sample user bind string and/or domain information for binding. If there are multiple containers/UPN formats to bind against, please list them all. They will be attempted sequentially. Examples: uid=<username>,ou=people,dc=school,dc=edu <username>@school.edu Option B - Search If we will use a search user to bind to your LDAP server and then utilize the user’s credentials to authenticate. A. Search User Credentials Provide a search user that has access to all containers that users are in. Full DN Password B. Base Search Path This value is the path to the container where the search will initiate. A sub-tree search is used, so all containers under the specified base will be searched. This search will take longer based on how high up the search base is and how wide and deep the sub-trees are. This should be in the format: ou=People, o=school.edu, o=cp Base DN C. Unique Identifier Please indicate the attribute that uniquely identifies a user. (i.e. saMAccountName, cn, uid etc) Attribute Campus Labs® Authentication Integration Worksheet 8 February 2016 14 developers.campuslabs.com support@campuslabs.com 716.270.0000 (8am – 8pm ET) Training, Support, and Test Account Information While a unique, permanent vendor account is not required, it can be helpful for assisting us with troubleshooting and authentication-related support issues. If we are not issued a test account, we will be required to contact your campus IT department for assistance. User ID Password Campus Labs® Authentication Integration Worksheet 8 February 2016 15 developers.campuslabs.com support@campuslabs.com 716.270.0000 (8am – 8pm ET)