SlideShare a Scribd company logo
1 of 24
Download to read offline
www.proskar.pl
JAAS
Java Authentication and Authorization Service
Warsztaty PROSKAR
www.proskar.pl
Plan prezentacji
1. Przedstawienie podstawowych pojęć.
2. Omówienie architektury JAAS.
3. Przedstawienie konfiguracji JAAS pod
serwerem WildFly.
4. Wykorzystanie JAAS w aplikacji.
www.proskar.pl 2 / 24
Trochę teorii na początek
www.proskar.pl 3 / 24
Pojęcia podstawowe
• Identyfikacja - określenie tożsamości podmiotu,
w przypadku aplikacji webowych zwykle jest to
login/adres e-mail
• Uwierzytelnienie(authentication) - weryfikacja
tożsamości zadeklarowanej w procesie
identyfikacji, w aplikacjach webowych zwykle
poprzez hasło dostępowe do konta
• Autoryzacja (authorization) – potwierdzenie
faktu posiadania dostępu do żądanego zasobu
www.proskar.pl 4 / 24
Czym jest JAAS?
• Usługa dostarczająca funkcjonalności
identyfikacji, autentykacji i autoryzacji dla
aplikacji implementowanych w Java.
• Nie ogranicza się ona jedynie do aplikacji
webowych.
• Podstawowy mechanizm logowania (z użyciem
serwleta j_security_check).
• Umożliwia rozdział zadań podczas
uwierzytelniania użytkownika.
www.proskar.pl 5 / 24
Czym jest JAAS?
• Pozwala na komunikację z użyciem SSL.
• Daje duże możliwości konfigurowania systemu
ról i uprawnień.
• Stanowi bazę dla takich frameworków
bezpieczeństwa jak Spring Security i Apache
Shiro.
• Kontekst logowania trzymany jest na serwerze
aplikacyjnym.
www.proskar.pl 6 / 24
Architektura JAAS
www.proskar.pl 7 / 24
Konfiguracja JAAS pod serwerem
www.proskar.pl 8 / 24
Pierwsze kroki
• Konfigurację należy zacząć od zalogowania się do
konsoli administracyjnej i wybranie zakładki
Configuration w menu Security Domains.
www.proskar.pl 9 / 24
Pierwsze kroki
• Kolejnym krokiem jest dodanie nowej domeny.
W tym celu należy kliknąć przycisk Add
i wypełnić formularz.
www.proskar.pl 10 / 24
Konfiguracji ciąg dalszy
• Po utworzeniu nowej domeny klikamy przycisk
View.
www.proskar.pl 11 / 24
Konfiguracji ciąg dalszy
• Następnie w widoku dodajemy za pomocą
przycisku Add moduł logowania z użyciem
bazy danych.
www.proskar.pl 12 / 24
Konfiguracji ciąg dalszy
• Po dodaniu modułu wybieramy go poprzez
zaznaczenie wiersza a następnie przechodzimy
do zakładki Module Options.
www.proskar.pl 13 / 24
Konfiguracji ciąg dalszy
• Po kliknięciu przycisku Add mamy możliwość
dodania opcji modułu.
• Na następnych slajdach zostanie
przedstawiony spis opcji jakie należy dodać.
www.proskar.pl 14 / 24
Niezbędne opcje
www.proskar.pl 15 / 24
Opcja Przykładowa wartość
password-stacking useFirstPass
dsJndiName java:jboss/datasources/PlaygroundDS
principalsQuery SELECT password FROM Users WHERE
username=? and activated=true and
locked=false
rolesQuery SELECT DISTINCT r.name, 'Roles' FROM
Users u, User_UserGroup ug,
UserGroup_JaasRole gr, JaasRole r WHERE
u.id=ug.user_id AND
ug.usergroup_id=gr.usergroup_id AND
gr.jaasrole_id=r.id AND u.username=?
Niezbędne opcje
www.proskar.pl 16 / 24
Opcja Przykładowa wartość
hashAlgorithm SHA-256
hashEncoding Base64
hashCharset UTF-8
unauthenticatedIdentity guest
Finalizowanie konfiguracji
• Po przeprowadzeniu przedstawionych
wcześniej kroków należy:
– Wyłączyć serwer,
– Otworzyć plik konfiguracyjny serwera (np.
standalone.xml)
– Dodać odwołanie do utworzonej domeny.
– Uruchomić ponownie serwer.
www.proskar.pl 17 / 24
Przykład powiązania z domeną
www.proskar.pl 18 / 24
Konfiguracja została ukończona
www.proskar.pl 19 / 24
Użycie JAAS w aplikacji
www.proskar.pl 20 / 24
Uwierzytelnianie z JAAS
• Użycie JAAS zwykle przebiega w następujący
sposób:
– Utworzenie instancji klasy LoginContext.
– Przekazanie obiektu CallbackHandler do wcześniej
utworzonej instancji klasy LoginContext.
– Wywołanie metody login() z klasy LoginContext.
– Wykonanie wybranych akcji przy użyciu
zwróconego obiektu klasy Subject.
www.proskar.pl 21 / 24
Przykład
www.proskar.pl 22 / 24
Omówienie przykładu
• Podczas inicjalizacji obiekt klasy LoginContext odnajduje
w pliku konfiguracyjnym JAAS pozycję „MyExample”.
• Na jej podstawie określa, które moduły mają zostać
załadowane.
• Podczas logowania obiekt klasy LoginContext wywołuje
metodę login() dla każdego modułu.
• Każda metoda login() wykonuje uwierzytelnianie lub
wywołuje CallbackHandler
• CallbackHandler używa jednego lub więcej callback’ów
w celu interakcji z użytkownikiem.
• Obiekt klasy Subject jest wypełniany danymi
uwierzytelniania.
www.proskar.pl 23 / 24
Dziękuję za uwagę
www.proskar.pl 24 / 24

