34
Introducing JA-SIG Central Authentication Service 3.0 Scott Battaglia [email protected] Rutgers, the State University of New Jersey

[Central authentication service][by ja sig]

  • Upload
    izzln

  • View
    178

  • Download
    0

Embed Size (px)

Citation preview

Page 1: [Central authentication service][by ja sig]

Introducing JA-SIG Central Authentication Service 3.0Scott [email protected], the State University of New Jersey

Page 2: [Central authentication service][by ja sig]

Outline

What is CAS? History of CAS

CAS 1.x CAS 2.x

Introducing CAS 3 Development Process/Developers Design Goals Why build CAS 3?

Advanced CAS 3 Usage Clustering/Load Balancing Accepting Multiple Credential Types SAML Support

The Future Helping with CAS Development

Page 3: [Central authentication service][by ja sig]

What is CAS?

CAS is…Single sign on for the webA trusted intermediaryA proxy authenticator to back-end services

Page 4: [Central authentication service][by ja sig]

History of CAS

CAS 1.x

CAS 2.x

Page 5: [Central authentication service][by ja sig]

History of CAS: CAS 1.x

Original version released by Yale University

Offered single sign on for the web Consisted of servlets and JSP pages

Page 6: [Central authentication service][by ja sig]

History of CAS: CAS 2

Also developed at Yale University Introduced concept of proxy authentication

to CAS Simple: 6 servlets and fewer than 10 JSPs Extremely popular Large User Community

Page 7: [Central authentication service][by ja sig]

Introducing CAS 3.0

Page 8: [Central authentication service][by ja sig]

CAS 3.0: Why Build CAS 3?

CAS 2.0 was an excellent project CAS 2.0 was easy to use CAS 2.0 was not easy to extend or

augment with local requirements CAS 3.0 attempts to solve the last

problem!

Page 9: [Central authentication service][by ja sig]

CAS 3.0: Why Build CAS 3?

Making changes to CAS 2.0 generally requires forking the code base

Adding new features may require a lot of copying and pasting which may get out of sync with core code base.

Page 10: [Central authentication service][by ja sig]

CAS 3.0: Why Build CAS 3?

CAS 3 offers…CAS 2 compliance out of the boxUnit/Integration Tests and Compliance TestsProper domain modelRevamped architectureSupport for well-known modifications

Page 11: [Central authentication service][by ja sig]

CAS 3.0: Design Goals

First and foremost CAS3 will be Flexible, Extensible and Elegant.

CAS3 will maintain backward compatibility with CAS 2.0 and CAS 1.0 protocols while providing extension points for well-known modifications and new features such as support for Web Services, SAML and Shibboleth.

CAS Clients written for older versions of CAS will work with CAS3 without modification.

Page 12: [Central authentication service][by ja sig]

CAS 3.0: Development Process

Started as a Yale/Rutgers collaboration Became JA-SIG Project in December

2004 JA-SIG project makes it open-source Available in public JA-SIG CVS, nightly

builds on Clearinghouse machines, etc.

Page 13: [Central authentication service][by ja sig]

CAS 3.0: Development Team

Yale University Susan Bramhall Howard Gilbert Drew Mazurek Andy Newman Andrew Petro

Rutgers, the State University of New Jersey Scott Battaglia Dmitriy Kopylenko Bill Thompson

Page 14: [Central authentication service][by ja sig]

CAS 2 Compliance

In terms of protocol, drop in replacement for CAS 2.0

Requires no modifications to client applications

Includes adaptor to allow plugging in CAS 2 PasswordHandler into CAS 3 architecture

Page 15: [Central authentication service][by ja sig]

Unit/Integration/Compliance Tests

Unit and Integration Tests coverage of major components Utilizes JUnit, Clover According to Clover, 99.5% test coverage Allows us to refactor with confidence!

Compliance Tests Run against live server Test compliance to CAS 2 specification Currently 48 tests

Page 16: [Central authentication service][by ja sig]

Proper Domain Model

Major Breakthrough: Only Two Types of Tickets Ticket Granting Ticket Service Tickets

