Implementacja mechanizmów bezpieczeństwa w aplikacjach webowych z wykorzystaniem Spring Security, Apache Shiro, JBoss Picketlink

Podobne dokumenty
Architektura mikroserwisów na platformie Spring IO

Java wybrane technologie

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2

Korporacyjna Magistrala Usług na przykładzie Mule ESB

Korporacyjna Magistrala Usług na przykładzie Oracle Service Bus

Szkolenie wycofane z oferty. Program szkolenia: Enterprise Java Beans 3.0/3.1

Aplikacje Internetowe, Servlety, JSP i JDBC

Tytuł szkolenia: Angular 4 - budowanie nowoczesnych i wydajnych aplikacji przeglądarkowych

Wykład 4. Metody uwierzytelniania - Bezpieczeństwo (3) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Aplikacje internetowe oparte na kluczowych technologiach Java Enterprise(Servlet,JSP,JDBC, )

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Modelowanie procesów biznesowych, przepływu pracy i wdrażanie aplikacji w oparciu o Jboss jbpm lub Activiti

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Administratorzy systemów, inżynierowie, konsultanci, którzy wdrażają i zarządzają rozwiązaniami opartymi o serwery HP ProLiant

Bazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3, Bydgoszcz

Front-end: solidne podstawy. Wszystko, co warto wiedzieć o HTML, CSS, JavaScript i Bootstrap.

Architektura bezpiecznych aplikacji internetowych na platformie Java Enterprise Edition. Jakub Grabowski Warszawa,

Programowanie.NET - kurs zaawansowany

Dni: 3. Opis: Adresaci szkolenia

Zaawansowane programowanie w języku C++

Podstawy frameworka Spring

Program szkolenia: Symfony, nowoczesny framework PHP

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

EJB 3.0 (Enterprise JavaBeans 3.0)

Java Enterprise Edition spotkanie nr 1. Sprawy organizacyjne, wprowadzenie

Java Persistence API - zagadnienia zaawansowane

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

PRINCE2 Foundation & Practitioner - szkolenie z egzaminem certyfikacyjnym

Dni: 2. Partner merytoryczny. Opis: Adresaci szkolenia

POSTANOWIENIE. z dnia 20 sierpnia 2018 roku

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

Identity Management w Red Hat Enterprise Portal Platform. Bolesław Dawidowicz

komórka ZAKRES ROZSZERZONY numeracja zadań w teście

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Nowoczesne aplikacje internetowe oparte na Seam, JSF, EJB3, JPA, AJAX

(Pluggable Authentication Modules). Wyjaśnienie technologii.

Oracle9iAS: instalacja i konfiguracja aplikacji J2EE

PHP revisited - odświerzenie spojrzenia na programowanie w PHP

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

HP Matrix Operating Environment Foundations

Dni: 3. Opis: Adresaci szkolenia

KURS SPRING APLIKACJE WEBOWE

Projektowanie rozwiązań Big Data z wykorzystaniem Apache Hadoop & Family

Ekspert MS SQL Server Oferta nr 00/08

Aplikacje www laboratorium

VMware View: Desktop Fast Track [v5.1] Dni: 5. Opis: Adresaci szkolenia

Górnośląska Wyższa Szkoła Pedagogiczna imienia Kardynała Augusta Hlonda - pedagogika, studia, studia podyplomowe, Śląsk, Katowice UTW Mysłowice

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Biocentrum Ochota infrastruktura informatyczna dla rozwoju strategicznych kierunków biologii i medycyny POIG /09

Podstawy analizy danych numerycznych w języku Python

Program szkolenia: REST i Microservices w PHP

Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat.

Dni: 5. Opis: Adresaci szkolenia

Wykład 2 Inżynieria Oprogramowania

Serwery autentykacji w sieciach komputerowych

Modelowanie procesów biznesowych, przepływu pracy oraz reguł biznesowych na przykładzie Drools i jbpm lub Activiti

Serwery LDAP w środowisku produktów w Oracle

Wykład 1 Inżynieria Oprogramowania

VMware vsphere 5.5: Install, Configure, Manage

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

Kompleksowe Przygotowanie do Egzaminu CISMP

Podrozdziały te powinny zawierać informacje istotne z punktu widzenia przyjętego celu pracy

