Role i uprawnienia w aplikacji firmowej: plan

Ostatnia aktualizacja: 2026-10-26

Role i uprawnienia najlepiej projektować od rzeczywistej pracy użytkownika: najpierw ustalić zadania, dane i operacje, a dopiero potem zbudować role oraz reguły dostępu.

  • Rozdziel role od pojedynczych uprawnień i nazw stanowisk.
  • Nadawaj tylko dostęp niezbędny do wykonania zadania.
  • Sprawdź, czy rola właściwie ogranicza dostęp do konkretnych danych.
  • Egzekwuj i testuj uprawnienia po stronie serwera, a po wdrożeniu regularnie je przeglądaj.

Model ról nie powinien powstawać przez kopiowanie struktury organizacyjnej ani zaznaczanie kolejnych opcji w panelu administracyjnym. Punktem wyjścia są czynności wykonywane w aplikacji, zasoby, których dotyczą, oraz warunki ograniczające dostęp. Ma to szczególne znaczenie wtedy, gdy osoby o podobnych obowiązkach mogą pracować na danych różnych zespołów, projektów lub organizacji.

Plan powinien obejmować nie tylko nadanie praw, lecz także sposób ich egzekwowania, testowania, odbierania i przeglądania. Zakres rozwiązania zależy od procesów firmy, rodzaju danych i funkcji aplikacji, dlatego przedstawiona metoda nie jest gotowym zestawem ról do skopiowania.

Definicja: Rola grupuje uprawnienia potrzebne do określonego zakresu pracy, natomiast uprawnienie określa, jaką operację użytkownik może wykonać na danym zasobie.

Zacznij od zadań, zasobów i operacji

Najpierw należy opisać zadania użytkowników i potrzebne operacje, następnie przypisać je do zasobów, a dopiero na tej podstawie zdefiniować role.[2][3] Dzięki temu nazwa stanowiska nie zastępuje analizy tego, co dana osoba rzeczywiście robi w aplikacji.

Rola, uprawnienie, zasób i operacja

W modelu kontroli dostępu opartej na rolach, czyli RBAC, użytkownik otrzymuje uprawnienia przez przypisane role. Rola grupuje prawa potrzebne do określonego zakresu pracy.[1][5][6] Zasobem może być funkcja, dokument, zgłoszenie albo inny obiekt, a operacją — na przykład odczyt lub modyfikacja.

Jako punkt wyjścia można rozbić dostęp na odczyt, tworzenie, modyfikację i usuwanie, a następnie dodać ograniczenia dotyczące zakresu danych.[1] Jest to przykład spotykany w konkretnym systemie, a nie obowiązkowy zestaw operacji dla każdej aplikacji. W zależności od procesu potrzebne mogą być również inne czynności przewidziane w projekcie, takie jak zatwierdzanie lub eksport.

Jak przygotować macierz uprawnień

Macierz uprawnień pozwala połączyć zasób, operację, warunek dostępu i rolę w jednym dokumencie roboczym. Nie zastępuje mechanizmu zabezpieczeń, ale pomaga zauważyć prawa, których nie da się uzasadnić zadaniem użytkownika.

  1. Opisz powtarzalne zadania wykonywane w aplikacji.
  2. Wskaż zasoby potrzebne do każdego zadania.
  3. Rozbij dostęp na osobne operacje.
  4. Dodaj warunek określający zakres danych, jeśli nie każdy użytkownik powinien widzieć wszystkie obiekty.
  5. Połącz powtarzające się zestawy praw w role.
  6. Zapisz uzasadnienie roli i wyjątków, które nie mieszczą się w standardowym zestawie.
Zasób Operacja Warunek lub zakres danych Rola przykładowa Uzasadnienie
Dokument Odczyt Dokumenty przypisane do zespołu Pracownik zespołu Obsługa bieżących spraw
Dokument Utworzenie Własny zespół Pracownik zespołu Rejestracja nowej sprawy
Dokument Modyfikacja Obiekty przypisane użytkownikowi Opiekun sprawy Aktualizacja obsługiwanej sprawy
Dokument Zatwierdzenie Dokumenty wskazanego zespołu Osoba zatwierdzająca Realizacja etapu akceptacji
Użytkownik Zarządzanie dostępem Zakres administracyjny Administrator dostępu Obsługa kont i przypisań ról

To jakościowy przykład struktury macierzy, a nie gotowy model organizacyjny. Nazwy zasobów, ról, warunków i operacji trzeba dopasować do procesów obsługiwanych przez konkretną aplikację.

Nadaj tylko dostęp niezbędny do wykonania pracy

Zakres roli powinien obejmować minimum praw potrzebnych do wykonania zadań, bez automatycznego dodawania administracji, usuwania lub eksportu danych.[3][4][7] Każde uprawnienie powinno mieć uzasadnienie w konkretnym obowiązku.

