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
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
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=?
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