Konta, uwierzytelnianie dwuskładnikowe i tokeny API
Bucket & Code Server IDE ma własne konta: jedno konto loguje do panelu, Git, SVN, Bucket i edytora tą samą nazwą i hasłem. Kontami QTS nie można się zalogować. Ten poradnik opisuje konfigurację uwierzytelniania dwuskładnikowego, haseł używanych wtedy przez klientów git i WebDAV, tokenów API dla skryptów oraz odzyskiwanie dostępu po zbyt wielu błędnych hasłach.
- Roleviewer, member, developer, admin
- 2FAkod z telefonu
- Kliencitoken dostępu, hasło aplikacji
- Tokenydla skryptów i CI
- Blokadyi odzyskiwanie dostępu
Zrzuty przedstawiają panel z polami wypełnionymi zgodnie z poradnikiem. Deweloper ma nazwę ola a administrator ewa; kod QR jest zamazany, a klucz, hasło aplikacji i token są przykładowe. Zrzuty uwierzytelniania dwuskładnikowego i hasła aplikacji pochodzą z danych testowych panelu.
01Role
| Rola | Uprawnienia |
|---|---|
| viewer / member | viewer odczytuje panel; strony Backups, Storage, Users i Logs są dla administratorów. member może też zapisywać w Git, SVN i Bucket tam, gdzie ma prawo zapisu, ale nie ma edytora, zadań cron ani kompilacji. Żadna z tych ról nie tworzy repozytoriów Git ani organizacji. member nie może wysyłać zmian do repozytorium Git należącego do konta poniżej developer lub przez nie administrowanego, a przy włączonym CI również do repozytorium z włączonym Actions |
| developer | dodatkowo otwiera edytor, buduje aplikacje, uruchamia własne zadania cron i publikuje pakiety w repozytorium NAS-a (administrator dodaje je do listy) |
| admin | wszystko: konta, ustawienia, pamięć masowa, sieć, moduły, aktywowanie aplikacji i ładowanie modułów jądra |
Rola developer oznacza uprawnienia root na NAS-ie: terminal edytora, polecenia cron dewelopera i przepływy CI repozytoriów, do których może wysyłać zmiany, działają jako root. Przyznawaj ją tylko osobom, którym powierzysz hasło administratora NAS-a. Przed opublikowaniem czegokolwiek w internecie włącz uwierzytelnianie dwuskładnikowe dla każdego konta developer i admin.
02Włącz uwierzytelnianie dwuskładnikowe
Każde konto włącza je dla siebie w Your account (przycisk na dole paska aktywności).
- Naciśnij Set up two-factor authentication.

- Zeskanuj kod QR aplikacją uwierzytelniającą w telefonie albo wpisz w niej klucz. Wprowadź aktualny 6-cyfrowy kod z aplikacji i naciśnij Turn on. Do potwierdzenia kodu logowanie działa jak wcześniej.

- Od teraz po podaniu hasła logowanie wymaga kodu.


- Kod ma 6 cyfr i zmienia się co 30 sekund. Akceptowany jest także kod sprzed 30 sekund lub na 30 sekund naprzód. Ten sam kod nigdy nie jest przyjmowany dwukrotnie.
- Jeśli nowy kod nie działa, zegar telefonu jest prawdopodobnie rozregulowany: ustaw automatyczny czas.
- Wyłączenie uwierzytelniania dwuskładnikowego wymaga hasła.
03Git, SVN i Bucket z uwierzytelnianiem dwuskładnikowym
Po włączeniu uwierzytelniania dwuskładnikowego klienci git, SVN i WebDAV nie przyjmują już hasła konta. Zamiast niego używają:
- Git przez HTTP lub HTTPS: tokenu dostępu Forgejo utworzonego w Forgejo w Settings → Applications. Klucze SSH działają jak wcześniej.
- Klienci SVN i WebDAV: hasła aplikacji utworzonego w Your account. Ma ono 25 losowych znaków w pięciu grupach i jest pokazywane tylko raz. Nowe zastępuje poprzednie; zmiana hasła konta lub wyłączenie uwierzytelniania dwuskładnikowego usuwa je.

