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-07 | 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 (Azure)
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 przekazać dane:
- Entity ID - powinno być w formacie URL. Jest to 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 - 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 - adres, na którym będziemy oczekiwać sygnału o wylogowaniu w SSO lub odpowiedzi na żądanie wylogowania w SSO
Przykład: https://www.test.plusworkflow.pl/PlusWorkflow/api/authentication/sso/logout?provider=sso
W systemie PlusWorkflow konfigurujemy:
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)
- skonfigurować parametry wysyłane w requescie SAMLa
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
- 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
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.