Ten dokument został przetłumaczony przez AI. W przypadku niedokładności, proszę odnieść się do wersji angielskiej
NocoBase, od projektu funkcjonalnego po implementację systemu, kładzie nacisk na bezpieczeństwo danych i aplikacji. Platforma ma wbudowane liczne funkcje bezpieczeństwa, takie jak uwierzytelnianie użytkowników, kontrola dostępu i szyfrowanie danych, a jednocześnie pozwala na elastyczną konfigurację polityk bezpieczeństwa zgodnie z rzeczywistymi potrzebami. Niezależnie od tego, czy chodzi o ochronę danych użytkownika, zarządzanie uprawnieniami dostępu, czy izolowanie środowisk deweloperskich i produkcyjnych, NocoBase dostarcza praktyczne narzędzia i rozwiązania. Ten przewodnik ma na celu dostarczenie wskazówek dotyczących bezpiecznego korzystania z NocoBase, pomagając użytkownikom chronić bezpieczeństwo danych, aplikacji i środowiska, a także zapewnić efektywne wykorzystanie funkcji systemu przy jednoczesnym zachowaniu bezpieczeństwa.
Uwierzytelnianie użytkownika służy do identyfikacji tożsamości użytkowników, zapobiegania nieautoryzowanemu dostępowi do systemu oraz zapewnienia, że tożsamość użytkownika nie jest nadużywana.
Domyślnie NocoBase używa JWT (JSON Web Token) do uwierzytelniania API po stronie serwera. Użytkownicy mogą ustawić klucz tokena za pomocą zmiennej środowiskowej systemu APP_KEY. Prosimy o odpowiednie zarządzanie kluczem tokena aplikacji, aby zapobiec jego wyciekowi. Należy pamiętać, że jeśli APP_KEY zostanie zmieniony, stare tokeny również stracą ważność.
NocoBase wspiera ustawienie następujących polityk bezpieczeństwa dla tokenów użytkownika:
| Element konfiguracji | Opis |
|---|---|
| Ważność sesji | Maksymalny czas ważności każdego logowania użytkownika. W okresie ważności sesji token będzie automatycznie odnawiany. Po upływie tego czasu użytkownik będzie musiał zalogować się ponownie. |
| Ważność tokena | Okres ważności każdego wydanego tokena API. Po wygaśnięciu tokena, jeśli sesja jest nadal ważna i nie przekroczono limitu czasu na odświeżenie, serwer automatycznie wyda nowy token, aby utrzymać sesję użytkownika. W przeciwnym razie użytkownik będzie musiał zalogować się ponownie. (Każdy token może być odświeżony tylko raz) |
| Limit czasu na odświeżenie tokena | Maksymalny czas, w którym można odświeżyć token po jego wygaśnięciu. |
Zazwyczaj zalecamy administratorom:
Domyślnie tokeny użytkownika są przechowywane w LocalStorage przeglądarki. Po zamknięciu i ponownym otwarciu strony przeglądarki, jeśli token jest nadal ważny, użytkownik nie musi się ponownie logować.
Jeśli chcą Państwo, aby użytkownicy musieli logować się za każdym razem, gdy wchodzą na stronę, można ustawić zmienną środowiskową API_CLIENT_STORAGE_TYPE=sessionStorage, aby zapisać token użytkownika w SessionStorage przeglądarki.
Wersja Professional i wyższe
NocoBase wspiera ustawianie zasad dotyczących haseł oraz polityki blokowania po próbach logowania dla wszystkich użytkowników, aby zwiększyć bezpieczeństwo aplikacji NocoBase z włączonym logowaniem hasłem. Można zapoznać się z dokumentacją Polityka haseł, aby zrozumieć każdy element konfiguracji.
| Element konfiguracji | Opis |
|---|---|
| Długość hasła | Minimalna wymagana długość hasła, maksymalna długość to 64. |
| Złożoność hasła | Ustawienie wymagań dotyczących złożoności hasła, czyli rodzajów znaków, które muszą być w nim zawarte. |
| Nie może zawierać nazwy użytkownika | Ustawienie, czy hasło może zawierać nazwę bieżącego użytkownika. |
| Pamiętaj historię haseł | Zapamiętuje liczbę ostatnio używanych haseł przez użytkownika. Użytkownik nie może ich ponownie użyć przy zmianie hasła. |
| Element konfiguracji | Opis |
|---|---|
| Okres ważności hasła | Okres ważności hasła użytkownika. Użytkownik musi zmienić hasło przed jego wygaśnięciem, aby okres ważności został ponownie obliczony. Jeśli hasło nie zostanie zmienione przed wygaśnięciem, logowanie starym hasłem będzie niemożliwe i będzie wymagało pomocy administratora w celu zresetowania. Jeśli skonfigurowano inne metody logowania, użytkownik może z nich skorzystać. |
| Kanał powiadomień o wygasaniu hasła | W ciągu 10 dni przed wygaśnięciem hasła użytkownika, przy każdym logowaniu wysyłane jest przypomnienie. |
| Element konfiguracji | Opis |
|---|---|
| Maksymalna liczba nieudanych prób logowania | Ustawia maksymalną liczbę prób logowania, jaką użytkownik może podjąć w określonym przedziale czasowym. |
| Przedział czasowy dla nieudanych prób logowania (s) | Ustawia przedział czasowy, w sekundach, do obliczania maksymalnej liczby nieudanych prób logowania użytkownika. |
| Czas blokady (s) | Ustawia czas, na jaki użytkownik zostanie zablokowany po przekroczeniu limitu nieudanych prób logowania (0 oznacza brak limitu). W okresie blokady użytkownik nie będzie mógł uzyskać dostępu do systemu za pomocą żadnej metody uwierzytelniania, w tym kluczy API. |
Zazwyczaj zalecamy:
root w NocoBase, aby uniknąć złośliwego wykorzystania.
Wersja Professional i wyższe, zawarte we wtyczce polityki haseł
Zarządzanie użytkownikami, którzy zostali zablokowani z powodu przekroczenia limitu nieudanych prób logowania. Można ich aktywnie odblokować lub dodać nietypowych użytkowników do listy zablokowanych. Po zablokowaniu użytkownik nie będzie mógł uzyskać dostępu do systemu za pomocą żadnej metody uwierzytelniania, w tym kluczy API.

