Ta strona została przetłumaczona maszynowo. Zauważyłeś błąd?Pomóż ją ulepszyć.
Skip to content

Użytkownicy, role i uprawnienia ​

SnapOtter dostarcza trzy wbudowane role, 17 szczegółowych uprawnień oraz obsługę ról niestandardowych z opcjonalną kontrolą dostępu per narzędzie. Ta strona omawia pełny model autoryzacji, zakresowanie kluczy API, zarządzanie zespołami i rejestrowanie audytu.

Użytkownicy ​

Tworzenie użytkowników ​

Administratorzy mogą tworzyć użytkowników za pośrednictwem panelu administracyjnego lub punktu końcowego POST /api/auth/register. Każdy użytkownik ma nazwę użytkownika, rolę, przypisanie do zespołu oraz opcjonalny adres e-mail.

Domyślny administrator ​

Przy pierwszym uruchomieniu SnapOtter tworzy domyślne konto administratora. Dane uwierzytelniające pochodzą ze zmiennych środowiskowych:

ZmiennaDomyślnieOpis
DEFAULT_USERNAMEadminNazwa użytkownika dla początkowego konta administratora
DEFAULT_PASSWORDadminHasło dla początkowego konta administratora

Domyślny administrator jest zobowiązany do zmiany hasła przy pierwszym logowaniu.

Dostawcy uwierzytelniania ​

Użytkownicy mogą uwierzytelniać się kilkoma metodami:

  • Lokalna - nazwa użytkownika i hasło przechowywane w bazie danych SnapOtter
  • OIDC - dowolny dostawca OpenID Connect (zobacz OIDC / SSO)
  • SAML - dostawcy tożsamości SAML 2.0 (zobacz SAML SSO)
  • SCIM - automatyczny provisioning od dostawcy tożsamości (zobacz Provisioning SCIM)

Wyłączanie uwierzytelniania ​

Ustaw AUTH_ENABLED=false, aby całkowicie wyłączyć uwierzytelnianie. W tym trybie dla wszystkich żądań używany jest syntetyczny anonimowy użytkownik z rolą admin. Logowanie nie jest wymagane.

WARNING

Wyłączenie uwierzytelniania przyznaje pełny dostęp administratora każdemu, kto może dotrzeć do instancji. Używaj tego wyłącznie w zaufanych środowiskach.

Wbudowane role ​

SnapOtter zawiera trzy wbudowane role. Nie można ich modyfikować ani usuwać.

Admin ​

Wszystkie 17 uprawnień. Pełna kontrola nad instancją.

tools:use files:own files:all apikeys:own apikeys:all pipelines:own pipelines:all settings:read settings:write users:manage teams:manage features:manage system:health audit:read compliance:manage webhooks:manage security:manage

Editor ​

7 uprawnień. Może używać wszystkich narzędzi oraz zarządzać wszystkimi plikami i potokami, ale nie ma dostępu do funkcji administracyjnych.

tools:use files:own files:all apikeys:own pipelines:own pipelines:all settings:read

User ​

5 uprawnień. Może używać narzędzi i zarządzać własnymi zasobami.

tools:use files:own apikeys:own pipelines:own settings:read

Wykaz uprawnień ​

UprawnienieOpis
tools:useUżycie dowolnego narzędzia przetwarzania
files:ownPrzeglądanie i zarządzanie własnymi plikami
files:allPrzeglądanie i zarządzanie plikami wszystkich użytkowników
apikeys:ownTworzenie i zarządzanie własnymi kluczami API
apikeys:allPrzeglądanie kluczy API wszystkich użytkowników
pipelines:ownTworzenie i zarządzanie własnymi potokami
pipelines:allPrzeglądanie i zarządzanie potokami wszystkich użytkowników
settings:readPrzeglądanie ustawień instancji
settings:writeModyfikowanie ustawień instancji
users:manageTwórz konta użytkowników i zarządzaj nimi w granicach uprawnień aktora
teams:manageTworzenie, aktualizowanie i usuwanie zespołów
features:manageInstalowanie i zarządzanie pakietami funkcji AI
system:healthDostęp do punktów końcowych kondycji i gotowości
audit:readPrzeglądanie dziennika audytu i listowanie ról
compliance:manageZarządzaj cyklem życia RODO i funkcjami zgodności; destrukcyjne działania użytkownika pozostają ograniczone uprawnieniami
webhooks:manageKonfigurowanie wychodzących webhooków
security:manageZarządzanie ustawieniami bezpieczeństwa (lista dozwolonych adresów IP, wymuszanie SSO)

Role niestandardowe ​

Administratorzy z uprawnieniem security:manage mogą tworzyć role niestandardowe za pośrednictwem panelu administracyjnego lub API ról. Listowanie ról wymaga audit:read.

