Usługi AI dla firm Realizacje Blog FAQ Rozpocznij projekt

RBAC vs ABAC — jak zaprojektować role

System uprawnień jest projektowany raz, na początku, na podstawie niepełnej wiedzy o tym, jak firma naprawdę pracuje. Potem przez lata dokłada się do niego wyjątki. Po trzech latach nikt nie potrafi odpowiedzieć na pytanie, kto ma dostęp do danych finansowych — i to jest moment, w którym koszt złej decyzji projektowej staje się widoczny.

Krótka odpowiedź: zacznij od RBAC — uprawnień przypisanych do ról. Pokrywa potrzeby zdecydowanej większości aplikacji firmowych i jest zrozumiały dla osób, które będą nim zarządzać.

ABAC — uprawnienia wyliczane z atrybutów użytkownika, zasobu i kontekstu — wprowadzaj punktowo, tam gdzie reguła zależy od danych, na przykład „handlowiec widzi wyłącznie klientów ze swojego regionu". Model mieszany jest w praktyce najczęstszy i najlepszy.

Dwa modele w praktyce

Różnica sprowadza się do tego, skąd bierze się odpowiedź na pytanie o dostęp. W RBAC odpowiedź wynika z przypisania: użytkownik ma rolę, rola ma zestaw uprawnień. W ABAC odpowiedź jest wyliczana z reguły uwzględniającej cechy użytkownika, cechy zasobu i kontekst operacji.

AspektRBACABAC
Podstawa decyzjiPrzypisana rolaAtrybuty i reguły
Zrozumiałość dla administratoraWysokaNiska
ElastycznośćOgraniczonaBardzo duża
Koszt wdrożeniaNiskiWysoki
Audyt uprawnieńProsty — lista rólTrudny — trzeba wykonać reguły
Typowe zastosowanieWiększość aplikacji firmowychDostęp zależny od danych i kontekstu

Dlaczego RBAC wystarcza w większości przypadków

Firmy myślą o dostępie w kategoriach stanowisk, a nie reguł logicznych. Zdanie „księgowość widzi faktury, magazyn widzi wydania" jest naturalne dla osoby zarządzającej systemem i łatwe do zweryfikowania. Model odwzorowujący ten sposób myślenia jest przez to tańszy w utrzymaniu i mniej podatny na błędy konfiguracji.

Praktyczna zaleta ujawnia się przy audycie i przy zmianach kadrowych. Odpowiedź na pytanie, kto ma dostęp do danych płacowych, sprowadza się do wyświetlenia listy osób z odpowiednią rolą. W modelu opartym na regułach ta sama odpowiedź wymaga wykonania reguł dla każdego użytkownika i zasobu.

Jak zaprojektować role, żeby nie rozsypały się po roku

Najczęstszy błąd polega na tworzeniu roli dla każdego stanowiska w firmie. Po dwóch latach istnieje trzydzieści ról, z których połowa różni się jednym uprawnieniem, a nikt nie pamięta dlaczego. Skuteczniejsze podejście oddziela uprawnienia od ról.

Zasada, która oszczędza najwięcej pracy. Rozdziel dwa pytania: co użytkownik może robić (uprawnienie) oraz na których danych (zakres). Handlowiec i kierownik sprzedaży mogą mieć identyczne uprawnienia do czynności, różniąc się wyłącznie zakresem widocznych klientów. Połączenie tych wymiarów w jedną rolę prowadzi do wykładniczego przyrostu ich liczby.

Kiedy potrzebny jest ABAC

Model oparty na atrybutach staje się niezbędny, gdy dostęp zależy od danych, a nie od stanowiska. Kilka typowych sytuacji, w których czyste role przestają wystarczać.

W takich przypadkach nie trzeba przebudowywać całego systemu. Wystarczy zachować role jako podstawę i dołożyć warstwę reguł zawężających zakres widocznych danych.

Model mieszany — jak to wygląda w praktyce

