Pierce County IT Department GIS Division Xuejin Ruan Dan King



Similar documents
Open-source Single Sign-On with CAS (Central Authentication Service)

How To Configure The Jasig Casa Single Sign On On A Workstation On Ahtml.Org On A Server On A Microsoft Server On An Ubuntu (Windows) On A Linux Computer On A Raspberry V

Spring Security 3.

Architecture of Enterprise Applications III Single Sign-On

Prepared by Enea S.Teresa (Italy) Version October 24

Table of contents. Jasig CAS support for the Spring Security plugin.

Safewhere*Identify 3.4. Release Notes

CENTRAL AUTHENTICATION SERVICE (CAS) SSO FOR EMC DOCUMENTUM REST SERVICES

ClearPass A CAS Extension Enabling Credential Replay

Single Sign-On Research and Expansion Based On CAS

Implementing CAS. Adam Rybicki Jasig Conference, San Diego, CA March 7, 2010

Biometrics for Global Web Authentication: an Open Source Java/J2EE-Based Approach

Authentication Methods

A (re)introduction to Spring Security

Configuring Single Sign-on for WebVPN

Crawl Proxy Installation and Configuration Guide

This chapter describes how to use the Junos Pulse Secure Access Service in a SAML single sign-on deployment. It includes the following sections:

Spring Security 3. rpafktl Pen source. intruders with this easy to follow practical guide. Secure your web applications against malicious

Welcome to Spring Forward September 26, 2006 Penn State Great Valley

External Authentication with WebCT. What We ll Discuss

SCAS: AN IMPROVED SINGLE SIGN-ON MODEL BASE ON CAS

A detailed walk through a CAS authentication

Acegi Security. What is Acegi Security Key features Conclusion Examples in reality References. Aureliusz Rempala Emily Brand Fan Wang

Building Secure Applications. James Tedrick

Working with Indicee Elements

Copyright: WhosOnLocation Limited

Identity Management in Liferay Overview and Best Practices. Liferay Portal 6.0 EE

Single Sign On. SSO & ID Management for Web and Mobile Applications

Tableau Server Trusted Authentication

Define BA Server Advanced Security

INUVIKA OPEN VIRTUAL DESKTOP ENTERPRISE

Authentication and access control in Sympa mailing list software

<Insert Picture Here> Hudson Security Architecture. Winston Prakash. Click to edit Master subtitle style

Spring Security CAS Plugin - Reference Documentation. Burt Beckwith. Version M1

Configuration Worksheets for Oracle WebCenter Ensemble 10.3

Configuring Sponsor Authentication

Deploying RSA ClearTrust with the FirePass controller

Unlocking the Secrets of Alfresco Authentication. Mehdi BELMEKKI,! Consultancy Team! Alfresco!

WebNow Single Sign-On Solutions

Advanced OpenEdge REST/Mobile Security

Perceptive Experience Single Sign-On Solutions

How to Configure Captive Portal

FileCloud Security FAQ

Siteminder Integration Guide

Tableau Server Security. Version 8.0

Tableau Server Trusted Authentication

Technical White Paper - JBoss Security

How To Connect A Gemalto To A Germanto Server To A Joniper Ssl Vpn On A Pb.Net 2.Net (Net 2) On A Gmaalto.Com Web Server

pfsense Captive Portal: Part One

SAML-Based SSO Solution

Unified Access for Enterprise Users

SSO Plugin. Authentication service for HP, Kinetic, Jasper, SAP and CA products. J System Solutions. JSS SSO Plugin Authentication service

Authentication and access control in Sympa mailing list server

Exploiting the Web with Tivoli Storage Manager

Adobe Connect LMS Integration for Blackboard Learn 9

Absorb Single Sign-On (SSO) V3.0

TIBCO Spotfire Web Player 6.0. Installation and Configuration Manual

Single Sign-on (SSO) technologies for the Domino Web Server

Configuring Salesforce

Agenda. How to configure

Digital Identity Management

CA Performance Center

