Integration of N-tiers application Using CAS Single Sign On system with a webmail application, Horde K.U.Leuven Association velpi@groupt.be http://shib.kuleuven.be
Integration of N-tiers application http://associatie.kuleuven.be/ velpi@groupt.be 2
Integration of N-tiers application Integration of N-tiers application Introducing CAS Proxy CAS login scenario Implementing proxy CAS Beyond... velpi@groupt.be 3
Integration of N-tiers application Introducing CAS: the project Originally developed by Yale University JA-SIG project since December 2004 http://www.ja-sig.org/products/cas/ velpi@groupt.be 4
Integration of N-tiers application Introducing CAS: the technology • Originally open-source WebISO • Loosely based on Kerberos *model* • Server: Java & Spring framework Client: lots of implementations + libs available (with source) velpi@groupt.be 5
Integration of N-tiers application Introducing CAS: the protocol XML http://www.ja-sig.org/products/cas/overview/protocol/index.html velpi@groupt.be 6
Integration of N-tiers application Introducing CAS: N-tiers Proxy CAS http://www.ja-sig.org/wiki/display/CAS/Proxy+CAS+Walkthrough velpi@groupt.be 7
Integration of N-tiers application Proxy CAS: the problem space • Passwords are passing all “clients” • Credentials have to be cached • Caching has to be done in plain text velpi@groupt.be 8
Integration of N-tiers application Proxy CAS: a solution • One-time “passwords” • Passwords are replaced by “tickets” • One-time=request new for next authN velpi@groupt.be 9
Integration of N-tiers application Integration of N-tiers application Introducing CAS Proxy CAS login scenario Implementing proxy CAS Beyond... velpi@groupt.be 10
login scenario Integration of N-tiers application • BROWSER: cookies enabled BROWSER velpi@groupt.be 11
login scenario Integration of N-tiers application CAS SERVER • CAS: a trusted arbiter of authenticity BROWSER velpi@groupt.be 12
login scenario Integration of N-tiers application CAS SERVER Performance enhancement • Service: webapp that authenticates users via CAS IMAP PROXY • Proxy: service that wants to access other services on behalf of a particular user Horde / IMP with BROWSER phpCAS CLIENT velpi@groupt.be 13
login scenario Integration of N-tiers application PAM IMAP with CAS SERVER SERVER PAM_CAS • Target (back-end service): service that accepts proxied credentials from at least one particular proxy IMAP PROXY Horde / IMP with BROWSER phpCAS CLIENT velpi@groupt.be 14
Integration of N-tiers application login scenario: the players • CAS: a trusted arbiter of authenticity CAS • Service: webapp that authenticates users via CAS Horde • Proxy: service that wants to access other services on behalf of a particular user IMP • Target (back-end service): service that accepts proxied credentials from at least one particular proxy IMAP velpi@groupt.be 15
login scenario Integration of N-tiers application PAM IMAP with CAS SERVER SERVER PAM_CAS IMAP PROXY Horde / IMP with BROWSER phpCAS CLIENT velpi@groupt.be 16
login scenario Integration of N-tiers application PAM IMAP with CAS SERVER SERVER PAM_CAS IMAP PROXY Horde / IMP HTTP REQ (PHP-SESSION) with BROWSER phpCAS CLIENT velpi@groupt.be 17
login scenario Integration of N-tiers application PAM IMAP with CAS SERVER SERVER PAM_CAS IMAP PROXY (+TGC) Horde / IMP HTTP REQ (PHP-SESSION) with BROWSER S1 phpCAS CLIENT velpi@groupt.be 18
login scenario Integration of N-tiers application PAM IMAP with CAS SERVER SERVER PAM_CAS (LOGIN PAGE) (LT) (CREDENTIALS) IMAP PROXY (LT) (+TGC) Horde / IMP HTTP REQ (PHP-SESSION) with BROWSER S1 phpCAS CLIENT velpi@groupt.be 19
login scenario Integration of N-tiers application PAM IMAP with CAS SERVER SERVER PAM_CAS ST (LOGIN PAGE) (LT) (CREDENTIALS) IMAP PROXY (LT) (+TGC) (SET TGC) Horde / IMP HTTP REQ (PHP-SESSION) with BROWSER S1 phpCAS CLIENT velpi@groupt.be 20
Integration of N-tiers application login scenario: Credentials OR TicketGrantingCookie (TGC) response Redirect to: http://webmail.mydomain.org/?ticket=TICKET eg TICKET=ST-38815-m09bXdf770aEJfq9VsotayLh6OyE0MoovLM-20 velpi@groupt.be 21
login scenario Integration of N-tiers application PAM IMAP with CAS SERVER SERVER PAM_CAS ST (LOGIN PAGE) (LT) (CREDENTIALS) IMAP PROXY (LT) (+TGC) (SET TGC) Horde / IMP HTTP REQ (PHP-SESSION) with BROWSER S1 phpCAS CLIENT velpi@groupt.be 22
login scenario Integration of N-tiers application PAM IMAP with CAS SERVER SERVER PAM_CAS ST (LOGIN PAGE) (LT) (CREDENTIALS) IMAP PROXY (LT) pgt-url ok? (+TGC) (SET TGC) PGT-URL ST S1 Horde / IMP HTTP REQ (PHP-SESSION) with BROWSER S1 phpCAS CLIENT velpi@groupt.be 23
login scenario Integration of N-tiers application PAM IMAP with CAS SERVER SERVER PAM_CAS PGTIOU ST (LOGIN PAGE) PGT (LT) (CREDENTIALS) IMAP PROXY (LT) pgt-url ok? (+TGC) (SET TGC) PGT-URL ST S1 Horde / IMP HTTP REQ (PHP-SESSION) with BROWSER S1 phpCAS CLIENT velpi@groupt.be 24
Integration of N-tiers application login scenario: ServiceTicket (ST) validation 1/2 CAS server requests : http://webmail.mydomain.org/casProxy.php ?pgtIou= PGTIOU &pgtId= PGT eg PGT=TGT-38815-m09bXdf770aEJfq9VsotayLh6OyE0MoovLM-20 velpi@groupt.be 25
login scenario Integration of N-tiers application PAM IMAP with CAS SERVER SERVER PAM_CAS PGTIOU ST (LOGIN PAGE) PGT (LT) (CREDENTIALS) IMAP PROXY (LT) pgt-url ok? (+TGC) (SET TGC) PGT-URL ST S1 Horde / IMP HTTP REQ (PHP-SESSION) with BROWSER S1 phpCAS CLIENT velpi@groupt.be 26
login scenario Integration of N-tiers application PAM IMAP with CAS SERVER SERVER PAM_CAS PGTIOU ST (LOGIN PAGE) NETID PGTIOU PGT (LT) (CREDENTIALS) IMAP PROXY (LT) pgt-url ok? (+TGC) (SET TGC) PGT-URL ST S1 Horde / IMP HTTP REQ (PHP-SESSION) with BROWSER S1 phpCAS CLIENT velpi@groupt.be 27
Integration of N-tiers application login scenario: ServiceTicket (ST) validation 2/2 <cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'> <cas:authenticationSuccess> <cas:user> NetID </cas:user> <cas:proxyGrantingTicket> PGTIOU </cas:proxyGrantingTicket> </cas:authenticationSuccess> </cas:serviceResponse> velpi@groupt.be 28
login scenario Integration of N-tiers application PAM IMAP with CAS SERVER SERVER PAM_CAS PGTIOU ST (LOGIN PAGE) NETID PGTIOU PGT (LT) (CREDENTIALS) IMAP PROXY (LT) pgt-url ok? (+TGC) (SET TGC) PGT-URL ST S1 Horde / IMP HTTP REQ (PHP-SESSION) with BROWSER S1 phpCAS CLIENT velpi@groupt.be 29
login scenario Integration of N-tiers application PAM IMAP with CAS SERVER SERVER PAM_CAS PT PT PGTIOU ST (LOGIN PAGE) NETID PGTIOU PGT (LT) (CREDENTIALS) IMAP PROXY S2 PGT (LT) pgt-url ok? (+TGC) (SET TGC) PGT-URL ST S1 Horde / IMP HTTP REQ (PHP-SESSION) with BROWSER S1 phpCAS CLIENT velpi@groupt.be 30
Integration of N-tiers application login scenario: ProxyGrantingTicket (PGT) response <cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'> <cas:proxySuccess> <cas:proxyTicket> PT </cas:proxyTicket> </cas:proxySuccess> </cas:serviceResponse> velpi@groupt.be 31
login scenario Integration of N-tiers application PAM IMAP with CAS SERVER SERVER PAM_CAS PT PT PGTIOU ST (LOGIN PAGE) NETID PGTIOU PGT (LT) (CREDENTIALS) IMAP PROXY S2 PGT (LT) pgt-url ok? (+TGC) (SET TGC) PGT-URL ST S1 Horde / IMP HTTP REQ (PHP-SESSION) with BROWSER S1 phpCAS CLIENT velpi@groupt.be 32
login scenario Integration of N-tiers application PAM IMAP with CAS SERVER SERVER PAM_CAS PT PT NETID PGTIOU ST (LOGIN PAGE) NETID PGTIOU PGT (LT) (PT) (CREDENTIALS) IMAP PROXY S2 PGT NETID (LT) pgt-url ok? (+TGC) PT (SET TGC) PGT-URL ST S1 Horde / IMP HTTP REQ (PHP-SESSION) with BROWSER S1 phpCAS CLIENT velpi@groupt.be 33
login scenario Integration of N-tiers application PAM IMAP with CAS SERVER SERVER PAM_CAS PT PT NETID PGTIOU ST (LOGIN PAGE) NETID PGTIOU PGT (LT) (PT) (CREDENTIALS) IMAP PROXY S2 PGT NETID (LT) pgt-url ok? (+TGC) PT (SET TGC) PGT-URL ST S1 Horde / IMP HTTP REQ (PHP-SESSION) with BROWSER S1 phpCAS CLIENT velpi@groupt.be 34
login scenario Integration of N-tiers application =? PAM NETID S1(proxy[]) IMAP with CAS SERVER SERVER PT S2 PAM_CAS PT PT NETID PGTIOU ST (LOGIN PAGE) NETID PGTIOU PGT (LT) (PT) (CREDENTIALS) IMAP PROXY S2 PGT NETID (LT) pgt-url ok? (+TGC) PT (SET TGC) PGT-URL ST S1 Horde / IMP HTTP REQ (PHP-SESSION) with BROWSER S1 phpCAS CLIENT velpi@groupt.be 35
Integration of N-tiers application login scenario: ProxyTicket (PT) validation <cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'> <cas:authenticationSuccess> <cas:user> NetID </cas:user> <cas:proxyGrantingTicket> PGTIOU </cas:proxyGrantingTicket> <cas:proxies> <cas:proxy> proxy1 </cas:proxy> <cas:proxy> proxy2 </cas:proxy> ... </cas:proxies> </cas:authenticationSuccess> </cas:serviceResponse> velpi@groupt.be 36
Recommend
More recommend