Sprawdzone podejście dzieli decyzję na dwa etapy. Najpierw rola odpowiada na pytanie, czy użytkownik w ogóle może wykonać daną czynność. Następnie reguła zakresu zawęża zbiór rekordów, których to dotyczy.

Przykładowo: rola „handlowiec" daje uprawnienie do podglądu i edycji klientów. Reguła zakresu ogranicza widoczność do klientów przypisanych do tego handlowca lub do jego regionu. Kierownik ma tę samą rolę z szerszym zakresem, a zarząd — z zakresem pełnym. Liczba ról pozostaje mała, a elastyczność jest zachowana.

Ważne, żeby reguły zakresu były egzekwowane w jednym miejscu, na poziomie warstwy dostępu do danych. Powielanie warunku w każdym zapytaniu prowadzi do sytuacji, w której jedno miejsce zostaje pominięte — najczęściej jest to eksport danych albo raport.

Checklista wdrożenia

Najczęstsze błędy

Podsumowanie

Dla większości aplikacji firmowych właściwym punktem wyjścia jest RBAC z uprawnieniami elementarnymi zebranymi w niewielką liczbę ról. Ten model jest zrozumiały dla osób nim zarządzających i pozwala szybko odpowiedzieć na pytania audytowe.

Reguły oparte na atrybutach warto dokładać punktowo, tam gdzie dostęp zależy od danych — regionu, struktury organizacyjnej, statusu dokumentu czy kwoty. Kluczowe jest przy tym rozdzielenie dwóch wymiarów: co użytkownik może robić i na których danych. Ta jedna decyzja projektowa decyduje o tym, czy po trzech latach system uprawnień będzie nadal zrozumiały.

Najczęstsze pytania

W większości przypadków tak. Role odwzorowują sposób, w jaki firma myśli o dostępie — w kategoriach stanowisk — więc są zrozumiałe dla osób zarządzających systemem i łatwe do zweryfikowania podczas audytu. Reguły oparte na atrybutach warto dokładać punktowo, tam gdzie dostęp zależy od danych.

Rozdzielić dwa wymiary: uprawnienia do czynności i zakres widocznych danych. Handlowiec i kierownik mogą mieć identyczne uprawnienia, różniąc się wyłącznie tym, których klientów widzą. Połączenie obu wymiarów w jedną rolę prowadzi do sytuacji, w której po dwóch latach istnieje trzydzieści ról różniących się drobiazgami.

Ponieważ każda nowa rola wymaga wtedy zmiany kodu i wdrożenia. Warunek powinien odwoływać się do uprawnienia elementarnego, na przykład „podgląd faktur", a przypisanie tego uprawnienia do ról powinno być konfiguracją. Dzięki temu utworzenie nowej roli jest czynnością administracyjną, a nie programistyczną.

Co najmniej raz na kwartał, a przy danych wrażliwych częściej. Niezależnie od przeglądów potrzebna jest procedura odbierania dostępów w dniu odejścia pracownika lub zmiany stanowiska. Bez niej po dwóch latach znaczna część aktywnych dostępów należy do osób, które ich już nie potrzebują.

W eksportach, raportach i interfejsie programistycznym. Widok listy w aplikacji zwykle ma poprawnie zaimplementowane zawężenie, natomiast funkcja eksportu do arkusza bywa pisana osobno i pomija ten warunek. Dlatego reguła zakresu powinna być egzekwowana w warstwie dostępu do danych, a nie powtarzana w każdym zapytaniu.

Convert Studio realizuje projekty z tego obszaru dla firm w całej Polsce. Zobacz: Aplikacje webowe → · Lokalizacje →

Bezpłatna wycena Twojego projektu

Opisz w kilku zdaniach, co chcesz zbudować — stronę, aplikację czy sklep. Odpowiadamy w ciągu 24 godzin roboczych konkretną propozycją zakresu i harmonogramu. Konsultacja i wycena są bezpłatne, bez zobowiązań.

Odpowiedź w 24 h roboczych. Dane wykorzystujemy wyłącznie do kontaktu w sprawie zapytania — polityka prywatności.