SAP NetWeaver AS Java

ADMINISTERING ADOBE LIVECYCLE MOSAIC 9.5

Administering Jive Mobile Apps

From centralized to single sign on

Single Sign-On for the UQ Web

Remote Authentication and Single Sign-on Support in Tk20

Creating a generic user-password application profile

Middleware integration in the Sympa mailing list software. Olivier Salaün - CRU

Virtual Code Authentication User s Guide. June 25, 2015

SSC - Web applications and development Introduction and Java Servlet (II)

How To Get A Single Sign On (Sso)

Using weblock s Servlet Filters for Application-Level Security

Configuring SuccessFactors

SINGLE SIGN-ON SETUP T ECHNICAL NOTE

Gateway Apps - Security Summary SECURITY SUMMARY

DEPLOYMENT GUIDE Version 1.0. Deploying the BIG-IP Edge Gateway for Layered Security and Acceleration Services

Java Web Security Antipatterns

esoc SSA DC-I Part 1 - Single Sign-On and Access Management ICD

Single sign-on enabled OpenCms

Securing access to Citrix applications using Citrix Secure Gateway and SafeWord. PremierAccess. App Note. December 2001

Interwise Connect. Working with Reverse Proxy Version 7.x

Qualtrics Single Sign-On Specification

1 of 24 7/26/2011 2:48 PM

Getting Started with AD/LDAP SSO

Robert Honeyman Honeyman IT Consulting.

Setup Corporate (Microsoft Exchange) . This tutorial will walk you through the steps of setting up your corporate account.

OVERVIEW. DIGIPASS Authentication for Office 365

Weblogic as a Service Provider for CERN Web Applications: APEX & Java EE

How To Use Saml 2.0 Single Sign On With Qualysguard

Integrating IBM Cognos 8 BI with 3rd Party Auhtentication Proxies

Egnyte Single Sign-On (SSO) Configuration for Active Directory Federation Services (ADFS)

For details about using automatic user provisioning with Salesforce, see Configuring user provisioning for Salesforce.

SSO Plugin. Authentication service for HP, Kinetic, Jasper, SAP and CA products. J System Solutions. Page 1 of 23.

CAS Protocol 3.0 specification

Securing WebFOCUS A Primer. Bob Hoffman Information Builders

Configuring. Moodle. Chapter 82

Web Authentication Application Note

SSO Plugin. HP Service Request Catalog. J System Solutions. Version 3.6

Transcription:

Pierce County IT Department GIS Division Xuejin Ruan Dan King

Web Application Work Flow

Main Topics Authentication Authorization Session Management * Concurrent Session Management * Session Timeout Single Sign Out

Part I Authentication (Single Sign On with Central Authentication Service) Authorization Session Management: * Concurrent Session Management * Session Timeout Single Sign Out?

Single Sign On (SSO) is a property of access control of multiple related, but independent software systems. With this property a user logs in once and gains access to all systems without being prompted to log in again at each of them. Why SSO?

Multiple Frameworks

Diversified Users

Server Locations

Multiple Access Points County User - External Gaylynn Wilke PCSD Neighborhood Crime Admin County User - Internal Tom Symonds DEM School Threat System County User - Internal Joyce Seger Tacoma Pierce County Health Department West Nile Virus Non-County User - External City of Puyallup DEM Entire Department School Threat System Non-County User - External Dena Berkey Leroy Surveyors CountyView Web County User - Internal Dave Peterson PALS CountyView Web

Why Not Make Our Life Easier? For Users No more stickers with usernames/passwords flying around No more banging the wall No more pulling the hair For Developers Removed authentication from application code Authentication is centralized to a unique server, the only machine receiving users credentials, through an encrypted tunnel

Why CAS? Central Authentication System/Services (CAS) is an Central Authentication System/Services (CAS) is an authentication system originally created by Yale University to provide a trusted way for an application to authenticate a user. CAS became a Jasig project in December 2004.

