feat(prezentacja): klucz podpisu sesji (LOG-34)
SESSION_SECRET w sekrecie astrololo-auth. Pod bez niego CELOWO nie wstaje: usługa z kontami, ale bez klucza, nie odróżniłaby ważnej sesji od podrobionej. W README dopisana rotacja klucza jako awaryjny wyłącznik — podmiana unieważnia wszystkie sesje naraz, co jest właściwą reakcją na podejrzenie przechwycenia cudzej sesji. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit was merged in pull request #20.
This commit is contained in:
+16
-1
@@ -90,11 +90,26 @@ read -rs -p "Hasło do aplikacji (APP_PASSWORD): " APP_PASSWORD; echo
|
||||
|
||||
kubectl -n astrololo create secret generic astrololo-auth \
|
||||
--from-literal=APP_PASSWORD="$APP_PASSWORD" \
|
||||
--from-literal=INTERNAL_TOKEN="$(openssl rand -hex 32)"
|
||||
--from-literal=INTERNAL_TOKEN="$(openssl rand -hex 32)" \
|
||||
--from-literal=SESSION_SECRET="$(openssl rand -hex 32)"
|
||||
|
||||
unset APP_PASSWORD
|
||||
```
|
||||
|
||||
`SESSION_SECRET` podpisuje ciasteczka sesji (LOG-34). **Pod bez niego celowo nie
|
||||
wstanie**: usługa z kontami, ale bez klucza, nie odróżniłaby ważnej sesji od
|
||||
podrobionej. Nikt go nigdy nie musi oglądać.
|
||||
|
||||
> **Rotacja tego klucza wylogowuje WSZYSTKICH.** To nie usterka, tylko awaryjny
|
||||
> wyłącznik: gdy podejrzewasz, że ktoś przechwycił cudzą sesję, podmiana klucza
|
||||
> unieważnia je wszystkie naraz.
|
||||
>
|
||||
> ```bash
|
||||
> kubectl -n astrololo patch secret astrololo-auth --type=json \
|
||||
> -p="[{\"op\":\"replace\",\"path\":\"/data/SESSION_SECRET\",\"value\":\"$(openssl rand -hex 32 | base64 | tr -d '\n')\"}]"
|
||||
> kubectl -n astrololo rollout restart deploy/presentation
|
||||
> ```
|
||||
|
||||
`INTERNAL_TOKEN` jest losowany i **nikt go nigdy nie musi oglądać** — służy tylko
|
||||
usługom do rozmowy między sobą. `APP_PASSWORD` wpisujesz w przeglądarce
|
||||
(użytkownik: `astrololo`, zmienny przez `APP_USER` w `presentation.yaml`).
|
||||
|
||||
Reference in New Issue
Block a user