More Related Content

Similar to Java authentication and authorization service

4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski
4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski
4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech DworakowskiPROIDEA
 
Logowanie przez facebook i gmail w java
Logowanie przez facebook i gmail w javaLogowanie przez facebook i gmail w java
Logowanie przez facebook i gmail w javaPROSKAR
 
Uwierzytelnianie dwuetapowe (2FA) w Drupalu [PL]
Uwierzytelnianie dwuetapowe (2FA) w Drupalu [PL]Uwierzytelnianie dwuetapowe (2FA) w Drupalu [PL]
Uwierzytelnianie dwuetapowe (2FA) w Drupalu [PL]Droptica
 
NK API - Przykłady
NK API - PrzykładyNK API - Przykłady
NK API - Przykładynasza-klasa
 
Java Web Start – jak żyć z tą dziwną technologią
Java Web Start – jak żyć z tą dziwną technologiąJava Web Start – jak żyć z tą dziwną technologią
Java Web Start – jak żyć z tą dziwną technologiąMarcinStachniuk
 
Czego oczekiwać od modułów w Javie 9
Czego oczekiwać od modułów w Javie 9Czego oczekiwać od modułów w Javie 9
Czego oczekiwać od modułów w Javie 9Piotr Kubowicz
 
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16Krzysztof Synak
 
Podstawy testowania oprogramowania INCO 2023.pptx
Podstawy testowania oprogramowania INCO 2023.pptxPodstawy testowania oprogramowania INCO 2023.pptx
Podstawy testowania oprogramowania INCO 2023.pptxKatarzyna Javaheri-Szpak
 
(Nie)bezpieczenstwo aplikacji mobilnych
(Nie)bezpieczenstwo aplikacji mobilnych(Nie)bezpieczenstwo aplikacji mobilnych
(Nie)bezpieczenstwo aplikacji mobilnychSecuRing
 
12. Zabezpieczanie dostępu do danych
12. Zabezpieczanie dostępu do danych12. Zabezpieczanie dostępu do danych
12. Zabezpieczanie dostępu do danychkalaxq
 
11. Tworzenie interfejsu użytkownika
11. Tworzenie interfejsu użytkownika11. Tworzenie interfejsu użytkownika
11. Tworzenie interfejsu użytkownikakalaxq
 
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbaćBartosz Ratajczyk
 
AADays 2015 - Jak to zrobic w JavaScript
AADays 2015 - Jak to zrobic w JavaScriptAADays 2015 - Jak to zrobic w JavaScript
AADays 2015 - Jak to zrobic w JavaScriptJacek Okrojek
 
