Kontrola dostępu do funkcjonalności

Jednym z kluczowych elementów bezpieczeństwa systemu YetiForce jest kontrola dostępu do funkcjonalności , narzędzi oraz akcji na poziomie użytkownika i administratora. Domyślnie dostęp do każdego elementu systemu [moduł, narzędzie, przycisk, akcja] jest sprawdzany.

1. Logika dostępu do funkcjonalności zaszyta w YetiForce

1.1. Podział funkcjonalności

System YetiForce ma wiele narzędzi z których może korzystać użytkownik, najważniejszą funkcjonalnością [a zarazem pierwszą, która jest ukazywana] to moduł [np. kontrahenci, faktury, oferty, dashboard]. W każdym module znajduje się wiele elementów wspólnych tj.:

  • Akcje
  • Narzędzia
  • Widoki
  • Filtry
  • Pola / Słowniki
  • Widżety

Do każdego elementu systemu, można zdefiniować uprawnienia np. czy pole jest widoczne dla użytkownika lub czy może używać filtru. Dodatkowo w systemie mamy dwa rodzaje słowników, jeden z nich zawiera możliwość określania uprawnień do wartości w ten sposób możemy kontrolować proces zmiany na rekordzie uwzględniając jaka rola może zmieniać jakie statusy [np. dział techniczny może zmieniać zgłoszenia i nadać status "do weryfikacji" a dział kontroli może zmienić na status "zweryfikowano do zamknięcia". Jest to jeden ze sposobów realizacji zasady “separation of duties”.

1.2. Dostęp do modułów, akcji, pól

Dostęp do modułu, akcji, pola określa się na poziomie profilu, zo oznacza, że użytkownik przypisany do określonej roli, dziedziczy profile, które w roli zostały ustawiony. Przypisanie profilu do użytkownika nie następuje bezpośrednio lecz pośrednio poprzez przypisanie do roli. 

Na profilu można określać ogólne uprawnienia na warstwie modułu tj.:

  • Podgląd
  • Tworzenie
  • Edycja
  • Usuwanie

Jeżeli użytkownik otrzyma uprawnienia do przeglądania/edytowania w module, to oznacza. że rekordy do których ma iuprawnienia będzie mógł przeglądać i edytować ale nie będzie mógł ich usuwac czy też tworzyć nowe. Profile nie nadają uprawnień do danych/rekordów lecz tylko do funkcjonalności, narzędzi i akcji. 

Dodatkowo w każdy module możemy przydzielać uprawnienia do pól określająć trzy stany [ukryte, tylko odczyt, zapis] co pozwala na zmniejsza uprawnień do pola i operacji na tym. Niektóre pola tj. systemowe lub domyślnie wymagane nie mogą mieć zmienianych uprawnień ponieważ zostały one narzucone przez producenta [można to zmienić programistycznie]. 

Oprócz uprawnień do pól, możemy przydzielać uprawnienia do narzędzi [masowa edycji, wysyłka maili, wysyłka sms-ów, import/eksport itd.] co oznacza, że mamy pełną kontrolę nad tym z jakich narzędzi może korzystać użytkownik końcowy. 

1.3. Dostęp do filtrów

Dostęp do filtrów jest określany bezpośrednio na filtrze [każdy użytkownik, który tworzy filtr jest jego właścicielm, dodatkowo administrator może oznaczyć filtr jako publiczny oraz przydzielić poszczególnym osobom dostęp do filtru. Uprawnienia do tworzenia i edycji filtrów wynikają bezpośrednio z uprawnień zdefiniowanych na profilu.

1.4. Dostęp do widoków

Dostęp do widoków jest częściowo automatyczny a częściowo konfigurowalny, dla widoków globalnych [np. lista, lista z podglądem, podsumowanie, szczegóły itd.] uprawnienia definiuje się globalnie dla całej organizacji, natomiast dla pozostałych widoków [np. tworzenie rekordu, edycja rekordu, szybkie tworzenie] uprawnienia wynikają bezpośrednio z profilu. 

1.5. Dostęp do widżetów

Dostęp do widżetów jest określany na trzech warstwach [pulpit, moduł, rekord] ale tylko na dwóch pierwszysch warstwach możemy przypisywać kto jakie widżety widzi i w jaki sposób może nimi zarządzać, natomiast widżety na trzeciej warstwie są automatycznie kontrolowane przez system i dostępne dla każdego która ma dostęp do rekordu [przy czym system nie pokazuje widżetów dla modułów do których nie mamy uprawnień]. 

Bardzo ważną cechą widżetów jest to, że nie pokazują one nic, do czego użytkownik nie ma uprawnień. Jeżeli nawet utworzymy widżet, który pokazuje wszystkie dane w module, to inny użytkownik który ma ten sam widżet dostępny, będzie w nim widział tylko te dane do których ma rzeczywiście dostęp. 

2. Mechanizmy zabezpieczające

2.1. Zmiana uprawnień

Zmiana uprawnień do dowolnych elementów systemu jest realizowana w czasie rzeczywistym i nie wymaga od użytkownika przelogowania się, aby zmiany zadziałały.

2.2. Inspektor uprawnień 

Mechanizm inspektora uprawnień oprócz weryfikacji uprawnień do danych, prezentuje również uprawnienia do przeglądania, edycji, tworzenia i usuwania co oznacza, że można w szybki sposób sprawdzić z poziomu użytkownika jakie uprawnienia ma przydzielone.

2.3. Centralny system nadzorujący uprawnienia

YetiForce posiada jeden centralny system, który weryfikuje uprawnienia do każdego elementu. Nie ma znaczenia czy importujesz dane, komunikujesz się przez API czy też próbujesz zmodyfikować coś za pomocą przycisku [np. zmiana statusu], każdorazowo system sprawdza czy na pewno użytkownik ma wszystkie konieczne uprawnienia do wykonania operacji.