Drugą zasadą jest domyślna odmowa: jeśli żądanie nie pasuje do jawnie dozwolonej reguły, brak dopasowania powinien oznaczać odmowę, a nie przypadkowe przyznanie dostępu.[3][4]

Jak rozpoznać nadmiarowe uprawnienia

Dla każdej operacji można zadać praktyczne pytanie: czy bez tego prawa użytkownik nadal wykona swoje zadanie? Jeśli tak, uprawnienie może być zbędne w podstawowej roli. Osobnej oceny wymagają zwłaszcza usuwanie, eksport, zatwierdzanie, konfiguracja oraz zarządzanie użytkownikami.

Minimalny dostęp nie polega na mechanicznym odbieraniu praw. Wymaga znajomości procesu, ponieważ zbyt wąska rola może uniemożliwić wykonanie pracy. Dlatego operacje najlepiej oznaczyć jako niezbędne, warunkowo potrzebne albo niedozwolone dla danej roli.

Wyjątki i dostęp czasowy

Nie każdą sytuację da się ująć w standardowej roli. Wyjątek nie powinien jednak niepostrzeżenie rozszerzać zwykłego zestawu praw. Należy wskazać jego zakres, uzasadnienie i właściciela, a następnie objąć go takim samym przeglądem jak pozostałe uprawnienia.

Kiedy role nie wystarczą do ochrony danych

RBAC wystarcza, gdy rola dobrze opisuje zarówno dostępne funkcje, jak i potrzebny zakres pracy. Jeśli decyzja zależy również od konkretnego klienta, projektu, zespołu, właściciela lub organizacji, model trzeba uzupełnić o reguły uwzględniające kontekst zasobu albo relację użytkownika z obiektem.[3][5][7]

Dostęp do funkcji a dostęp do konkretnego obiektu

Prawo do edycji dokumentów nie musi oznaczać prawa do edycji każdego dokumentu w systemie. Rola może zezwalać na operację, natomiast dodatkowy warunek ogranicza ją do obiektów przypisanych do odpowiedniego zespołu, projektu albo użytkownika.

Czy decyzja zależy wyłącznie od zakresu pracy?
Jeżeli tak, rola może wystarczyć do opisania dostępu.
Czy użytkownicy o tej samej roli powinni widzieć różne rekordy?
Jeżeli tak, potrzebny jest warunek dotyczący zasobu, organizacji, projektu, zespołu lub właściciela.
Czy dostęp wynika z powiązania użytkownika z obiektem?
Jeżeli tak, reguła powinna uwzględniać tę relację, na przykład przypisanie sprawy.

RBAC, reguły atrybutowe i relacyjne

Podejście Co opisuje Kiedy może być potrzebne Ograniczenie
RBAC Zakres pracy przypisany do roli Gdy powtarzalne role wystarczają do określenia dostępu Nie zawsze rozstrzyga dostęp do konkretnego obiektu
Reguły atrybutowe Cechy użytkownika, zasobu lub kontekstu Gdy dostęp zależy na przykład od organizacji, zespołu lub statusu Wymagają jasno określonych danych wejściowych
Reguły relacyjne Powiązanie użytkownika z obiektem Gdy znaczenie ma na przykład przypisanie sprawy lub własność obiektu Zwiększają złożoność modelu

Bardziej złożone podejście nie jest automatycznie lepsze. Reguły atrybutowe lub relacyjne mają uzasadnienie wtedy, gdy prosty model ról nie opisuje rzeczywistego zakresu danych.

Egzekwuj dostęp po stronie serwera i wydzielaj role wrażliwe

Widoczność przycisku może poprawiać sposób korzystania z interfejsu, ale nie stanowi właściwej decyzji autoryzacyjnej. Dostęp musi być egzekwowany po stronie serwera dla konkretnego użytkownika, działania i zasobu.[3][4]

Dlaczego interfejs nie jest kontrolą dostępu

Gdy rozwiązanie obejmuje aplikacje internetowe, projekt uprawnień powinien uwzględniać nie tylko widoczne elementy interfejsu, lecz także odpowiadające im operacje wykonywane po stronie serwera. Ukrycie funkcji nie powinno być traktowane jako jej zabezpieczenie.

Reguła dostępu powinna odpowiadać na trzy pytania: kto wykonuje operację, jaka jest to operacja i którego zasobu dotyczy. Jeśli którykolwiek wymagany warunek nie jest spełniony, działanie powinno zostać odrzucone zgodnie z zasadą domyślnej odmowy.

Operacje uprzywilejowane i rozdzielenie obowiązków

Dla operacji wrażliwych można rozważyć rozdzielenie tworzenia, zatwierdzania, wypłaty, usuwania lub zarządzania użytkownikami między różne role.[8][3] Jest to rekomendacja projektowa, a właściwy podział zależy od procesu, ryzyka i wymagań organizacji.

