Title: External Patron Authentication
1External Patron Authentication
- Intro to Central Authentication Services
- WebVoyage Setup
- Yale Patron Authentication Adapter
- Enduser2004 - Session 35 Friday, April 16th 1
pm - Jeff Barnett, Gail Barnett, Kalee Sprague
-
2Objectives
- Describe environment and requirements for central
authentication at Yale - Describe background specifications
- Describe WebVoyage configuration details,
stumbling blocks and pit falls - Describe nuts and bolts of one Authentication
Adapter implementation using CAS central
authentication
3External Patron Authentication
- Background - Central Authentication Services at
Yale -
4NetIDs
- Unique network identification for each current
member of the Yale Community students, faculty,
staff - At first for Email and dialup access
- Now for many (nearly all) campus systems
- Banner, Classes, uPortal, Eportal, eTravel,
Printing, Yale Windows Domain, HR online info - Library proxy server, locally developed software
for Voyager reports
5NetIDs
- Implemented in central ITS Kerberos server
- Available to validate user access to network
applications using a high degree of
cryptographic security - ITS also provides web services to activate,
change, check NetID passwords and User
Accounts
6The CAS Why?
- To provide Web services offered by organizations,
other than ITS, a way to authenticate users
without needing access to their NetID passwords - To facilitate single sign-on
- To simplify procedures needed to perform NetID
authentication - Much easier interface for Web
apps developers than Kerberos - To localize authentication to a single server for
easier maintainability
7The CAS What?
- What advantages and features does CAS provide
users of campus Web apps? - Confidence in secure and safe handling of their
passwords - Convenience of Web single sign-on
- Familiar, recognized, trusted login screen
8(No Transcript)
9CAS in a Nutshell
CAS
Authenticates via password (once, if cookie)
Determines validity of users claimed authenticat
ion
CASified Web Application
Browser
Authenticates without sending password
10The CAS How?
- Designed as a standalone web application
- Implemented as several java servlets
- Runs through an HTTPS server
- Accessed through three URLS
- Login URL
- Validation URL
- Logout URL
11CAS Implementation
2. Authentication (sends ServiceID)
1. Initial request
12CAS Implementation
2. Authentication (sends ServiceID)
4. Validation (sends NetID)
3. Ticket Transfer (sends ticket)
1. Initial request
13CAS - More Information
- More general and technical information is
available at http//www.yale.edu/tp/auth/cas10.ht
ml plus - How to use CAS in a web app
- Link to download CAS
- Link to download client libraries
- Description of CAS 2.0
14Library Applications and CAS
- Why Use the CAS for Library applications?
- For reasons already mentioned
- password security
- single sign-on
- Familiar, trusted login screen
- But also
- No need to administer Patron PIN's in Voyager and
userids/passwords - Identification NOT based any part of on SSN's
- Easier programming
-
15Specification background
- Central authentication was part of Yales 2000 /
2001 ILMS upgrade specification - Requirements and interfaces negotiated with
Endeavor - Test installation and feedback early 2003
16WebVoyage Patron Authentication Adaptor Feature
- New in 2001.2
- Allows WebVoyage to communicate with any external
patron authentication system - To use the feature, you need to
- Configure WebVoyage
- Populate patron records with external ID
- Develop a patron authentication adapter (locally
written program, in any language) - See Voyager 2001.2 Technical Users Guide,
Appendix D
17External Patron Authentication - Voyager setup
- Load Patron Records
- OPAC.INI changes
- Stumbling Blocks
- Login page problems
- Request form problems
18Load the Central Auth ID into your Patron Records
- A Patron record must exist
- The CAS id must be loaded into the Institution
ID field - Each Institution ID must be unique
19Load the Central Auth ID into your Patron Records
20OPAC.INI parameter changes
- ExtAuthenticationSystem
- ExtAuthSystemEnabledY
- ExtAuthBypassLoginScreenN
- ExtAuthSubmitTextLogin using NetID and Password
- ExtAuthSystemURLhttp//traindb.library.yale.edu8
085/VoyAuth/voyauth/voyAuthAdpt.jsp? - ExtAuthButtonMethodGET
21OPAC.INI parameter changes
- ExtAuthenticationSystem
- ExtAuthSystemEnabledY
- ExtAuthBypassLoginScreenN
- ExtAuthSubmitTextLogin using NetID and Password
- ExtAuthSystemURLhttp//traindb.library.yale.edu8
085/VoyAuth/voyauth/voyAuthAdpt.jsp? - ExtAuthButtonMethodGET
22OPAC.INI parameter changes
- ExtAuthenticationSystem
- ExtAuthSystemEnabledY
- ExtAuthBypassLoginScreenN
- ExtAuthSubmitTextLogin using NetID and Password
- ExtAuthSystemURLhttp//traindb.library.yale.edu8
085/VoyAuth/voyauth/voyAuthAdpt.jsp - ExtAuthButtonMethodGET
23OPAC.INI parameter changes
- ExtAuthenticationSystem
- ExtAuthSystemEnabledY
- ExtAuthBypassLoginScreenN
- ExtAuthSubmitTextLogin using NetID and Password
- ExtAuthSystemURLhttp//traindb.library.yale.edu8
085/VoyAuth/voyauth/voyAuthAdpt.jsp - ExtAuthButtonMethodGET
24OPAC.INI parameter changes
- ExtAuthenticationSystem
- ExtAuthSystemEnabledY
- ExtAuthBypassLoginScreenN
- ExtAuthSubmitTextLogin using NetID and Password
- ExtAuthSystemURLhttp//traindb.library.yale.edu8
085/VoyAuth/voyauth/voyAuthAdpt.jsp - ExtAuthButtonMethodGET
25OPAC.INI parameter changes
- ExtAuthenticationSystem
- ExtAuthSystemEnabledY
- ExtAuthBypassLoginScreenN
- ExtAuthSubmitTextLogin using NetID and Password
- ExtAuthSystemURLhttp//traindb.library.yale.edu8
085/VoyAuth/voyauth/voyAuthAdpt.jsp - ExtAuthButtonMethodGET
26External Auth Login Button
27HTML Source of Login button
- ltPgtltform method"GET
- action"http//traindb.library.yale.edu8085/VoyAu
th/voyauth/voyAuthAdpt.jsp?"gt - ltINPUT TYPEHIDDEN NAMEPAGE VALUEpbPatrongtltINPUT
TYPEHIDDEN NAMEPID VALUE"13922"gt - ltINPUT TYPEHIDDEN NAMESEQ VALUE"20040401105534"
gt - ltdiv align"center"gt
- ltinput typesubmit value"Login using NetID
and Password" name"submit"gt - lt/divgt
- lt/formgt
28Offering a selection of Logins
- Set ExtAuthBypassLoginScreenN
- Use LoginTypes stanza to set up traditional
Login - Login Types
- BCVisitor Barcode
29Offering a selection of Logins
30Stumbling Blocks - Login Page
- Position of the button on the page cant be
changed
31Stumbling Blocks - Login Page
- No ability to use a local image for the external
authentication button on the traditional Voyager
page
Vs.
32Error Messages
- If Authentication fails, the patronextmsg.htm
file will display
33Stumbling Block - Requests
- Patron Requests dont work the same
- Patron ID verification in the Request Form is
turned off - Possibility of requesting material for wrong
patron
34Stumbling Block - Requests
35Stumbling Blocks Requests
- External Authentication Request Form does not
contain a secondary login field
36Bridging Voyager and CAS
37Patron Authentication Adapter Workflow
- User selects WebVoyage function requiring login
- WebVoyage gives control of browser to the adapter
- Adapter authenticates the patron using CAS
functions - Adapter inserts information in Voyager database
and returns positive status to WebVoyage - Using information just placed in the database,
WebVoyage locates the corresponding patron record
and logs in
38Voyager Adapter Rules
- Save the PID that WebVoyage sends in an HTTP
request to invoke the Adaptor. This field
contains the WebVoyage process id that enables
the Adapter to communicate with the WebVoyage
instance that invoked it. - Collect whatever credentials it needs to
determine a users identity using CAS - If the authentication is successful, retrieve a
unique patron key, referred to as the netid in
this document, from the server.
39Voyager Adapter Rules
- Using an SQL programming interface to insert a
record into the Voyager database that contains 2
fields, one for the WebVoyage process id
obtained in step 1 and the other for the patron
netid. - Create a redirect URL to WebVoyage that combines
the PID it received from WebVoyage and a field
that indicates whether patron authentication was
successful - Return control to WebVoyage using this redirect
URL.
40Programming Mechanics
- Tomcat Servlet Container
- CAS taglib
- voyAuthAdpt.jsp
- Capture Voyager PID
- Invoke CAS
- voyauth servlet
- Get patron id from netid
- Return Y/N decision to Voyager
41Programming Nuts and bolts
42Programming Lessons
- Use properties to isolate site specific
parameters - Use JDBC connection to minimize SQL overhead
- Use Tomcat Servlet Container to isolate
deployment, logging, and management
43Programming Collaboration
- Sample code available by request
- jeffrey.barnett_at_yale.edu
- http//www.library.yale.edu/jbarnett/EndUser2004
- .war file to be submitted to support web
- Open Source distribution under consideration
44QA
- The Environment?
- The Configuration?
- The Implementation?
- Other