Microsoft Azure - Mobility & Security - wybrane usługi bezpieczeństwa
Microsoft Azure - Mobility & Security - wybrane usługi bezpieczeństwaMicrosoft Azure - Mobility & Security - wybrane usługi bezpieczeństwa
Microsoft Azure - Mobility & Security - wybrane usługi bezpieczeństwaMaciej Sobianek
 
Testy akceptacyjne w pigułce.
Testy akceptacyjne w pigułce.   Testy akceptacyjne w pigułce.
Testy akceptacyjne w pigułce. Future Processing
 

Similar to Java authentication and authorization service (20)

4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski
4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski
4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski
 
Logowanie przez facebook i gmail w java
Logowanie przez facebook i gmail w javaLogowanie przez facebook i gmail w java
Logowanie przez facebook i gmail w java
 
Uwierzytelnianie dwuetapowe (2FA) w Drupalu [PL]
Uwierzytelnianie dwuetapowe (2FA) w Drupalu [PL]Uwierzytelnianie dwuetapowe (2FA) w Drupalu [PL]
Uwierzytelnianie dwuetapowe (2FA) w Drupalu [PL]
 
NK API - Przykłady
NK API - PrzykładyNK API - Przykłady
NK API - Przykłady
 
Java Web Start – jak żyć z tą dziwną technologią
Java Web Start – jak żyć z tą dziwną technologiąJava Web Start – jak żyć z tą dziwną technologią
Java Web Start – jak żyć z tą dziwną technologią
 
JavaScript, Moduły
JavaScript, ModułyJavaScript, Moduły
JavaScript, Moduły
 
Czego oczekiwać od modułów w Javie 9
Czego oczekiwać od modułów w Javie 9Czego oczekiwać od modułów w Javie 9
Czego oczekiwać od modułów w Javie 9
 
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
 
Podstawy testowania oprogramowania INCO 2023.pptx
Podstawy testowania oprogramowania INCO 2023.pptxPodstawy testowania oprogramowania INCO 2023.pptx
Podstawy testowania oprogramowania INCO 2023.pptx
 
Testowanie na 101 sposobów
Testowanie na 101 sposobówTestowanie na 101 sposobów
Testowanie na 101 sposobów
 
(Nie)bezpieczenstwo aplikacji mobilnych
(Nie)bezpieczenstwo aplikacji mobilnych(Nie)bezpieczenstwo aplikacji mobilnych
(Nie)bezpieczenstwo aplikacji mobilnych
 
Mobile services
Mobile servicesMobile services
Mobile services
 
12. Zabezpieczanie dostępu do danych
12. Zabezpieczanie dostępu do danych12. Zabezpieczanie dostępu do danych
12. Zabezpieczanie dostępu do danych
 
11. Tworzenie interfejsu użytkownika
11. Tworzenie interfejsu użytkownika11. Tworzenie interfejsu użytkownika
11. Tworzenie interfejsu użytkownika
 
JavaServer Faces. Wydanie II
JavaServer Faces. Wydanie IIJavaServer Faces. Wydanie II
JavaServer Faces. Wydanie II
 
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
 
AADays 2015 - Jak to zrobic w JavaScript
AADays 2015 - Jak to zrobic w JavaScriptAADays 2015 - Jak to zrobic w JavaScript
AADays 2015 - Jak to zrobic w JavaScript
 
Microsoft Azure - Mobility & Security - wybrane usługi bezpieczeństwa
Microsoft Azure - Mobility & Security - wybrane usługi bezpieczeństwaMicrosoft Azure - Mobility & Security - wybrane usługi bezpieczeństwa
Microsoft Azure - Mobility & Security - wybrane usługi bezpieczeństwa
 
Testy akceptacyjne w pigułce.
Testy akceptacyjne w pigułce.   Testy akceptacyjne w pigułce.
Testy akceptacyjne w pigułce.
 
Praktyczny kurs Java
Praktyczny kurs JavaPraktyczny kurs Java
Praktyczny kurs Java
 

More from PROSKAR

Walidacja po stronie klienta za pomocą jquery oraz angular js
Walidacja po stronie klienta za pomocą jquery oraz angular jsWalidacja po stronie klienta za pomocą jquery oraz angular js
Walidacja po stronie klienta za pomocą jquery oraz angular jsPROSKAR
 
