Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

Generowanie certyfikatu x.509 pem opisane niżej "Tworzenie keys tore 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

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

...

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 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:
    - 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ć id  "value" i typ tekstowy - w parametrze wejściowym wtyczka SSO ustawi wartość username z systemu PlusWorkflow użytkownika który został zwrócony przez SSO (czyli wartość zwrócona przez SSO po przetworzeniu przez interceptory jeżeli zostały skonfigurowane)
       Parametr wyjściowy powinien mieć id "value" i typ tekstowy - w parametrze wyjściowym źródło danych powinno zwracać wartość do porównania
    - VALUE_FROM_DATA_SOURCE_WITH_SSO_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ć id  "value" i typ tekstowy - w parametrze wejściowym wtyczka SSO ustawi identyfikator użytkownika zwrócony przez SSO.
       Parametr wyjściowy powinien mieć id "value" i typ tekstowy - w parametrze wyjściowym źródło danych powinno zwracać wartość do porównania

manualLogOutRedirect - parametr określa gdzie ma zostać przekierowany użytkownik po kliknięciu w przycisk wyloguj

automaticLogOutRedirect -  parametr określa gdzie ma zostać przekierowany użytkownik po wygaśnięciu sesji

authenticationFailedRedirect -  parametr określa gdzie ma zostać przekierowany użytkownik po błędnym logowaniu

       Parametry do przekierowania składają się z pól:

          - redirectType - rodzaj przekierowania. Parametr obowiązkowy. Dostępne są dwie opcje:

    • REDIRECT_TO_URL - przekierowuje na adres URL podany w parametrze "value". Url powinien zawierać tylko sam endpoint.
    • REDIRECT_TO_PAGE_WITH_HTML - wyświetla w okienku wartość podaną w parametrze "value". W parametrze można zamieścić sam tekst lub cały html do wyświetlenia na stronie. 
    - value - wartość dla typu przekierowania. Jest to domyślna wartość dla wszystkich języków, których nie skonfigurujemy w parametrze localizedValue. Parametr jest opcjonalny jeżeli skonfigurujemy wszystkie interesujące nas języki w parametrze localizedValue
  • - localizedValue - parametr opcjonalny. Możemy skonfigurować tutaj wartości dla typu przekierowania dla poszczególnych języków. Jeżeli nie podamy wartości dla języka, który będzie używany w systemie to wartość zostanie pobrana z parametru "value". Parametry podajemy jako obiekt, który jako klucz posiada język. Np
  •  "pl" : "Witaj", "en" : "Hello!"


Przykładowa konfiguracja POST AUTH HANDLERS

Code Block
{
	"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>",
			"de": "Auf Wiedersehen"
		}
	},
	"automaticLogOutRedirect": {
		"redirectType": "REDIRECT_TO_URL",
		"value": "/Login.do"
	},
	"authenticationFailedRedirect": {
		"redirectType": "REDIRECT_TO_URL",
		"value": "/LoginManual.do"
	}
}



Uwaga! Każda modyfikacja konfiguracji wymaga restartu wtyczki.

...

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.