Pojedyncze logowanie z EuroSSO – API login i JWT token

Pojedyncze logowanie z EuroSSO – API login i JWT token

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 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:

[vibal@el 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:

EuroAP

oraz równocześnie będzie hostował interfejs EuroSSO na porcie 8080:

EuroSSO

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.

Autorzy

Artykuły na blogu są pisane przez osoby z zespołu EuroLinux. 80% treści zawdzięczamy naszym developerom, pozostałą część przygotowuje dział sprzedaży lub marketingu. Dokładamy starań, żeby treści były jak najlepsze merytorycznie i językowo, ale nie jesteśmy nieomylni. Jeśli zauważysz coś wartego poprawienia lub wyjaśnienia, będziemy wdzięczni za wiadomość.