docs: narrow auth scope to trade only
This commit is contained in:
16
migration.md
16
migration.md
@@ -360,26 +360,26 @@ Wymaganie:
|
|||||||
- **admin** ma dostęp do wszystkich serwisów (np. Portainer, Argo CD, itp.)
|
- **admin** ma dostęp do wszystkich serwisów (np. Portainer, Argo CD, itp.)
|
||||||
- pozostali użytkownicy logują się **wyłącznie** do `trade` (`trade.rv32i.pl`)
|
- pozostali użytkownicy logują się **wyłącznie** do `trade` (`trade.rv32i.pl`)
|
||||||
|
|
||||||
Rekomendowana metoda: **Traefik `basicAuth` na Ingress (Middleware)**.
|
Decyzja: na ten moment **wdrażamy logowanie tylko dla `trade`**. Pozostałe serwisy (Portainer/Argo/pgAdmin/Hasura) zostają ze swoimi, osobnymi loginami.
|
||||||
|
|
||||||
|
Rekomendowana metoda dla `trade`: **Traefik `basicAuth` na Ingress (Middleware)**.
|
||||||
|
|
||||||
### Plan wdrożenia (staging → prod)
|
### Plan wdrożenia (staging → prod)
|
||||||
|
|
||||||
1) Inwentaryzacja publicznych endpointów:
|
1) Inwentaryzacja publicznych endpointów:
|
||||||
- sprawdzić które serwisy mają Ingress (hosty) i które mają być dostępne wyłącznie dla admina.
|
- sprawdzić które serwisy mają Ingress (hosty),
|
||||||
|
- serwisy administracyjne traktować jako „admin-only” (docelowo: ukryte za port-forward/VPN/IP allowlist).
|
||||||
2) `trade` (multi-user):
|
2) `trade` (multi-user):
|
||||||
- przygotować `htpasswd` z wieloma wpisami (bcrypt),
|
- przygotować `htpasswd` z wieloma wpisami (bcrypt),
|
||||||
- utworzyć `Secret` w namespace `trade-staging` (np. `trade-basic-auth`) z plikiem `users`,
|
- utworzyć `Secret` w namespace `trade-staging` (np. `trade-basic-auth`) z plikiem `users`,
|
||||||
- dodać `Middleware` `basicAuth` wskazujący na secret,
|
- dodać `Middleware` `basicAuth` wskazujący na secret,
|
||||||
- podpiąć middleware do `Ingress/trade-frontend`.
|
- podpiąć middleware do `Ingress/trade-frontend`.
|
||||||
3) `portainer` (admin-only):
|
3) Wyłączyć/dopasować auth w aplikacji `trade-frontend`:
|
||||||
- analogicznie utworzyć admin-only `Secret`+`Middleware` i podpiąć do `Ingress/portainer`.
|
|
||||||
4) Wyłączyć/dopasować auth w aplikacji `trade-frontend`:
|
|
||||||
- obecnie serwer frontendu ma wbudowany basic auth (plik `frontend.json`),
|
- obecnie serwer frontendu ma wbudowany basic auth (plik `frontend.json`),
|
||||||
- żeby nie było „podwójnego logowania”, dodać tryb `BASIC_AUTH_MODE=off` (albo podobny) i ustawić go w `trade-deploy`.
|
- żeby nie było „podwójnego logowania”, dodać tryb `BASIC_AUTH_MODE=off` (albo podobny) i ustawić go w `trade-deploy`.
|
||||||
5) Testy:
|
4) Testy:
|
||||||
- `https://trade.rv32i.pl` → 401 bez auth, 200/304 z auth dla każdego usera,
|
- `https://trade.rv32i.pl` → 401 bez auth, 200/304 z auth dla każdego usera,
|
||||||
- `https://portainer.rv32i.pl` → 401 bez auth, dostęp tylko dla admin,
|
|
||||||
- regresja: proxy `/api/*` w frontendzie nadal działa (token read jest dodawany po stronie serwera frontendu).
|
- regresja: proxy `/api/*` w frontendzie nadal działa (token read jest dodawany po stronie serwera frontendu).
|
||||||
6) Utrzymanie:
|
5) Utrzymanie:
|
||||||
- dodanie/usunięcie usera = update secreta (`htpasswd`) + rollout (bez zmian w kodzie),
|
- dodanie/usunięcie usera = update secreta (`htpasswd`) + rollout (bez zmian w kodzie),
|
||||||
- docelowo przenieść sekrety do GitOps (np. SOPS/SealedSecrets/ExternalSecrets).
|
- docelowo przenieść sekrety do GitOps (np. SOPS/SealedSecrets/ExternalSecrets).
|
||||||
|
|||||||
3
steps.md
3
steps.md
@@ -231,5 +231,6 @@ Uwaga: **nie zapisuję sekretów** (hasła, tokeny, prywatne klucze) – jeśli
|
|||||||
|
|
||||||
### Dostęp: admin vs użytkownicy (plan)
|
### Dostęp: admin vs użytkownicy (plan)
|
||||||
- Wymaganie: admin ma dostęp do wszystkich serwisów; pozostali użytkownicy logują się tylko do `trade.rv32i.pl`.
|
- Wymaganie: admin ma dostęp do wszystkich serwisów; pozostali użytkownicy logują się tylko do `trade.rv32i.pl`.
|
||||||
- Wybrano metodę: Traefik `basicAuth` na Ingress (Middleware).
|
- Decyzja: logowanie wdrażamy tylko dla `trade`; pozostałe serwisy zostają z własnymi loginami.
|
||||||
|
- Wybrano metodę dla `trade`: Traefik `basicAuth` na Ingress (Middleware).
|
||||||
- Plan wdrożenia opisany w `migration.md` (sekcja „Dostęp i logowanie”).
|
- Plan wdrożenia opisany w `migration.md` (sekcja „Dostęp i logowanie”).
|
||||||
|
|||||||
Reference in New Issue
Block a user