Tworzenie klienta web service za pomoca cxf
Tworzenie klienta web service za pomoca cxfTworzenie klienta web service za pomoca cxf
Tworzenie klienta web service za pomoca cxfPROSKAR
 
Testy integracyjne
Testy integracyjneTesty integracyjne
Testy integracyjnePROSKAR
 
Testy funkcjonalne
Testy funkcjonalneTesty funkcjonalne
Testy funkcjonalnePROSKAR
 
Standard tworzenia aplikacji JSF
Standard tworzenia aplikacji JSFStandard tworzenia aplikacji JSF
Standard tworzenia aplikacji JSFPROSKAR
 
Środowisko android studio - podstawy
Środowisko android studio - podstawyŚrodowisko android studio - podstawy
Środowisko android studio - podstawyPROSKAR
 
Selenium
SeleniumSelenium
SeleniumPROSKAR
 
Primefaces - walidacja po stronie klienta
Primefaces - walidacja po stronie klientaPrimefaces - walidacja po stronie klienta
Primefaces - walidacja po stronie klientaPROSKAR
 
JMS java messaging service
JMS java messaging serviceJMS java messaging service
JMS java messaging servicePROSKAR
 
Blokada wykonywania wielu akcji z jednego widoku
Blokada wykonywania wielu akcji z jednego widokuBlokada wykonywania wielu akcji z jednego widoku
Blokada wykonywania wielu akcji z jednego widokuPROSKAR
 

More from PROSKAR (10)

Walidacja po stronie klienta za pomocą jquery oraz angular js
Walidacja po stronie klienta za pomocą jquery oraz angular jsWalidacja po stronie klienta za pomocą jquery oraz angular js
Walidacja po stronie klienta za pomocą jquery oraz angular js
 
Tworzenie klienta web service za pomoca cxf
Tworzenie klienta web service za pomoca cxfTworzenie klienta web service za pomoca cxf
Tworzenie klienta web service za pomoca cxf
 
Testy integracyjne
Testy integracyjneTesty integracyjne
Testy integracyjne
 
Testy funkcjonalne
Testy funkcjonalneTesty funkcjonalne
Testy funkcjonalne
 
Standard tworzenia aplikacji JSF
Standard tworzenia aplikacji JSFStandard tworzenia aplikacji JSF
Standard tworzenia aplikacji JSF
 
Środowisko android studio - podstawy
Środowisko android studio - podstawyŚrodowisko android studio - podstawy
Środowisko android studio - podstawy
 
Selenium
SeleniumSelenium
Selenium
 
Primefaces - walidacja po stronie klienta
Primefaces - walidacja po stronie klientaPrimefaces - walidacja po stronie klienta
Primefaces - walidacja po stronie klienta
 
JMS java messaging service
JMS java messaging serviceJMS java messaging service
JMS java messaging service
 
Blokada wykonywania wielu akcji z jednego widoku
Blokada wykonywania wielu akcji z jednego widokuBlokada wykonywania wielu akcji z jednego widoku
Blokada wykonywania wielu akcji z jednego widoku
 