04Tokeny API dla skryptów i CI
Skrypt lub zadanie CI używa tokenu API zamiast hasła. W Your account naciśnij New token, nadaj mu nazwę wskazującą zastosowanie i wybierz zakresy uprawnień.

- Zakresy
read,writeiadminodpowiadają rolom viewer, developer i admin. Token działa z najwyższym ze swoich zakresów, ale nie przekracza aktualnej roli właściciela. Żaden zakres nie odpowiada roli member; member tworzy tokeny read. - Token jest pokazywany tylko raz; bvsd przechowuje wyłącznie jego skrót. Skrypt wysyła go jako
Authorization: Bearer bvs_…. - Nowe hasło unieważnia wszystkie tokeny właściciela, a tokeny wyłączonego konta przestają działać.
- Token nie może zmieniać hasła ani uwierzytelniania dwuskładnikowego, tworzyć ani usuwać tokenów, więc jego wyciek nie odetnie właścicielowi dostępu. Usuń nieużywany token: wszystko, co nadal go wysyła, otrzyma 401.
05Błędne hasła i blokady
- Pięć nieudanych logowań w ciągu 15 minut z jednego adresu blokuje ten adres na 15 minut, nawet przy poprawnym haśle. Klient IPv6 jest liczony jako jego sieć /64.
- Pięć niepowodzeń dla jednego konta z jednego adresu blokuje logowanie na to konto z tego adresu na 15 minut.
- Niepowodzenia dla jednego konta z wielu adresów spowalniają kolejne logowania od 125 ms do 2 sekund. W sieci lokalnej nigdy nie blokują konta.
- Po 20 nieudanych logowaniach z internetu na jedno konto od ostatniego udanego logowania dostęp z internetu zostaje zablokowany, niezależnie od adresów źródłowych. Konto nadal działa w sieci lokalnej. Próg ustawia się na stronie Users; 0 wyłącza tę blokadę.

Za odwrotnym proxy panel uwzględnia zgłoszony przez nie adres tylko wtedy, gdy proxy jest zaufane. Inaczej każdy klient jest liczony pod adresem proxy i pięć błędnych haseł dowolnej osoby blokuje dostęp wszystkim.
06Co może administrator
Na stronie Users administrator otwiera konto, naciskając jego wiersz.
- Zgubiony telefon: Turn it off w Two-factor authentication. Do ponownej konfiguracji konta wystarczy samo hasło.

- Konto zablokowane z internetu: Unlock lub nowe hasło.
- Set a new password kończy sesje konta i unieważnia jego tokeny API.
- Wyłączenie konta natychmiast kończy jego sesje i wstrzymuje tokeny; dane pozostają. Ostatni aktywny administrator nie może zostać zdegradowany, wyłączony ani usunięty.
- Zadania cron wyłączonego konta i konta z rolą member lub viewer pozostają, ale nie działają. Usunięcie konta usuwa jego zadania (od wersji 1.0.0-52, Zadania zaplanowane).
07Gdy administrator straci dostęp
Administrator NAS-a resetuje dowolne konto z sesji SSH na NAS-ie. Te polecenia łączą się z bvsd przez gniazdo dostępne tylko dla root i każde jest zapisywane w log/audit.log w folderze danych:
/usr/bin/bucketvs/bin/bvs user list /usr/bin/bucketvs/bin/bvs user password administrator /usr/bin/bucketvs/bin/bvs user totp-reset administrator /usr/bin/bucketvs/bin/bvs user unlock administrator
bvs user passwordustawia nowe losowe hasło o długości 20 znaków i je wyświetla. Przy następnym logowaniu konto musi wybrać własne hasło; jego sesje kończą się, a tokeny API zostają unieważnione.bvs user totp-resetwyłącza uwierzytelnianie dwuskładnikowe konta.bvs user unlockusuwa blokadę po zbyt wielu błędnych hasłach z internetu.