PRINCE2 Foundation - szkolenie z egzaminem certyfikacyjnym

Praktyczne aspekty stosowania kryptografii w systemach komputerowych

Księgarnia PWN: Jan De Clercq, Guido Grillenmeier - Bezpieczeństwo Microsoft Windows. Podstawy praktyczne

Web frameworks do budowy aplikacji zgodnych z J2EE

VMware vsphere: Automation Fast Track

Application Security Verification Standard. Wojciech Dworakowski, SecuRing

Java Server Faces - wprowadzenie

INTERNET - Wrocław Usługi bezpieczeństwa w rozproszonych strukturach obliczeniowych typu grid

ZiMSK. Konsola, TELNET, SSH 1

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

JBoss 4.0. Podrêcznik administratora

1 Wprowadzenie do J2EE

Java Enterprise Edition spotkanie nr 4. Java Server Pages c.d.

Materiał dystrybuowany na licencji CC-BY-SA

Nowoczesne aplikacje internetowe oparte na Spring Framework, JSF, JPA i AJAX

Warstwa ozonowa bezpieczeństwo ponad chmurami

Techniki efektywnego testowania kodu dla programistów Java (Spock

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska

Dokumentacja kompilacji źródeł aplikacji 1.0

APLIKACJE klasy korporacyjnej charakteryzują się

Technologie sieciowe

SSL (Secure Socket Layer)

Szkolenie autoryzowane. MS Administracja Windows Server Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

Program szkolenia: Bezpieczny kod - podstawy

Praktyczne zastosowanie bibliotek Boost oraz nowego standardu C++11

JBoss Application Server

Projekt: Mikro zaprogramowane na sukces!

Aplikacje webowe na celowniku. Leszek Miś IT Security Architect RHCA,RHCSS,Sec+ Linux Polska Sp. z o.o. 1

Zagadnienia projektowania aplikacji J2EE

Tworzenie aplikacji na platformie Android

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

Wojciech Dworakowski. Zabezpieczanie aplikacji. Firewalle aplikacyjne - internetowych

11. Autoryzacja użytkowników

Transkrypt:

Kod szkolenia: Tytuł szkolenia: SPRSEC Implementacja mechanizmów bezpieczeństwa w aplikacjach webowych z wykorzystaniem Spring Security, Apache Shiro, JBoss Picketlink Dni: 3 Opis: Adresaci szkolenia Szkolenie adresowane jest do programistów chcących w szybkim czasie poznać i zrozumieć zasady funkcjonowania Spring Security 3 jak również zapoznać się (ogólnie) z alternatywnymi możliwościami implementacji mechanizmów bezpieczeństwa w aplikacjach webowych oraz w świecie JEE Cel szkolenia Celem szkolenia jest praktyczne poznanie technik programistycznych oraz konfiguracyjnych umożliwiających implementację mechanizmów bezpieczeństwa w aplikacjach webowych przy wykorzystaniu Spring Security 3. Szkolenie w wyjściowej formule szczegółowo omawia możliwości Spring Security 3. Pozostałe rozwiązania przedstawione są czysto teoretycznie w celach porównawczych. Na życzenie możliwe jest dostosowanie programu w taki sposób aby technologią szczegółowo omawianą było np. Apache Shiro a reszta zagadnień (tj. Spring Security 3, JBoss Picketlink) stanowiła uzupełnienie. Bezpieczeństwo w świecie JEE Bezpieczeństwo aplikacji JEE a bezpieczeństwo aplikacji webowych Omówienie zasad działania Spring Security z dużym naciskiem położonym na architekturę tego rozwiązania i wzajemne zależności pomiędzy jego komponentami (obiekty, usługi) niezbędne do zrozumienia tego rozwiązania Praktyczne wykorzystanie mechanizmów Spring Security dostarczanych na dzień dobry Rozszerzenie dostępnych mechanizmów Spring Security w celu implementacji własnych wymagań Jak można przyspieszyć proces testowania implementowanych mechanizmów bezpieczeństwa poprzez testy z pominięciem kontenera? Mocne strony szkolenia

Spring Security jest uznawane za jedno z najlepszych rozwiązań umożliwiających implementację mechanizmów bezpieczeństwa w aplikacjach webowych. Z drugiej jednak strony wiele osób uważa to rozwiązanie za zbyt skomplikowane, gdyż wymaga ono przeznaczenia stosunkowo dużej ilości czasu na zrozumienie zasad jakimi się ono rządzi. Niniejsze szkolenie wychodzi naprzeciw tym problemom i dostarcza konkretnych informacji umożliwiających szybkie odnalezienie się w świecie Spring Security 3. Szkolenie rozpoczyna się od wstępu teoretycznego podczas którego omawiane są kluczowe koncepcje i zależności jakie należy poznać aby móc kontrolować to rozwiązanie. Omawiane są najważniejsze obiekty oraz usługi wraz z wzajemnymi zależnościami. Sama teoria to jednak nie wszystko, w dalszych częściach szkolenia zagadnienia zasygnalizowane w części teoretycznej będą wykorzystywane w praktyce. Dzięki temu, w stosunkowo krótkim czasie uczestnik będzie w stanie zdobyć wiedzę, która w trybie nauki samodzielnej jest w zasadzie nieosiągalna do zdobycia w analogicznym czasie. Wymagania: Od uczestników szkolenia wymagana jest umiejętność programowania w języku Java (do poznania na kursie J/JP), znajomość podstawowych zagadnień związanych z frameworkiem Spring (do poznania na kursie J/SPRING) oraz podstawowych koncepcji związanych z programowaniem aplikacji webowych (do poznania na kursie J/WEB2b). Parametry szkolenia 3*8 godzin (3*7 godzin netto) wykładów i warsztatów (z wyraźną przewagą warsztatów). Wielkość grupy: maks. 8-10 osób. Program szkolenia: 1. Bezpieczeństwo aplikacji JEE a bezpieczeństwo aplikacji webowych - wstęp I. Bezpieczeństwo z punktu widzenia standardu JEE (uwierzytelnienie, autoryzacja, integralność danych, bezpieczeństwo przesyłania danych) II. Podstawowe pojęcia (credentials, principal, realm, sesja itp.) III. Omówienie dostępnych mechanizmów uwierzytelnienia w modułach webowych i. HTTP Basic Authentication: BASIC ii. Digest Authentication: DIGEST iii. HTTPS Client Authentication: CLIENT-CERT iv. Form-Based Authentication: FORM IV. Bezpieczeństwo przesyłania danych (transport security) i. 2 dostępne poziomy: Confidential oraz Integral V. Autoryzacja: i. Deklaratywna: wykorzystanie dostępnych adnotacji (np. @RolesAllowed, @PermitAll, @DeclareRoles, @RunAs, @DenyAll, @ServletSecurity) ii. Programistyczna: wykorzystanie metod (getremoteuser(),

isuserinrole(), getuserprincipal(), getauthtype(), login(), logout(), getscheme()) VI. Omówienie specyfiki ochrony modułów EJB i. Uwierzytelnienie oraz Autoryzacja w obszarze beanów sesyjnych oraz encji ii. Deskryptory wdrożenia (EJB Deployment Descriptors) i zależność od wybranego serwera aplikacyjnego 2. Przegląd dostępnych technik/rozwiązań umożliwiających zaprogramowanie mechanizmów bezpieczeństwa w aplikacji JEE: I. Bezpieczeństwo oparte o mechanizmy serwera aplikacyjnego II. Omijanie serwera aplikacyjnego przy implementacji mechanizmów bezpieczeństwa III. JAAS IV. Spring Security V. Apache Shiro VI. PicketBox 3. Spring Security - omówienie kluczowych koncepcji i ich wzajemnych zależności I. SecurityContextHolder, SecurityContext II. Authentication, AuthenticationEntryPoint, UserDetailsService, UserDetails, Principal, Credentials, GrantedAuthority III. Dostępne na "dzień dobry" implementacje UserDetailsService np. InMemoryDaoImpl, JdbcDaoImpl IV. AuthenticationManager, UsernamePasswordAuthenticationToken, ProviderManager V. AuthenticationProviders wraz z dostępnymi implementacjami np. DaoAuthenticationProvider, LdapAuthenticationProvider, CasAuthenticationProvider VI. Password Encoders (hash, salt) VII. AOP a mechanizmy autoryzacji VIII. AccessDecisionManager, Secure Objects, AccessDecisionVoter (np. RoleVoter), RunAsManager, AfterInvocationManager, AbstractSecurityInterceptor IX. Filtry w procesie zapewnienia bezpieczeństwa np. DelegatingFilterProxy, FilterChainProxy, BasicAuthenticationFilter, UsernamePasswordAuthenticationFilter, RememberMeAuthenticationFilter, FormLoginFilter, ExceptionTranslationFilter, ConcurrentSessionFilter, SecurityContextPersistenceFilter i. Omijanie łańcucha filtrów (filters = "none") ii. Wpływ kolejności w jakiej filtry zostały zadeklarowane na proces uwierzytelnienia oraz autoryzacji iii. Własne filtry X. Konfiguracja z wykorzystaniem przestrzeni nazw i. Korzyści z konfiguracji deklaratywnej ii. Omówienie elementów przestrzeni nazw które wpływają na konfigurację (Web/HTTP, Authentication Manager, Authentication Providers, UserDetailsService, AccessDecisionManager,

BusinessObject) iii. Atrybut auto-config, form-login, logout XI. Model wyjątków w Spring Security 3 i. AuthenticationException i dostępne podklasy np. BadCredentialsException, UsernameNotFoundException ii. AccountStatusException jako podklasa AuthenticationException ale również jako jedna z ważniejszych klas wspierających obsługę nieważnych kont użytkowników. (Podklasy np. AccountExpiredException, LockedException, DisabledException czy CredentialsExpiredException) iii. AccessDeniedException wraz z podklasą AuthorizationServiceException 4. Uwierzytelnienie w praktyce I. Implementacja prostego mechanizmu uwierzytelnienia z wykorzystaniem mechanizmów konfiguracyjnych przestrzeni nazw (namespace configuration) II. Implementacja prostego mechanizmu uwierzytelnienia w trybie in-memory z wykorzystaniem dostępnych w Spring Security 3 mechanizmów ( np. InMemoryDaoImpl) III. Standardowy, predefiniowany model danych reprezentujący konta użytkowników i ich role IV. Implementacja prostego mechanizmu uwierzytelnienia w trybie jdbc z wykorzystaniem dostępnych w Spring Security 3 mechanizmów (np. JdbcDaoImpl) oraz predefiniowanego modelu danych V. Uwierzytelnienie w trybie Remember-me 5. Autoryzacja w praktyce I. Autoryzacja z wykorzystaniem RoleVoter oraz AuthenticationVoter II. Ochrona wywołań metod biznesowych III. Wykorzystanie wyrażeń (expressions) w kontroli dostępu (np. hasrole, principal, isauthenticated, isfullyauthenticated ) IV. Adnotacje @PreAuthorize, @PreFilter, @PostAuthorize oraz @PostFilter 6. Spring Security zagadnienia zaawansowane I. Testowanie poza kontenerem jak przyspieszyć proces testowania implementowanych rozwiązań? II. Implementacja własnego modelu danych oraz logiki, które będą wspierać niestandardowe (czyt. nie mające predefiniowanej implementacji w Spring Security) wymagania w zakresie uwierzytelnienia oraz autoryzacji użytkowników III. Wykorzystanie ACL (Access Control List) w praktyce IV. Wykorzystanie SSL V. Zarządzanie sesjami użytkowników VI. Kontrola zawartości stron webowych poprzez dostępną bibliotekę znaczników (tagi: authorize, authentication, accesscontrollist) 7. O czym jeszcze warto wiedzieć (teoretyczny zarys) I. LDAP Authentication II. JAAS Provider III. CAS Authentication

Powered by TCPDF (www.tcpdf.org) IV. X.509 Authentication V. Wsparcie OpenID VI. Projekty rozszerzające możliwości Spring Security i. Moduł Spring Crypto i jego wsparcie dla szyfrowania (symetrycznego), generowania kluczy czy kodowania haseł ii. Projekt Spring Security Extension i jego wsparcie dla SSO, integracji z Kerberos-em oraz SAML2 iii. Projekt OAuth for Spring Security i jego wsparcie dla OAuth 8. Podsumowanie