Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
czyli prosty sposób na SSO
CAS (Central Authentication Service) czyli prosty sposób na SSO Marcin Frankiewicz Projektant, APUS , Kraków
2
Agenda Czym jest CAS - parę słów o Single Sign-On
Bilety, usługi ... czyli architektura Modułowość, rozszerzalność, konfiguracja Integracja z CAS-em Konkurencyjne rozwiązania A jak to wszystko działa w praktyce … Pomoc, źródła, materiały
3
Parę słów o Single Sign-On
Czym jest CAS Parę słów o Single Sign-On
4
Wiele niepowiązanych witryn, każda wymaga założenia konta, do każdej inny login i hasło.
5
Wiele witryn, każda własny login i hasło.
Według badania* 31% uczestników badania używa jednego lub dwóch haseł do wszystkich serwisów. Wykradzenie jednego hasła daje dostęp włamywaczom do wszystkich danych użytkownika zgromadzonych w „chmurze”. *
6
Zamieniamy na jeden punkt autoryzacji – jeden login i hasło
Za pomocą wspólnego repozytorium np. LDAP, problem nadal pozostaje, kompromitacja któregokolwiek z systemów powoduje kompromitację całej infrastruktury – dostęp do dowolnego elementu. Za pomocą serwera SSO – JEDNA formatka logowania !!
7
SSO Single Sign On
8
Single Sign On Proces uwierzytelnienia, pozwalający na jednokrotne wprowadzenie danych uwierzytelniających (np. login i hasło ), a następnie na dostęp do usług bez ich ponownego wprowadzania
9
Single Sign On Komfort Bezpieczeństwo
Tylko jeden login/hasło (lub inne dane uwierzytelniające) Autoryzacja tylko raz, a potem dostęp do wielu aplikacji (Single Sign-In) Bezpieczeństwo Aplikacje nie „dotykają” hasła użytkownika Dane logowania użytkownika bezpieczne nawet przy kompromitacji aplikacji usługi Single Sign In
10
CAS (Central Authentication Service)
Proste, elastyczne, rozszerzalne, otwarte SSO
11
JA-SIG CAS CAS - Central Authentication Service
Scentralizowane, wieloprotokołowe WebSSO (Single Sign-On, Single Sign-In, Single Sign-Out) Początki w Yale University, obecnie JA-SIG Serwer CAS oraz klienci CAS Wsparcie dla wielu mechanizmów autoryzacji Delegowanie autoryzacji (proxy) Dobrze udokumentowane API, protokół oraz wsparcie Darmowy i otwarty JASIG - Java Architectures Special Interest Group Wieloprotokołowe - komunikacja za pomocą jednego lub kilku protokołów WebSSO – SSO dla aplikacji WEB owych Single Sign-On – jedno hasło Single Sign-In – jednokrotne logowanie Single Sign-Out – jednokrotne wylogowanie Serwer CAS – autoryzuje klientów Scentralizowane – wszystkie hasła przechowywane w jednym miejscu (nie koniecznie jeden mechanizm autoryzacji)
12
Bilety, usługi ... czyli architektura
13
Podstawowe pojęcia dla CAS
Serwer CAS Usługa – aplikacja WWW autoryzująca użytkowników za pomocą serwera CAS Proxy – usługa chcąca uzyskać dostęp do innych usług w imieniu danego użytkownika Usługa końcowa – usługa akceptująca dane uwierzytelniające od proxy Bilet – unikalny identyfikator służący do autoryzacji usług i jej weryfikacji
14
Architektura CAS Jak to działa?
15
Użytkownik odwołuje się do zasobu w aplikacji WEB.
16
strona logowania logowanie.prezentacja-cas.pl redirect
service= Gdy zasób jest chroniony - redirect do serwera CAS CAS sprawdza czy istnieje TGT (Ticket Granting Ticket), jeśli istnieje zamiast strony logowania następuje pominięcie kroku i redirect do usługi (tak jak to zostanie pokazane w następnym kroku). Wyświetlenie strony logowania.
17
ZALOGUJ logowanie.prezentacja-cas.pl www.prezentacja-cas.pl
marcin.frankiewicz ************ Uwierzytelnianie (authentication). Jeżeli dane niepoprawne – komunikat. Dla danych poprawnych …
18
logowanie.prezentacja-cas.pl redirect
Redirect do usługi z ST (Service Ticket-em) jako parametr. Passing the "master key" session identifier exclusively between the user's browser and CAS server dramatically limits the potential for man-in-the-middle attacks on the session identifier. CAS benefits from increased security in this regard over shared cookie strategies.
19
Witaj marcin.frankiewicz!
logowanie.prezentacja-cas.pl Witaj marcin.frankiewicz! weryfikacja ID TAK | NIE XML Weryfikacja ST przez usługę (do CAS przekazany ST i nazwa usługi). Czas życia ST bardzo krótki i powiązany z usługą, zapobiega to atakowi man in the middle. Odpowiedź za CAS w postaci XML-a. Identyfikator użytkownika + atrybuty.
20
Architektura CAS Tryb gateway
21
Często spotykana sytuacja, zwłaszcza w portalach internetowych, że zasób jest publiczny a wyświetlana jest informacja o zalogowanym użytkowniku. Mechanizmy typu „pamiętaj mnie”. Domyślnie dla każdego zasobu chronionego następuje przekierowanie do CAS i prezentacja strony logowanie (dla niezalogowanego). Aby to osiągnąć w CAS wprowadzono tryb gateway. W trybie gateway strona logowania nie jest NIGDY pokazywana.
22
Protokół CAS – tryb gateway
Rozpoznanie czy użytkownik jest zalogowany bez pokazywania strony logowania Przydatny dla zasobów niechronionych Dla niezalogowanych użytkowników dużo przekierowań Brak wsparcia w kliencie Spring Security Każde żądanie przekierowywane na stronę logowania CAS a potem z powrotem do usługi
23
Bilety Architektura CAS
Służą do autoryzacji usług i jej weryfikacji. Unikalne stringi z odpowiednim przedrostkiem i identyfikatorem.
24
Bilety TGT (Ticket Granting Ticket)
bezpieczny identyfikator sesji SSO, udostępniany wyłącznie serwerowi CAS w postaci cookie ST (Service Ticket) dane uwierzytelniające możliwe do wykorzystania tylko raz wykorzystywane aby uzyskać dostęp do usług Proxy-granting ticket (PGT) Proxy-granting ticket IOU (PGTIOU) Proxy ticket (PT) TGT Private and protected cookie (the only one used by CAS, optional) Opaque re-playable ticket ST Browser’s passport to the CAS client (application) Opaque and non re-playable ticket Very limited validity (a few seconds) PGT Application’s passport for a user to the CAS server Opaque and re-playable ticket PT Application’s passport for a user to a tier service Very limited validity
25
Modułowość, rozszerzalność, konfiguracja
Budowa serwera CAS
26
Zastosowane technologie
Java Java Servlet 2.4 Apache Maven Spring WebFlow Możliwość wdrożenia na wielu serwerach - każdy serwer wspierający Servlet 2.4 – pojedyncze archiwum WAR Spring Framework – API CAS podobne do Spring Framework, rozszerzalne i modułowe, konfiguracja w XML Spring-a Spring Security – Zarządzanie usługami i statusem serwera Spring WebFlow – Logowanie jako Web Flow (workflow), łatwe do rozszerzenia np. wymuszenie zmiany hasła Spring Framework Spring Security
27
Konfiguracja serwera Maven WAR „overlay” Spring Beans XML
deployerConfigContext.xml + cas.properties CSS, grafika, widok, itp. Nowe moduły w postaci zależności Maven Najprościej za pomocą mechanizmu maven war overlay, ale można też przepakować WAR-kę lub zbudować ze źródeł.
29
Protokoły komunikacji
CAS 1.0 i 2.0 SAML 1.1 SAML2 OpenID OAuth Własny protokół Komunikacja pomiędzy klientem a serwerem Klient może komunikować się z serwerem za pomocą któregokolwiek ze wspieranych protokołów. Wszystkie wspierane protokoły są konceptualnie podobne do siebie, jednak różniące je cechy lub właściwości mogą być pożądane przez jedną lub drugą aplikację. Np. protokół CAS wspiera autoryzację proxy a protokół SAML wspiera przekazywanie atrybutów oraz Single Sign Out. SAML 1.1 – wsparcie częściowe, głownie ze względu na przekazywanie atrybutów oraz Single Sign Out. SAML 2 – integracja z kontem Google, idP (identity provider) dla Google Apps (hosted) OpenID - wsparcie częściowe dla funkcjonalności idP (identity provider) OAuth – jako klient OAuth (Facebook, Twitter, Google) lub jako serwer OAuth 2.0
30
Dostawcy autoryzacji Podstawowy Active Directory LDAP JDBC JAAS RADIUS
SPNEGO Certyfikat X.509 Własny dostawca Podstawowy – użytkownik/hasło w konfiguracji serwera lub w pliku JDBC – query (SQL) do BD w pliku konfiguracji JAAS - Java Authentication and Authorization Service – framework podobny do PAM RADIUS - Remote Authentication Dial In User Service - usługa zdalnego uwierzytelniania użytkowników, którzy wdzwaniają się do systemu. Obecnie jest najpopularniejszym protokołem uwierzytelniania i autoryzowania użytkowników sieci telefonicznych i tunelowych. Używany również w sieciach bezprzewodowych. SPNEGO - Simple and Protected GSSAPI Negotiation Mechanism – Kerberos X.509 – certyfikat klienta
31
Dodatkowe funkcjonalności i rozszerzenia
Menedżer usług i udostępnianie atrybutów RestAPI „Zapamiętywanie” użytkownika Blokada przed zgadywaniem hasła Audyt i statystyki Możliwość pracy w klastrze ClearPass Nieoficjalne, np. CASShib Menedżer usług – osobny moduł pozwalający na zarządzanie usługami – white-list, udostępniane atrybuty, proxy RestAPI – żądanie TGT, ST, logout „Remember me” – długoterminowe TGT Blokada przed zgadywaniem hasła – nie blokuje konta a jedynie dostęp z określonego IP Audyt i statystyki – Inspektr do audytowania, zapis w BD Klaster – unikalność biletów – rejestr biletów, distributable ClearPass – przekazywanie „czystego” hasła do usługi CASShib - CAS zamiast Shibboleth service provider
32
Integracja z CAS-em Klienci CAS
Czyli jak zintegrować aplikację z CAS-em
33
Integracja klientów z CAS
Oficjalni klienci utrzymywani przez JA-SIG Klienci nieoficjalni - community Aplikacje z wbudowaną integracją z CAS Pojęcie „CASifying” CASifying – czyli co zrobić aby aplikacja wykorzystywała CAS jako dostawcę uwierzytelniania.
34
Oficjalni klienci CAS Java CAS Client phpCAS mod_auth_cas
Spring Security CAS Apache Shiro CAS phpCAS mod_auth_cas .NET CAS Client
35
Klient Java – zestaw filtrów, autoryzują i weryfikują, oraz umieszczają Principal-a w request
36
Klienci nieoficjalni Perl Ruby Python PAM IIS PL/SQL
Drupal, JIRA, Confluence
37
Aplikacje zintegrowane z CAS
uPortal – portal JA-SIG Mantis – Bug Tracker Liferay Portal – portal Moodle – system e-learningowy
38
Comarch Portal Overlay, overlay-a
Autoryzacja JDBC, Active Directory, ePAUP (jednocześnie) Przekazywanie atrybutów Klient Spring Security + moduły dodatkowe z klientami Java Modyfikacja formatki logowania Klaster (Jboss Cache) Wymuszenie zmiany hasła
39
Konkurencyjne rozwiązania
40
Rozwiązania online OpenID OAuth Mozilla Persona ePUAP Facebook Google
Twitter Microsoft Wiele innych Mozilla Persona ePUAP
41
Serwery SSO JOSSO OpenAM Shibboleth (Internet2) CoSign
42
DEMO A jak to wszystko działa w praktyce …
30 minut pracy – overlay CAS-a, prosty klient, konfiguracja Tomcat-a Scenariusz:
43
Pomoc, źródła, materiały
Community … Pomoc, źródła, materiały
44
Pomoc, źródła, materiały
45
Dziękuję za uwagę Pytania, uwagi Marcin Frankiewicz
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.