CAS Technology Stack Java and JSPs Spring Framework Spring Web Flow Spring Security Maven2 Jasig Person Directory CAS is designed to run on any Java 1.5 or higher virtual machine and in any container that supports Servlet 2.4 or higher

CAS Work Flow User try to access a secured resource If the user has not already signed in, then he/she will be redirected to CAS for login. After the user is authenticated, user name will be passed to application code which will handle authorization If the user has already been authenticated by CAS, then he/she will not be shown the login screen if he/she is trying to access any applications that are configured to work with CAS.

CAS Key Parties User Database CAS Server Client web browser(s) The web application(s) CAS server Database server(s) Application Server Web Browser

How Does CAS Work User Database CAS Server When requesting a protected resource, if the user is not authenticated yet, the user will be redirected to CAS login page with requested resource appended in the service url. After user is authenticated with correct username/password, CAS server will issue a TGC. HTTPS Username/ Password TGC Application Server Web Browser TGC

How Does CAS Work CAS Server Application HTTPS TGC Web Browser TGC When accessing a resource protected by a CAS client, the web browser is redirected to the CAS server. The browser, previously authenticated, provides the CAS server its TGC Reference: ESUP-Portail: open source Single Sign-On with CAS (Central Authentication Service) By Pascal Aubry, Vincent Mathieu, Julien Marchal, 2004

How Does CAS Work CAS Server Application ST TGC ST Web Browser TGC On presentation of the TGC, the CAS server delivers a Service Ticket (ST) to the browser. It is an opaque ticket (no user information), and is usable only by the service that required it. At the same time, the CAS server redirects the browser to the calling service (the Service Ticket is a CGI parameter). The browser then presents the ST to the application. Reference: ESUP-Portail: open source Single Sign-On with CAS (Central Authentication Service) By Pascal Aubry, Vincent Mathieu, Julien Marchal, 2004

How Does CAS Work CAS Server ST ID Application ST TGC ST Web Browser TGC The ST is then validated by the CAS client against the CAS server using HTTP request, and the requested resource can be delivered to the browser. Reference: ESUP-Portail: open source Single Sign-On with CAS (Central Authentication Service) By Pascal Aubry, Vincent Mathieu, Julien Marchal, 2004

It Works for us Security: Passwords only pass from browsers to the authentication server, always through an encrypted tunnel; Re-authentications are transparent to users, providing that they accept a single cookie, called the Ticket Granting Cookie (TGC). This cookie is opaque, protected, and private; Applications know users identities without seeing any password, thanks to opaque one-time Service Tickets (ST). Flexibility: multiple authentication handler: LDAP directory, database, x509 certificate Rich Client Libraries: Jsp, Perl, Java, ASP, Coldfusion, PHP, uportal, Ruby on Rails Client Authentication proxying with PGT and PT

What We ve Achieved with CAS: One login and password. If user has not logged in or has timed out then return to login page. If user has already logged in and is in an active session then the user will be redirected to the requested resource Language-specific libraries available to developer to communicate with SSO Server. Generic but customizable login widgets that applications can embed in UI. Track login history for each user/each server. Track login failures. Throttle dictionary attack.

CAS Default Login Page

Pierce County Custom CAS Login Page

Pierce County User Login Auditing