NocoBase wspiera wywoływanie API systemowych za pomocą kluczy API. Użytkownicy mogą dodawać klucze API w konfiguracji wtyczki Klucze API.

Wtyczka komercyjna
NocoBase oferuje bogaty zestaw wtyczek do uwierzytelniania SSO, wspierających wiele popularnych protokołów, takich jak OIDC, SAML 2.0, LDAP i CAS. Jednocześnie NocoBase posiada kompletny zestaw interfejsów rozszerzeń metod uwierzytelniania, które umożliwiają szybki rozwój i integrację innych typów uwierzytelniania. Można łatwo połączyć istniejący IdP z NocoBase, aby centralnie zarządzać tożsamościami użytkowników w IdP i zwiększyć bezpieczeństwo.

Wersja Enterprise
Uwierzytelnianie dwuskładnikowe wymaga od użytkowników podania drugiego, ważnego dowodu tożsamości podczas logowania hasłem, na przykład poprzez wysłanie jednorazowego dynamicznego kodu weryfikacyjnego na zaufane urządzenie użytkownika. Ma to na celu weryfikację tożsamości użytkownika, zapewnienie, że nie jest ona nadużywana, oraz zmniejszenie ryzyka związanego z wyciekiem hasła.
Wersja Enterprise
NocoBase wspiera ustawianie czarnych lub białych list dla adresów IP, z których użytkownicy uzyskują dostęp.
Poprzez ustawienie różnych ról w systemie oraz przypisanie im odpowiednich uprawnień, można precyzyjnie kontrolować dostęp użytkowników do zasobów. Administratorzy muszą rozsądnie konfigurować uprawnienia w zależności od potrzeb konkretnego scenariusza, aby zmniejszyć ryzyko wycieku zasobów systemowych.
Podczas pierwszej instalacji NocoBase aplikacja inicjalizuje użytkownika root. Zaleca się, aby użytkownicy zmienili dane tego użytkownika, ustawiając zmienne środowiskowe systemu, aby uniknąć złośliwego wykorzystania.
INIT_ROOT_USERNAME - nazwa użytkownika rootINIT_ROOT_EMAIL - adres e-mail użytkownika rootINIT_ROOT_PASSWORD - hasło użytkownika root, prosimy ustawić silne hasło.Podczas dalszego korzystania z systemu zaleca się, aby użytkownicy tworzyli i używali innych kont administratorów, unikając bezpośredniego operowania na koncie root.
NocoBase kontroluje dostęp użytkowników do zasobów poprzez ustawienie ról w systemie, nadawanie uprawnień różnym rolom i przypisywanie użytkowników do odpowiednich ról. Każdy użytkownik może mieć wiele ról i może przełączać się między nimi, aby operować na zasobach z różnych perspektyw. Jeśli zainstalowana jest wtyczka działów, można również powiązać role z działami, dzięki czemu użytkownicy mogą posiadać role przypisane do ich działów.

Uprawnienia do konfiguracji systemu obejmują następujące ustawienia:
Uprawnienia do menu służą do kontrolowania dostępu użytkowników do różnych stron menu, zarówno na komputerach stacjonarnych, jak i urządzeniach mobilnych.

NocoBase zapewnia precyzyjną kontrolę nad uprawnieniami użytkowników do dostępu do danych w systemie, zapewniając, że różni użytkownicy mogą uzyskać dostęp tylko do danych związanych z ich obowiązkami, co zapobiega nadużyciom uprawnień i wyciekom danych.