W praktyce oznacza to możliwość oddzielenia zarządzania kontami od codziennej pracy na danych albo wydzielenia prawa zatwierdzania od tworzenia obiektu. Nie każda firma potrzebuje jednak osobnej roli dla każdej czynności administracyjnej. Podział powinien odpowiadać rzeczywistemu znaczeniu operacji.

Przetestuj role na dozwolonych i zabronionych scenariuszach

Przed wdrożeniem należy sprawdzić zarówno działania dozwolone, jak i zabronione. Test pozytywny potwierdza, że użytkownik wykona swoją pracę, natomiast test negatywny weryfikuje, czy system odrzuca niedozwoloną operację lub próbę dostępu do niewłaściwego obiektu.[3][4][8]

  • Użytkownik z właściwą rolą może wykonać dozwoloną operację.
  • Ten sam użytkownik nie może wykonać operacji spoza zakresu roli.
  • Użytkownik nie uzyskuje dostępu do obiektu należącego do innego zespołu, projektu lub organizacji.
  • Konto bez wymaganej roli otrzymuje odmowę dostępu.
  • Bezpośrednie żądanie do funkcji serwerowej jest oceniane niezależnie od widoczności elementu interfejsu.
  • Połączenie kilku ról nie przyznaje niezamierzonego dostępu.
  • Wyjątki i konto uprzywilejowane działają wyłącznie w przewidzianym zakresie.

Zakres testów zależy od liczby ról, zasobów, wyjątków i warunków dostępu. Szczególnej uwagi wymagają sytuacje, w których użytkownik ma poprawne prawo do operacji, ale próbuje wykonać ją na cudzym obiekcie.

Utrzymuj aktualność ról i pozostawiaj ślad audytowy

Model uprawnień wymaga cyklu życia obejmującego nadanie, zmianę i odebranie dostępu. Przed wdrożeniem należy przetestować dozwolone i zabronione scenariusze, a po wdrożeniu zaplanować przeglądy ról, użytkowników i wyjątków.[3][4][8]

Zdarzenia uruchamiające przegląd

Przegląd powinien następować między innymi wtedy, gdy zmieniają się obowiązki użytkownika, jego zespół, przypisany projekt lub zakres odpowiedzialności, a także po zakończeniu współpracy. Osobno trzeba oceniać wyjątki i konta uprzywilejowane, ponieważ nie zawsze są widoczne w podstawowej definicji roli.

Nie ma jednej częstotliwości odpowiedniej dla każdej organizacji. Zakres i rytm kontroli należy dopasować do procesu, ryzyka i potrzeb audytowych. Istotne jest natomiast wyznaczenie odpowiedzialności za decyzję, czy dane prawo nadal jest potrzebne.

Co rejestrować w związku z uprawnieniami

Zgodnie z potrzebami audytowymi systemu należy rejestrować istotne nadania, odebrania i wykorzystania uprawnień oraz odmowy dostępu.[3][4] Taki rejestr pomaga odtworzyć decyzje dostępowe, ale nie zastępuje zasad nadawania praw ani okresowego przeglądu.

Najczęstsze pytania

Czy jedna osoba może mieć kilka ról?

Tak, jeśli wykonuje różne zakresy pracy. Trzeba wtedy sprawdzić łączny efekt przypisanych uprawnień oraz ewentualne konflikty między rolami.

Czy ukrycie przycisku wystarcza, aby zablokować funkcję?

Nie. Decyzję o dostępie należy egzekwować po stronie serwera dla konkretnej operacji i zasobu.[3][4]

Kiedy potrzebne są reguły poza rolami?

Gdy dostęp zależy od konkretnego obiektu lub kontekstu, na przykład organizacji, projektu, zespołu, właściciela albo przypisania sprawy.[3]

Jak często przeglądać uprawnienia?

Nie ma uniwersalnego terminu. Przeglądy powinny wynikać z ryzyka i następować również po zmianie obowiązków, zespołu, projektu lub zakończeniu współpracy.

Źródła

  1. Zarządzanie użytkownikami – System S46, Kancelaria Prezesa Rady Ministrów / gov.pl.
  2. Jak nadawać uprawnienia do aplikacji pracownikom? Praktyczne zasady, Własna Firma.
  3. Authorization Cheat Sheet, OWASP.
  4. Enforce Access Controls – OWASP Developer Guide, OWASP.
  5. Role-based access control (RBAC) – Glossary, National Institute of Standards and Technology.
  6. Role Based Access Control – FAQs, National Institute of Standards and Technology.
  7. Authorization best practices, Microsoft Learn.
  8. Cybersecurity Framework, National Institute of Standards and Technology.

+Artykuł Sponsorowany+

ℹ️ ARTYKUŁ SPONSOROWANY
Dodaj komentarz