Tworzenie roli niestandardowej ​

bash
curl -X POST http://localhost:1349/api/v1/roles \
  -H "Authorization: Bearer si_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "reviewer",
    "description": "Can use tools and view all files",
    "permissions": ["tools:use", "files:own", "files:all", "settings:read"]
  }'

Nazwy ról muszą mieć 2-30 znaków, składać się z małych liter i cyfr z myślnikami i podkreśleniami.

Delegowane granice administracyjne ​

Wszystkie 17 uprawnień można delegować za pośrednictwem ról niestandardowych, ale uprawnienie administracyjne nie czyni tej roli równoważną wbudowanej roli admin. Mutacje użytkowników autoryzowane przez users:manage, destrukcyjne operacje autoryzowane przez compliance:manage i niestandardowe zarządzanie rolami autoryzowane przez security:manage są ograniczone bieżącymi uprawnieniami aktora:

  • Wbudowane role podążają za admin > editor > user; role niestandardowe znajdują się poniżej ról wbudowanych.
  • Uprawnienia celu muszą być zawarte w efektywnych uprawnieniach aktora. Dlatego klucz API o ograniczonym zakresie nie może wykonywać uprawnień pominiętych w jego zakresie.
  • Dostęp do narzędzi roli docelowej musi być ograniczony dostępem do narzędzi aktora.
  • Wyłączone konto jest sprawdzane pod kątem jego pierwotnej roli, gdy ta rola jest rejestrowana jako disabled:<original-role>.
  • Usunięcie roli niestandardowej wymaga również uprawnień do przypisania wbudowanej funkcji zastępczej user; niepełnosprawni członkowie pozostają wyłączeni jako disabled:user.

Globalne dane uwierzytelniające i konfiguracja są bardziej rygorystyczne: wydawanie lub unieważnianie tokena SCIM oraz importowanie konfiguracji instancji wymagają wbudowanej roli admin z pełnymi skutecznymi uprawnieniami administratora.

Uprawnienia na poziomie narzędzi ​

Role niestandardowe mogą opcjonalnie ograniczać, do których narzędzi użytkownicy mają dostęp. Dostępne są dwa tryby:

TrybZachowanieWymóg licencji
categoryOgraniczenie według modalności (obraz, wideo, audio, dokument, plik)Brak (za darmo)
toolOgraniczenie według identyfikatora poszczególnego narzędziaWymaga funkcji enterprise per_tool_permissions

Gdy ustawiony jest tryb tool, ale funkcja enterprise nie jest dostępna, SnapOtter degraduje się łagodnie i zezwala na dostęp do wszystkich narzędzi.

json
{
  "name": "image-only",
  "permissions": ["tools:use", "files:own"],
  "toolPermissions": {
    "mode": "category",
    "allowed": ["image"]
  }
}

Usuwanie roli niestandardowej ​

Gdy rola niestandardowa zostanie usunięta, wszyscy przypisani do niej użytkownicy są automatycznie przenoszeni do roli user.

Zespoły ​

Zespoły grupują użytkowników na potrzeby zarządzania przechowywaniem i retencją. Przy pierwszym uruchomieniu tworzony jest zespół Default.

PoleTypOpis
namestringUnikatowa nazwa zespołu (1-50 znaków)
storageQuotanumberLimit przechowywania per zespół w bajtach (działa bez enterprise)
retentionHoursnumberAutomatyczne usuwanie danych wyjściowych po tylu godzinach (wymaga team_retention_overrides, enterprise)
legalHoldbooleanZapobiega automatycznemu usuwaniu plików członków zespołu (wymaga legal_hold, enterprise)

INFO

Zespołu Default nie można usunąć. Zespołów, które nadal mają członków, nie można usunąć. Najpierw przenieś członków.

Klucze API ​

Użytkownicy mogą generować klucze API do dostępu programowego. Każdy klucz używa prefiksu si_ i jest wyświetlany tylko raz, w momencie utworzenia.

Uprawnienia zakresowe ​

Klucze API mogą opcjonalnie nieść tablicę permissions. Gdy jest ustawiona, efektywne uprawnienia dla żądania stanowią część wspólną uprawnień roli użytkownika i uprawnień zakresowych klucza. Oznacza to, że klucz API nigdy nie może eskalować poza własne uprawnienia użytkownika.

bash
curl -X POST http://localhost:1349/api/v1/api-keys \
  -H "Authorization: Bearer si_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "CI pipeline key",
    "permissions": ["tools:use", "files:own"],
    "expiresAt": "2027-01-01T00:00:00Z"
  }'

Wygasanie ​