Domain logic belongs with Domain Objects Example: A ticket can determine if its expired Simplifies implementations of supporting pieces

Page 17: [Central authentication service][by ja sig]

Revamped Architecture

Built on popular open-source frameworks Spring Framework Quartz xFire Jakarta Commons Log4j Maven

Design Philosophy: don’t reinvent the wheel

Page 18: [Central authentication service][by ja sig]

Revamped Architecture

Loose coupling of componentsVia Dependency InjectionDeclarative configuration via XML files

Coding to interfacesSwap implementations to suite needs Implementations adhere to contractExample: TicketRegistry

Page 19: [Central authentication service][by ja sig]

Revamped Architecture

Uses Design PatternsPatterns allow for a common understandingExample: Template Design Pattern

Layered ArchitectureSeparation of UI concerns from business

concernsAllows for better re-use of codeExample: Web Tier vs. Web Service

Page 20: [Central authentication service][by ja sig]

Revamped Architecture

Use of AOP to separate cross-cutting concerns for business logicAllows for major additions to functionality

without modifying core codeExample: auditing

Use of Spring Workflow allows for declarative reconfiguration of Login process

Page 21: [Central authentication service][by ja sig]

Support for Well-Known Modifications

Gathered list from current and future (potential) CAS deployers

CAS 3 includes extensions points for well-known modifications

CAS 3 (via Spring) supports using AOP to introduce modifications

Page 22: [Central authentication service][by ja sig]

Support for Well-Known Modifications

Audit Trail Modification (identified by CalPoly)

Services Whitelist (identified by Columbia and University of Delaware)

Additional Principal (and Authentication) Attributes (Rutgers, others)

Ticket Statistics (Yale)

Page 23: [Central authentication service][by ja sig]

Support for Well-Known Modifications

Audit Trail ModificationCAS supports publishing of eventsEventListener listens for eventsDeployers can code and register

“EventHandlers” that allow them to log particular events

Page 24: [Central authentication service][by ja sig]

Support for Well-Known Modifications Attributes

CAS supports plugging in PrincipalResolvers and MetaDataPopulators

Allow to attach attributes to principals (i.e. hair color or employee type)

Attach attributes to Authentication (i.e. safeword authentication)

Can customize view to pass back attributes.

Page 25: [Central authentication service][by ja sig]

Support for Well-Known Modifications

Ticket StatisticsExposed via JMXTell how many of each ticket type were

vendedTell how many tickets of each type were

vended per second

Page 26: [Central authentication service][by ja sig]

Advanced CAS 3 Usage

Page 27: [Central authentication service][by ja sig]

Clustering/Load Balancing CAS

All CAS Domain objects are serializable Tickets are only stored in TicketRegistry TicketRegistry is interface Implement JGroups TicketRegistry (David

Stacey)

Page 28: [Central authentication service][by ja sig]

Accepting Multiple Credential Types

Web Login defined by workflow Dartmouth identified need to have

augmented login workflow Need to check for Client Certificate before

displaying login form

Page 29: [Central authentication service][by ja sig]

SAML Support

Standard XML-based framework Used to create and exchange info

amongst online partners CAS can offer alternatives to the CAS 2

Protocol views One alternative is a SAML response

Page 30: [Central authentication service][by ja sig]

The Future of CAS

Page 31: [Central authentication service][by ja sig]

The Future of CAS

Advanced SAML Support Support for both SAML request and responses

Shibboleth Support Requires advanced SAML support Allow CAS to speak to Shibboleth

Who knows what else… current architecture allows for many possibilities

Page 32: [Central authentication service][by ja sig]

The Future of CAS

Already working on a 3.0.1 (and beyond)XMLBeans viewMore robust registry cleaners Increased compatibility testingSupport for Single Sign out (requires new

clients)

Page 33: [Central authentication service][by ja sig]

Helping with CAS 3.0 Development

What can YOU do to help? Look at what CAS 3 has to offer Use CAS 3 Report bugs/feature requests/etc to the development

list Give your extensions back to the community Share your experiences using CAS with the

community Join the CAS mailing list

Page 34: [Central authentication service][by ja sig]

Questions or comments?