Ustawia zakres danych, na których użytkownicy mogą operować. Należy pamiętać, że zakres danych w tym miejscu różni się od zakresu danych skonfigurowanego w bloku. Zakres danych skonfigurowany w bloku jest zazwyczaj używany tylko do filtrowania danych po stronie front-endu. Jeśli potrzebna jest ścisła kontrola dostępu użytkowników do zasobów danych, należy ją skonfigurować tutaj, aby była kontrolowana przez serwer.

Podczas przechowywania i tworzenia kopii zapasowych danych, NocoBase zapewnia skuteczne mechanizmy gwarantujące bezpieczeństwo danych.
Hasła użytkowników NocoBase są szyfrowane i przechowywane przy użyciu algorytmu scrypt, który skutecznie chroni przed atakami sprzętowymi na dużą skalę.
Podczas korzystania z usług firm trzecich w NocoBase zalecamy konfigurowanie informacji o kluczach tych usług w zmiennych środowiskowych i przechowywanie ich w postaci zaszyfrowanej. Jest to wygodne do konfiguracji i użycia w różnych miejscach, a także zwiększa bezpieczeństwo. Szczegółowe instrukcje można znaleźć w dokumentacji.
Domyślnie klucz jest szyfrowany przy użyciu algorytmu AES-256-CBC. NocoBase automatycznie wygeneruje 32-bitowy klucz szyfrujący i zapisze go w storage/.data/environment/aes_key.dat. Użytkownicy powinni odpowiednio chronić plik klucza, aby zapobiec jego kradzieży. W przypadku migracji danych plik klucza musi zostać przeniesiony razem z nimi.

Jeśli istnieje potrzeba przechowywania wrażliwych plików, zaleca się korzystanie z usług przechowywania w chmurze zgodnych z protokołem S3 oraz użycie komercyjnej wtyczki File storage: S3 (Pro), aby umożliwić prywatny odczyt i zapis plików. Jeśli konieczne jest użycie w środowisku sieci wewnętrznej, zaleca się stosowanie aplikacji do przechowywania, które wspierają wdrożenie prywatne i są zgodne z protokołem S3, takich jak MinIO.

Aby zapewnić bezpieczeństwo danych aplikacji i uniknąć ich utraty, zalecamy regularne tworzenie kopii zapasowych bazy danych.
Użytkownicy wersji open-source mogą zapoznać się z artykułem https://www.nocobase.com/en/blog/nocobase-backup-restore, aby tworzyć kopie zapasowe za pomocą narzędzi bazodanowych. Zalecamy również odpowiednie przechowywanie plików kopii zapasowych, aby zapobiec wyciekowi danych.
Użytkownicy wersji Professional i wyższych mogą korzystać z menedżera kopii zapasowych. Menedżer ten oferuje następujące funkcje:

Prawidłowe wdrożenie NocoBase i zapewnienie bezpieczeństwa środowiska uruchomieniowego jest jednym z kluczy do zapewnienia bezpieczeństwa aplikacji NocoBase.
Aby zapobiec atakom typu "man-in-the-middle", zalecamy dodanie certyfikatu SSL/TLS do witryny aplikacji NocoBase, aby zapewnić bezpieczeństwo danych podczas transmisji sieciowej.
Wersja Enterprise
W środowiskach o bardziej rygorystycznych wymaganiach dotyczących bezpieczeństwa danych, NocoBase wspiera włączenie szyfrowania transportu API, aby szyfrować treść żądań i odpowiedzi API, unikać transmisji w postaci jawnego tekstu i zwiększyć próg trudności dla złamania danych.
Domyślnie NocoBase nie musi komunikować się z usługami firm trzecich, a zespół NocoBase nie zbiera żadnych informacji o użytkownikach. Połączenie z serwerem NocoBase jest konieczne tylko podczas wykonywania następujących dwóch operacji:
Jeśli są Państwo gotowi poświęcić pewien stopień wygody, obie te operacje można również wykonać w trybie offline, bez bezpośredniego połączenia z serwerem NocoBase.
NocoBase wspiera pełne wdrożenie w sieci wewnętrznej, zapoznaj się z:
Wersja Professional i wyższe
W praktyce zalecamy użytkownikom korporacyjnym izolowanie środowisk testowych i produkcyjnych, aby zapewnić bezpieczeństwo danych aplikacji i środowiska uruchomieniowego w środowisku produkcyjnym. Dzięki wtyczce do zarządzania migracją można przenosić dane aplikacji między różnymi środowiskami.

Wersja Enterprise
Funkcja dzienników audytu w NocoBase rejestruje działania użytkowników w systemie. Rejestrując kluczowe operacje i zachowania dostępowe użytkowników, administratorzy mogą:


NocoBase oferuje wiele typów logów, aby pomóc użytkownikom zrozumieć stan działania systemu i rejestrować zachowania, co pozwala na szybkie identyfikowanie i lokalizowanie problemów systemowych, zapewniając bezpieczeństwo i kontrolę systemu z różnych perspektyw. Główne typy logów obejmują: