@@ -18,11 +18,46 @@ REST API доступен, если:
1818{
1919 "api" : {
2020 "enabled" : true ,
21- "listen" : " 0.0.0.0:12121"
21+ "listen" : " 0.0.0.0:12121" ,
22+ "authentication" : {
23+ "enabled" : true ,
24+ "password_hash" : " argon2id$v=19$m=19456,t=2,p=1$..."
25+ },
26+ "cors" : {
27+ "allowed_origins" : [" https://panel.example.com" ]
28+ }
2229 }
2330}
2431```
2532
33+ Интерактивно сгенерировать хеш пароля:
34+
35+ ``` bash
36+ keen-pbr hash-password
37+ ```
38+
39+ Чтобы включить аутентификацию и сразу записать новый хеш в выбранный
40+ ` config.json ` , выполните ` keen-pbr --config /path/to/config.json hash-password --update ` .
41+ Команда атомарно обновит файл и напомнит о необходимости перезапуска службы.
42+ Изменения аутентификации и CORS применяются только после перезапуска keen-pbr.
43+
44+ Для хеширования пароля используется реализация Argon2id из Monocypher. Хеши
45+ PBKDF2 из предыдущих версий не поддерживаются — их необходимо создать заново.
46+ API конфигурации никогда не возвращает и не принимает сохранённый хеш. Веб-интерфейс
47+ получает только состояние через ` GET /api/auth/password ` , а новый пароль в открытом
48+ виде отправляет только в ` POST /api/auth/password ` ; хеширование выполняет демон.
49+
50+ Клиенты API могут использовать Basic-аутентификацию с именем пользователя
51+ ` admin ` или Bearer-токен, полученный через ` POST /api/auth/login ` . Одновременно
52+ действует только одна Bearer-сессия: новый успешный вход немедленно завершает
53+ предыдущую сессию веб-интерфейса. Сессия истекает через 24 часа и теряется при
54+ перезапуске демона.
55+
56+ Когда аутентификация отключена, межсайтовые запросы браузера запрещены. Когда
57+ она включена, разрешены точно указанные источники, а также источники расширений
58+ Chrome и Firefox. При входе и Basic-аутентификации пароль передаётся API,
59+ поэтому используйте доверенную сеть или HTTPS reverse proxy.
60+
2661По умолчанию API прослушивает ` 0.0.0.0:12121 ` . Все эндпоинты обслуживаются на настроенном адресе ` api.listen ` .
2762
2863---
0 commit comments