integration of n tiers application
play

Integration of N-tiers application Using CAS Single Sign On system - PowerPoint PPT Presentation

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/


  1. 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

  2. Integration of N-tiers application http://associatie.kuleuven.be/ velpi@groupt.be 2

  3. Integration of N-tiers application Integration of N-tiers application Introducing CAS Proxy CAS login scenario Implementing proxy CAS Beyond... velpi@groupt.be 3

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. Integration of N-tiers application Integration of N-tiers application Introducing CAS Proxy CAS login scenario Implementing proxy CAS Beyond... velpi@groupt.be 10

  11. login scenario Integration of N-tiers application • BROWSER: cookies enabled BROWSER velpi@groupt.be 11

  12. login scenario Integration of N-tiers application CAS SERVER • CAS: a trusted arbiter of authenticity BROWSER velpi@groupt.be 12

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. 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

  32. 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

  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 33

  34. 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

  35. 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

  36. 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