Klucze akceptują opcjonalny znacznik czasu expiresAt. Wygasłe klucze są odrzucane w czasie uwierzytelniania.

Dziennik audytu ​

SnapOtter rejestruje zdarzenia istotne dla bezpieczeństwa w ustrukturyzowanym dzienniku audytu przechowywanym w tabeli bazy danych audit_log.

Przeglądanie dziennika audytu ​

GET /api/v1/audit-log?page=1&limit=50&action=LOGIN_FAILED&from=2026-01-01T00:00:00Z&to=2026-12-31T23:59:59Z

Wymaga uprawnienia audit:read. Obsługuje stronicowanie (page, limit) oraz filtry (action, ip, from, to).

Audytowanie operacji narzędzi ​

WARNING

Zdarzenia TOOL_EXECUTED nie są rejestrowane domyślnie. Są opcjonalne poprzez jedną z dwóch ścieżek:

  1. Ustaw ustawienie administratora auditToolOperations na true.
  2. Posiadaj aktywną licencję z funkcją audit_export (dostępną zarówno w planie team, jak i enterprise).

Bez jednego z tych warunków poszczególne wykonania narzędzi nie są zapisywane w dzienniku audytu.

Eksportowanie ​

GET /api/v1/enterprise/audit/export?format=csv&from=2026-01-01T00:00:00Z

Wymaga uprawnienia audit:read oraz funkcji enterprise audit_export (dostępnej zarówno w planie team, jak i enterprise). Obsługuje formaty CSV i JSON, filtrowane według action, actorId, targetType, targetId, from oraz to.

Podpisywanie odporne na manipulacje ​

Gdy jest włączone, każdy wpis dziennika audytu jest podpisywany kodem HMAC pochodzącym z DATA_ENCRYPTION_KEY. Wymaga to:

  1. Ustawienia DATA_ENCRYPTION_KEY w Twoim środowisku.
  2. Włączenia ustawienia administratora tamperResistantAudit.
  3. Licencji enterprise z funkcją tamper_resistant_audit.

Retencja ​

Ustaw AUDIT_RETENTION_DAYS, aby automatycznie usuwać stare wpisy. Wartość domyślna to 0, co oznacza, że wpisy są przechowywane bezterminowo.

Wykaz zdarzeń ​

ZdarzenieKategoria
LOGIN_SUCCESS, LOGIN_FAILEDUwierzytelnianie
OIDC_LOGIN_SUCCESS, OIDC_LOGIN_FAILEDUwierzytelnianie
SAML_LOGIN_SUCCESS, SAML_LOGIN_FAILEDUwierzytelnianie
LOGOUTUwierzytelnianie
USER_CREATED, USER_UPDATED, USER_DELETEDZarządzanie użytkownikami
PASSWORD_CHANGED, PASSWORD_RESETZarządzanie użytkownikami
MFA_ENROLLED, MFA_DISABLED, MFA_VERIFIED, MFA_VERIFY_FAILEDMFA
MFA_CHALLENGE_ISSUED, MFA_RECOVERY_USED, MFA_RESETMFA
ROLE_CREATED, ROLE_UPDATED, ROLE_DELETEDRole
API_KEY_CREATED, API_KEY_DELETEDKlucze API
SETTINGS_UPDATED, IP_ALLOWLIST_UPDATEDUstawienia
FILE_UPLOADED, FILE_DELETEDPliki
TOOL_EXECUTEDNarzędzia (opcjonalne)
SCIM_USER_PROVISIONED, SCIM_USER_UPDATED, SCIM_USER_DEPROVISIONEDSCIM
SCIM_GROUP_SYNCEDSCIM
LEGAL_HOLD_APPLIED, LEGAL_HOLD_RELEASEDZgodność
GDPR_EXPORT_INITIATED, GDPR_USER_PURGED, GDPR_TEAM_PURGEDZgodność
CONFIG_EXPORTED, CONFIG_IMPORTEDKonfiguracja

Zarządzanie sesjami ​

Sesje są oparte na plikach cookie, kontrolowane przez SESSION_DURATION_HOURS (domyślnie: 168 godzin / 7 dni).

Zmiany ról unieważniają sesje ​

Gdy administrator zmienia rolę użytkownika, wszystkie aktywne sesje tego użytkownika są usuwane. Użytkownik musi zalogować się ponownie, aby przejąć swoje nowe uprawnienia.

Zabezpieczenia ​

  • Ochrona ostatniego administratora: ostatniego pozostałego administratora nie można zdegradować do niższej roli. API zwraca błąd, jeśli spróbujesz.
  • Zapobieganie samousunięciu: administratorzy nie mogą usunąć własnego konta za pośrednictwem API.