Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 48 Next »

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

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.

1 ) 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

- 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

 

2) W drugiej zakładce 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:


3) W trzeciej zakładce POST AUTH HANDLERS możemy skonfigurować co ma dziać się po autentykacji SSO

createUserFromDataSourceId - nazwa źródła danych na podstawie którego ma być utworzony użytkownik w systemie jeżeli jeszcze nie istnieje (więcej szczegółów tutaj)

defaultGroupNames - domyślne grupy do których zostanie przypisany nowo utworzony użytkownik przez źródło danych skonfigurowane w parametrze createUserFromDataSourceId (gurpy można podawać rozdzielająć je średnikiem).

extraAuthVerifiers - dodatkowe autentykacje użytkownika jeżeli SSO zwróci odpowiedź i użytkownik został rozpoznany w PWFL. Jest to tablica weryfikatorów gdzie każdy z nich ma do skonfigurowania parametry:

  • firstVerifierValueProvider - dostawca pierwszej wartości do porównania
  • secondVerifierValueProvider - dostawca drugiej wartości do porównania
  • ignoreCase - parametr określający czy wartości porównywać z uwzględnieniem wielkości liter


    Dostawcy wartości do porównania składają się z parametrów type i param. Dostępne wartości parametru type:
  • type:
    - STATIC_VALUE - zwrócona zostanie wartość wpisana w parametrze "param"
    - AUTHENTICATION_RESULT_ATTRIBUTE - nazwa parametru podana jako "param" jest szukana w odpowiedzi SSO (SamlResponse) w sekcji AttributeStatement i wartość dla tego parametru zostaje zwrócona
    - VALUE_FROM_DATA_SOURCE_WITH_PWFL_USERNAME_AS_INPUT_VALUE - zwrócona zostanie wartość ze źródła danych o identyfikatorze takim jaki zostanie ustawiony w parametrze "param". 
       Parametr wejściowy powinien mieć 


Przykładowa konfiguracja POST AUTH HANDLERS

{
	"createUserFromDataSourceId": "data_source_id",
	"defaultGroupNames": "Administrators,Test",
	"extraAuthVerifiers": [
		{
			"firstVerifierValueProvider": {
				"type": "AUTHENTICATION_RESULT_ATTRIBUTE",
				"param": "param_name"
			},
			"secondVerifierValueProvider": {
				"type": "VALUE_FROM_DATA_SOURCE_WITH_PWFL_USERNAME_AS_INPUT_VALUE",
				"param": "data_source_id"
			},
			"ignoreCase": true
		}
	],
	"manualLogOutRedirect": {
		"redirectType": "REDIRECT_TO_PAGE_WITH_HTML",
		"value": "<p style=\"font-weight: bold; font-size: 13px;\">Do widzenia</p>",
		"localizedValue": {
			"en": "<p style=\"font-weight: bold; font-size: 13px;\">Bye</p>"
		}
	},
	"automaticLogOutRedirect": {
		"redirectType": "REDIRECT_TO_URL",
		"value": "/Login.do"
	},
	"authenticationFailedRedirect": {
		"redirectType": "REDIRECT_TO_URL",
		"value": "/LoginManual.do"
	}
}



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 LoginByEmailInterceptor, aby umożliwić logowanie do systemu za pomocą adresu e-mail Interceptory uwierzytelniania.
Jeżeli SSO zwraca inną wartość niż userId w PlusWorkflow, można użyć interceptora uwierzytelniania LoginByDatasourceInterceptor, aby umożliwić logowanie do systemu mapując wartość zwróconą przez SSO z wartością zwracaną przez źródło danych Interceptory uwierzytelniania.

 

  • No labels