Part II Authentication: SSO with CAS (Single Sign On with Central Authentication Services Authorization Session Management: * Concurrent Session Management * Session Timeout Single Sign Out?

Authorization CAS is for authentication ONLY! After the user is authenticated with CAS, the only thing passed from CAS server to the application (requested services) is AuthUser (username) The application itself is responsible for Authorization

Authorization Requirements Each application has it s own set of roles. Users are assigned to roles. Departments are assigned to roles. Groups are assigned to roles. A group consists of users and departments. SSO Server tells the Application who the user is Authorization module pull together user s role information Applications use role information to control access to pages or UI elements.

Authorization ColdFusion applications: <cfset auser = createobject("component","#request.pathtoportalobjects#.model_userone").init(qryc hecklogin.user_id)> Java applications with Acegi security: PortalAcegi.jar created PortalUserService with username passed from CAS server <bean id="portaluserservice" class="gov.pc.portal.acegi.portaluserservice"> <property name="datasource" ref="portaldatasource"/> <property name="applicationid" value="63"/></bean> Java applications with Spring security: PortalSpringSecurity.jar created PortalUserService with username passed from CAS server <bean id="userservice" class="gov.pc.portal.springsecurity.portaluserservice"> <property name="datasource" ref="portaldatasource"/> <property name="applicationid" value="107"/> </bean>

Part III Authentication: SSO with CAS (Single Sign On with Central Authentication Services Authorization Session Management * Concurrent Session Management * Session Timeout Single Sign Out?

Session Management Requirements Wrap a filter around the application (Application.cfm, web.xml, etc.) to check session status on every request from user. Application can override default session timeout. See if user s session is still active. Upon timeout user automatically redirected to a login page See if more than one session is active. If so then prompt user to terminate one of the sessions.

Session Timeout Global Session Timeout (CAS Timeout) In CAS, ticketexpirationpolicies.xml <bean id="grantingticketexpirationpolicy" class="org.jasig.cas.ticket.support.timeoutexpirationpolicy"> <constructor-arg </bean> index="0 " value="600000" />

Session Timeout Local Session Timeout (Application Timeout) In web.xml: <session-config> <session-timeout>1</session-timeout> </session-config> Application Timeout Overwrite CAS Timeout Custom SessionExpirationFilter This filter will check whether an application has reached timeout; if yes, it will invalidate the session variables for this application, and it will send a callback url to CAS, triggering CAS logout behavior

Concurrent Session Management for Acegi Security <bean id="sessionregistry" class="org.acegisecurity.concurrent.sessionregistryimpl" /> <bean id="sessioncontroller" class="org.acegisecurity. concurrent.concurrentsessioncontrollerimpl"> <property name="exceptionifmaximumexceeded" value="true"/> <property name="maximumsessions" value="1" /> <property name="sessionregistry" ref="sessionregistry"/> </bean> <bean id="authenticationmanager" class="org.acegisecurity.providers.providermanager"> <property name="providers"> <list> <ref local="daoauthenticationprovider"/> </list> </property> <property name="sessioncontroller" ref="sessioncontroller"/> </bean>

Concurrent Session Control for Spring Security In Web.xml: <listener> <listener-class> org.springframework.security.ui.session.httpsessioneventpublisher </listener-class> </listener> In applicationcontext.xml: <sec:concurrent-session-control max-sessions="1"/> This will prevent a user from logging in multiple times - a second login will cause the first to be invalidated <concurrent-session-control max-sessions="1" exception-if-maximumexceeded="true"/> The second login will then be rejected.

Concurrent Session Management For ColdFusion Apps Custom Tag: CheckedLoggedIn.cfm <cfset variables.timeout = 30> <cf_chkpermissions appname="#request.nameofthisapp#" timeout="#variables.timeout#" homefusepath="#client.homefusepath#">

Part IV Authentication: SSO with CAS (Single Sign On with Central Authentication Services Authorization Session Management: * Concurrent Session Management * Session Timeout Single Sign Out?

Single Sign Out Sign out of one app will automatically sign you out of all active apps that are part of CAS <!--CAS single sign out--> <filter> <filter-name>cas Single Sign Out Filter</filter-name> <filter-class>org.jasig.cas.client.session.singlesignoutfilter</filter-class> </filter> <filter-mapping> <filter-name>cas Single Sign Out Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.jasig.cas.client.session.singlesignouthttpsessionlistener</listener-class> </listener> <!--End of CAS single sign out configuration-->

Summary Use CAS to achieve SSO in a diversified system Create authorization modules that would be reused by different apps. Control current session management and session timeout Make both users and developers life happier

Thanks for Your Attention! QUESTION??? xruan@co.pierce.wa.us dan.king@viewpoint.pro