Java authentication and authorization service

  • 1. www.proskar.pl JAAS Java Authentication and Authorization Service Warsztaty PROSKAR www.proskar.pl
  • 2. Plan prezentacji 1. Przedstawienie podstawowych pojęć. 2. Omówienie architektury JAAS. 3. Przedstawienie konfiguracji JAAS pod serwerem WildFly. 4. Wykorzystanie JAAS w aplikacji. www.proskar.pl 2 / 24
  • 3. Trochę teorii na początek www.proskar.pl 3 / 24
  • 4. Pojęcia podstawowe • Identyfikacja - określenie tożsamości podmiotu, w przypadku aplikacji webowych zwykle jest to login/adres e-mail • Uwierzytelnienie(authentication) - weryfikacja tożsamości zadeklarowanej w procesie identyfikacji, w aplikacjach webowych zwykle poprzez hasło dostępowe do konta • Autoryzacja (authorization) – potwierdzenie faktu posiadania dostępu do żądanego zasobu www.proskar.pl 4 / 24
  • 5. Czym jest JAAS? • Usługa dostarczająca funkcjonalności identyfikacji, autentykacji i autoryzacji dla aplikacji implementowanych w Java. • Nie ogranicza się ona jedynie do aplikacji webowych. • Podstawowy mechanizm logowania (z użyciem serwleta j_security_check). • Umożliwia rozdział zadań podczas uwierzytelniania użytkownika. www.proskar.pl 5 / 24
  • 6. Czym jest JAAS? • Pozwala na komunikację z użyciem SSL. • Daje duże możliwości konfigurowania systemu ról i uprawnień. • Stanowi bazę dla takich frameworków bezpieczeństwa jak Spring Security i Apache Shiro. • Kontekst logowania trzymany jest na serwerze aplikacyjnym. www.proskar.pl 6 / 24
  • 8. Konfiguracja JAAS pod serwerem www.proskar.pl 8 / 24
  • 9. Pierwsze kroki • Konfigurację należy zacząć od zalogowania się do konsoli administracyjnej i wybranie zakładki Configuration w menu Security Domains. www.proskar.pl 9 / 24
  • 10. Pierwsze kroki • Kolejnym krokiem jest dodanie nowej domeny. W tym celu należy kliknąć przycisk Add i wypełnić formularz. www.proskar.pl 10 / 24
  • 11. Konfiguracji ciąg dalszy • Po utworzeniu nowej domeny klikamy przycisk View. www.proskar.pl 11 / 24
  • 12. Konfiguracji ciąg dalszy • Następnie w widoku dodajemy za pomocą przycisku Add moduł logowania z użyciem bazy danych. www.proskar.pl 12 / 24
  • 13. Konfiguracji ciąg dalszy • Po dodaniu modułu wybieramy go poprzez zaznaczenie wiersza a następnie przechodzimy do zakładki Module Options. www.proskar.pl 13 / 24
  • 14. Konfiguracji ciąg dalszy • Po kliknięciu przycisku Add mamy możliwość dodania opcji modułu. • Na następnych slajdach zostanie przedstawiony spis opcji jakie należy dodać. www.proskar.pl 14 / 24
  • 15. Niezbędne opcje www.proskar.pl 15 / 24 Opcja Przykładowa wartość password-stacking useFirstPass dsJndiName java:jboss/datasources/PlaygroundDS principalsQuery SELECT password FROM Users WHERE username=? and activated=true and locked=false rolesQuery SELECT DISTINCT r.name, 'Roles' FROM Users u, User_UserGroup ug, UserGroup_JaasRole gr, JaasRole r WHERE u.id=ug.user_id AND ug.usergroup_id=gr.usergroup_id AND gr.jaasrole_id=r.id AND u.username=?
  • 16. Niezbędne opcje www.proskar.pl 16 / 24 Opcja Przykładowa wartość hashAlgorithm SHA-256 hashEncoding Base64 hashCharset UTF-8 unauthenticatedIdentity guest
  • 17. Finalizowanie konfiguracji • Po przeprowadzeniu przedstawionych wcześniej kroków należy: – Wyłączyć serwer, – Otworzyć plik konfiguracyjny serwera (np. standalone.xml) – Dodać odwołanie do utworzonej domeny. – Uruchomić ponownie serwer. www.proskar.pl 17 / 24
  • 18. Przykład powiązania z domeną www.proskar.pl 18 / 24
  • 20. Użycie JAAS w aplikacji www.proskar.pl 20 / 24
  • 21. Uwierzytelnianie z JAAS • Użycie JAAS zwykle przebiega w następujący sposób: – Utworzenie instancji klasy LoginContext. – Przekazanie obiektu CallbackHandler do wcześniej utworzonej instancji klasy LoginContext. – Wywołanie metody login() z klasy LoginContext. – Wykonanie wybranych akcji przy użyciu zwróconego obiektu klasy Subject. www.proskar.pl 21 / 24
  • 23. Omówienie przykładu • Podczas inicjalizacji obiekt klasy LoginContext odnajduje w pliku konfiguracyjnym JAAS pozycję „MyExample”. • Na jej podstawie określa, które moduły mają zostać załadowane. • Podczas logowania obiekt klasy LoginContext wywołuje metodę login() dla każdego modułu. • Każda metoda login() wykonuje uwierzytelnianie lub wywołuje CallbackHandler • CallbackHandler używa jednego lub więcej callback’ów w celu interakcji z użytkownikiem. • Obiekt klasy Subject jest wypełniany danymi uwierzytelniania. www.proskar.pl 23 / 24