5.9 Użycie systemu zabezpieczeń w aplikacji

5.9.1 Logowanie użytkownika

 

Standardowo, logowanie użytkowników dostępne jest za pośrednictwem okna panelu kontrolnego. Projektant aplikacji może jednak dodać mechanizmy logowania bezpośrednio do diagramów synoptycznych. Pierwszy z tych mechanizmów to obiekt klasy Pole autoryzacji, zapewniający pełną obsługę logowania bezpośrednio na diagramie. Alternatywą jest użycie akcji operatorskiej Login, która wyświetla okienko logowania użytkownika. Uzupełnieniem jest akcja Logout, służąca do wylogowania użytkownika oraz akcja ChangePassword otwierająca okienko zmiany hasła.

Na diagramie można wyświetlić również informacje dotyczące aktualnego stanu systemu uprawnień. Pozwalają na to predefiniowane zmienne procesowe:

·         CurrentUser - identyfikator aktualnie zalogowanego użytkownika;

·         CurrentUserName  - nazwa aktualnie zalogowanego użytkownika;

·         UserRoles - identyfikatory wszystkich ról pełnionych przez aktualnie zalogowanego użytkownika;

·         UserRemainingTime - czas pozostały do automatycznego wylogowania użytkownika;

·         UserInactivityTime - czas, który upłynął od ostatniej aktywności użytkownika.

·         SecurityVersion - numer wersji parametryzacji systemu zabezpieczeń. Numer systemu zabezpieczeń jest inkrementowany przy każdym zapisie zmodyfikowanych ustawień - nie dotyczy to tylko zapisów ograniczonych do zmiany haseł.

·  IntegrityVersion - numer wersji aplikacji. Związany jest z kontrolą integralności aplikacji i pozwala oznaczyć wersję "zatwierdzoną”. Numer aplikacji jest zapisywany w logu komunikatów przy każdym starcie. Numer jest inkrementowany przy każdym wywołaniu funkcji przeliczania sum kontrolnych w panelu Integralność.

 


5.9.2 Weryfikacja uprawnień

 

W zakresie kontroli standardowych uprawnień działanie programu jest całkowicie automatyczne. Możliwe jest jednak rozszerzenie możliwości aplikacji o własne funkcje. Pozwalają na to akcja operatorska ConfirmRole i funkcja HasRole.

Akcja ConfirmRole pozwala na dodatkową autoryzację  użytkownika poza systemem standardowego logowania. Może być używana w schemacie działania, w którym wykonanie jakiejś operacji wymaga autoryzacji w chwili jej wykonania, lub w przypadku, gdy potrzebne jest dodatkowe potwierdzenie przez użytkownika innego niż zalogowany.

Funkcja HasRole pozwala na uzależnienie wyglądu lub działania obiektów na diagramie w zależności od tego, czy użytkownik pełni podaną w wywołaniu rolę.  Możliwe jest też sprawdzanie posiadania konkretnych uprawnień przy pomocy funkcji HasPrivilege. Dotyczy to zarówno uprawnień systemowych i aplikacyjnych, ale z reguły stosowane jest dla aplikacyjnych.

Przykłady zastosowań znajdują się w podręczniku Techniki budowy diagramów (Asix.Evo - Techniki budowy diagramów),  w rozdziale Kontrola uprawnień.

 


5.9.3  Zmiany w parametrach uprawnień w trybie wykonania aplikacji

 

Typowo system uprawnień jest konfigurowany w trakcie projektowania aplikacji, podczas pracy w trybie edycyjnym. Możliwe jest jednak pełne zarządzanie uprawnieniami (definiowanie użytkowników i ról, zmiana uprawnień i haseł) podczas pracy w trybie wykonania. Pozwala na to akcja SecurityManager, która otwiera poniższe okno.

Rys. Okno parametryzowania uprawnień w trybie wykonania aplikacji.

 

 

Należy pamiętać o tym, że zmiany wykonane na jednym stanowisku są natychmiast widoczne na innych stanowiskach tylko wtedy, gdy system uprawnień pracuje w trybie centralnym. W trybie standardowym zmiany będą widoczne dopiero po skopiowaniu lub zsynchronizowaniu pliku uprawnień.

 


5.9.4 Przeglądanie logu zdarzeń logowania

 

W trybie standardowym zdarzenia logowania użytkowników rejestrowane są wyłącznie w zwykłym logu komunikatów. Dotyczą one tylko aktualnego stanowiska. W trybie centralnym tworzony jest osobny log zdarzeń dotyczących systemu uprawnień. Rejestrowane są w nim zdarzenia ze wszystkich stanowisk.

Okno przeglądania logu zdarzeń systemu uprawnień można otworzyć przy pomocy akcji operatorskiej SecurityBrowser($Messages).