EuroSSO to narzędzie do zarządzania uwierzytelnianiem i autoryzacją użytkowników w aplikacjach internetowych. Oprogramowanie udostępniamy w pakiecie z produktem EuroAP, ale może być również używane jako samodzielny serwer lub rozszerzenie innych aplikacji.
EuroSSO umożliwia zarządzanie dostępem do aplikacji internetowych za pomocą ról i reguł dostępu. Serwer EuroSSO można skonfigurować tak, aby po uwierzytelnieniu mógł przeprowadzać wiele różnych działań np. wysyłać powiadomienia e-mail lub przeprowadzać kontrole weryfikacyjne. EuroSSO oparte jest na oprogramowaniu Red Hat® Single Sign-On, a to z kolei na projekcie Keycloak™. Zostało napisane w języku Java i jest dostępne jako aplikacja kliencka dla przeglądarek internetowych oraz jako biblioteka dla różnych języków programowania m.in. Java, JavaScript i Python.
API i JWT – JSON Web Token
Jednym z głównych celów działania EuroSSO jest ułatwienie procesu uwierzytelniania i autoryzacji użytkowników w aplikacjach internetowych. Wszystko dzięki zapewnieniu interfejsu API, który umożliwia integrację z innymi aplikacjami. W tym artykule skupimy się na dwóch głównych interfejsach API EuroSSO: API logowania i JWT.
API logowania EuroSSO umożliwia aplikacjom internetowym integrację z serwerem EuroSSO w celu uwierzytelniania użytkowników. Może być używane do uwierzytelniania za pomocą nazwy użytkownika i hasła, a także za pomocą innych metod uwierzytelniania, takich jak certyfikaty klienta lub tokeny SAML.
JWT (JSON Web Token) to rodzaj tokena uwierzytelniającego, który może być wykorzystywany w aplikacjach internetowych. Token ten składa się z trzech części:
- nagłówka
- treści
- sygnatury.
Nagłówek zawiera informacje o sposobie szyfrowania treści tokena. Treść zawiera dane uwierzytelniające, takie jak nazwa użytkownika lub identyfikator użytkownika. Sygnatura służy do weryfikacji integralności tokena.
EuroSSO umożliwia tworzenie i obsługę tokenów JWT za pomocą swojego interfejsu API.
Tokeny JWT mogą być używane na wiele sposobów – spełniają role:
- uwierzytelniania użytkowników w aplikacjach internetowych – aplikacja może sprawdzać integralność i autentyczność tokenu przy każdym żądaniu, aby upewnić się, że użytkownik jest upoważniony do wykonania określonych czynności;
- realizacji Single Sign-On (SSO) pomiędzy różnymi aplikacjami – jeżeli użytkownik został uwierzytelniony wcześniej w jednej aplikacji, może uzyskać dostęp do innych aplikacji bez konieczności ponownego logowania się;
- integracji EuroSSO z innymi systemami, takimi jak usługi chmurowe lub aplikacje mobilne – mogą być wysyłane do innych systemów jako dowód uwierzytelnienia użytkownika i umożliwić mu dostęp do określonych zasobów lub funkcji;
- przechowywania dodatkowych danych uwierzytelniających, takich jak rola użytkownika lub uprawnienia – te dane mogą być następnie wykorzystywane przez aplikacje do określenia akcji, które użytkownik jest upoważniony wykonać.
Instalacja pakietu EuroSSO plus EuroAP
Teraz przeprowadzimy szybką, testową instalację EuroSSO, by zaprezentować, jak łatwy i wygodny jest ten proces z wykorzystaniem pakietu przygotowanego przez firmę EuroLinux.
W pierwszej kolejności instalujemy wymaganą wersję OpenJDK:
sudo dnf install -y java-11-openjdk
Następnie z portalu klienta (na stronie customerportal.euro-linux.com) pobieramy archiwum zip produktu EuroAP with EuroSSO i przenosimy je np. do katalogu domowego:
mv EuroSSO* ~/
Następnie należy je rozpakować poleceniem:
unzip EuroSSO-7.6.1.zip
Wchodzimy do katalogu binariów:
cd EuroSSO-7.6/bin/
Teraz możemy utworzyć użytkownika administrującego serwerem EuroAP uruchamiając polecenie add-user.sh
, tworząc swoją nazwę użytkownika administrującego i odpowiadając na kilka prostych pytań skryptu. Poniżej przykładowa sesja tworzenia nowego użytkownika:
[[email protected] bin]$ ./add-user.sh
What type of user do you wish to add?
a) Management User (mgmt-users.properties)
b) Application User (application-users.properties)
(a): a
Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : euroapadmin
Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
- The password should be different from the username
- The password should not be one of the following restricted values {root, admin, administrator}
- The password should contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
Password :
Re-enter Password :
What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[ ]:
About to add user 'euroapadmin' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'euroapadmin' to file '/home/vibal/EuroSSO-7.6/standalone/configuration/mgmt-users.properties'
Added user 'euroapadmin' to file '/home/vibal/EuroSSO-7.6/domain/configuration/mgmt-users.properties'
Added user 'euroapadmin' with groups to file '/home/vibal/EuroSSO-7.6/standalone/configuration/mgmt-groups.properties'
Added user 'euroapadmin' with groups to file '/home/vibal/EuroSSO-7.6/domain/configuration/mgmt-groups.properties'
Is this new user going to be used for one AS process to connect to another AS process?
e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server Jakarta Enterprise Beans calls.
yes/no? no
Następnie poleceniem standalone.sh
należy uruchomić samodzielny serwer testowy, który rozpocznie hostowanie interfejsu EuroAP na hoście lokalnym, na porcie 9990:
oraz równocześnie będzie hostował interfejs EuroSSO na porcie 8080:
Podsumowanie
Projekt Keycloak™, z którego źródeł czerpie produkt EuroSSO, jest szeroko stosowany w wielu różnych branżach, w tym w bankowości, ubezpieczeniach, handlu detalicznym i opiece zdrowotnej. Jest również popularny wśród developerów, ponieważ jest łatwy w użyciu i oferuje szeroki zakres funkcji zarządzania uwierzytelnianiem. EuroSSO jest szczególnie przydatny w firmach, które chcą zarządzać dostępem do swoich aplikacji internetowych dla różnych grup użytkowników, takich jak pracownicy, partnerzy biznesowi czy klienci końcowi.