Nazwa wtyczki | Data utworzenia | Data ostatniej aktualizacji | Link do instalki | Krótki opis | Dział utrzymujący | Dokumentacja dla klienta | Typ licencji | Typ wtyczki | Id wtyczki |
---|---|---|---|---|---|---|---|---|---|
Plus SSO Authenticator | 2023-02-23 | 2025-01-27 | Link | Wtyczka umożliwiająca logowanie do systemu za pomocą SSO | Dev Core | Płatna | Wtyczka | com.suncode.plugin-plus-sso-authenticator |
Instalacja
Aby umożliwić logowanie za pomocą SSO, należy zainstalować i skonfigurować wtyczkę Plus SSO Authenticator.
Po prawidłowej konfiguracji, podczas wejścia na adres systemu PlusWorkflow użytkownik zostanie automatycznie przelogowany na stronę logowania do SSO. Aby zalogować się ręcznie do systemu należy wejść na adres systemu z dopiskiem /LoginManual.do. Będzie tam również opcja zalogowania się przez SSO za pomcą przycisku.
Przykład: https://www.test.plusworkflow.pl/PlusWorkflow/LoginManual.do
Konfiguracja SSO - jest to konfiguracja systemu SSO dla rozwiązania Azure-EntraId.
SSO przeważnie konfiguruje nam klient po przesłaniu do niego danych opisanych niżej (entity id, reply url, SLO, certyfikaty) jako SAML ServiceProvider metadata descriptor xml (generowanie pliku opisane niżej).
Dodajemy aplikację za pomocą Microsoft Entra ID -> Aplikacje dla przedsiębiorstw -> Nowa aplikacja
Następnie wybieramy Utwórz własną aplikację
Po utworzeniu przechodzimy do danej aplikacji i wybieramy metodę logowania jednokrotnego SAML
Do skonfigurowania serwera SSO musimy klientowi przekazać dane:
- Entity ID - powinno być w formacie URL. Jest to losowo wygenerowany przez nas identyfikator identyfikujący nas na serwerze SSO. Musi zaczynać się od litery.
Przykład: https://www.test.plusworkflow.pl/PlusWorkflow/api/authentication/sso/id/testId-if7-fi6-xh-c0
Wymagane jest połączenie HTTPS - Reply URL (Assertion Consumer Service URL)
- adres, na którym będziemy oczekiwać odpowiedzi z SSO. Jest to adres do systemu PlusWorkflow na endpoint /api/authentication/sso/login?provider=sso
Przykład: https://www.test.plusworkflow.pl/PlusWorkflow/api/authentication/sso/login?provider=sso
Wymagane jest połączenie HTTPS - SLO (Single Logout Service URL)
- adres, na którym będziemy oczekiwać sygnału o wylogowaniu w SSO lub odpowiedzi na żądanie wylogowania w SSO. Jest to adres do systemu PlusWorkflow na endpoint /api/authentication/sso/logout?provider=sso.
Przykład: https://www.test.plusworkflow.pl/PlusWorkflow/api/authentication/sso/logout?provider=sso
Generowanie SAML ServiceProvider metadata descriptor'a w xml:
Generator metadanych dla klienta z parametrami niezbędnymi do skonfigurowania SSO po stronie IdP znajduje się w pliku "Suncode SAML SP metadata generator.html".
Suncode SAML SP metadata generator.html
Generowanie certyfikatu x.509 pem opisane niżej "Tworzenie keys store jks".
Konfiguracja połączenia do SSO z PlusWorkflow
Po zainstalowaniu wtyczki w Administracja -> Konfiguracja systemu -> Konfiguracja wtyczek pojawi się opcja Plus SSO Authenticator.
W pierwszej zakładce SAML REQUEST (JSON) możemy:
- ustawić checkbox active, który oznacza czy logowanie przez SSO ma być aktywne. Jeżeli nie, to na formularzu logowania nie pojawi się przycisk logowania przez SSO.
- wybrać rozwiązanie autoryzacji SSO Solution
- podać nazwę źródła danych na podstawie którego ma być utworzony użytkownik w systemie jeżeli jeszcze nie istnieje Create user from datasource id (więcej szczegółów tutaj)
- disableSingleLogOut - pozwala wyłączyć wylogowanie przez SSO
- skonfigurować parametry wysyłane w requescie SAMLa
Version: domyślnie "2.0"
Issue instant date format: domyślnie "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
Issuer: adres plusWorkflow/authentication/sso/id/{entity id podany do konfiguracji serwera sso}. Np: https://www.test.plusworkflow.pl/PlusWorkflow/api/authentication/sso/id/testId-if7-fi6-xh-c0
Assertion Consumer Service URL: adres plusWorkflow/authentication/sso/login?provider=sso. Np: https://www.test.plusworkflow.pl/PlusWorkflow/api/authentication/sso/login?provider=sso
ForceAuthn: domyślnie puste
IsPassive: domyślnie puste
- skonfigurować dane do Key Store z kluczami do podpisywania wiadomości. Hasła do Key Store i klucza prywatnego zostaną zaszyfrowane i nie będzie można ich odszyfrować. Będą miały postać "enc:zaszyfrowane_hasło". Hasło do zaszyfrowania nie może zaczynać się od ciągu znaków "enc:".
Tworzenie key store jsk:
keytool -genkeypair -alias suncode -keyalg RSA -keysize 2048 -keystore mystore.jks -validity 365
CN=suncode,OU=IT,O=SUNCODE,L=POZNAN,ST=WP,C=PL |
Wyciągnięcie cer z jsk do wgrania w SSO: keytool -exportcert -keystore mystore.jks -alias suncode -file mycertificate.cer
Opcjonalnie utworzenie pem do wgrania w SSO w Base64: openssl x509 -inform der -in mycertificate.cer -out publiccert.pem
W drugiej zakładc ENTITY DESCRIPTOR (XML) zapisujemy entity descriptor z certyfikatem(należy go pobrać i wkleić), który otrzymaliśmy po skonfigurowaniu SSO Azure.
W Azure certyfikat znajduje się w następującym miejscu:
Uwaga! Każda modyfikacja konfiguracji wymaga restartu wtyczki.
Identyfikacja użytkowników
Zwracany identyfikator z SSO porównywany jest z polem userid w systemie PlusWorkflow.
Jeżeli SSO zwraca adres e-mail użytkownika, można użyć interceptora uwierzytelniania, aby umożliwić logowanie do systemu za pomocą adresu e-mail Interceptory uwierzytelniania.
Add Comment