локальный вход задаётся конфигом: заголовки подставляет сам сервис
- в конфиг добавлены секция [auth.test_headers] и предохранитель [server] debug: заголовки входа подставляет слой транспорта, второго процесса локальный запуск больше не требует - подкоманда devtools proxy удалена целиком: всё, ради чего её поднимали, делает сам сервис - адресного предохранителя нет по решению владельца — цена названа в ADR и в модели угроз
This commit is contained in:
+44
-14
@@ -4,6 +4,20 @@ port = 8080
|
||||
shutdown_timeout = 5
|
||||
force_shutdown_timeout = 20
|
||||
|
||||
# Предохранитель отладочного запуска. Значения: false (по умолчанию) и true.
|
||||
#
|
||||
# Означает он одно: прогон идёт на машине разработчика, и сервису позволено
|
||||
# подставить то, что в бою даёт обратный прокси, — заголовки входа из секции
|
||||
# [auth.test_headers] ниже. Перечня следствий сверх этого у него нет: уровня
|
||||
# журнала, текстов внутренних отказов, ограничителя частоты и подмены
|
||||
# распознавателя признак не касается.
|
||||
#
|
||||
# Цена включения названа прямо: сервис с true и заполненной имитацией называет
|
||||
# пришедшего сам, никого не спросив, и отдаёт архив всякому, чей запрос пришёл с
|
||||
# доверенного адреса. В бою доверенный адрес — это адрес обратного прокси, то
|
||||
# есть всякий, кто пришёл обычным путём. В боевом файле ключ стоит false.
|
||||
debug = false
|
||||
|
||||
# Хранилище: каталог данных и числа его базы.
|
||||
#
|
||||
# Каталог единственный: под ним лежат и файл базы, и подкаталог с файлами
|
||||
@@ -100,25 +114,41 @@ object_storage_endpoint = "https://storage.yandexcloud.net/"
|
||||
# Caddy, — узкий и свой.
|
||||
trusted_proxies = ["172.20.0.0/24"]
|
||||
|
||||
# Локальный вход без Authelia.
|
||||
# Локальный вход без Authelia — рецепт целиком.
|
||||
#
|
||||
# Прокси на машине разработчика нет, а браузер заголовков не ставит — значит
|
||||
# приложение локально не открылось бы вовсе. На место контура встаёт подставной
|
||||
# прокси из оснастки: он слушает свой порт, ставит заголовок и переправляет
|
||||
# запрос сервису. Проверок он не делает никаких — ни пароля, ни группы, ни
|
||||
# срока, — и это его назначение, а не упущение.
|
||||
# приложение локально не открылось бы вовсе. Заголовки входа подставляет сам
|
||||
# сервис: второго процесса и второго порта для этого не нужно, приложение
|
||||
# открывают по адресу сервиса.
|
||||
#
|
||||
# go run ./cmd/devtools proxy
|
||||
# Три правки этого файла сверху вниз, и других не нужно:
|
||||
#
|
||||
# Приложение после этого открывают по адресу прокси — http://localhost:9000, —
|
||||
# а не по адресу сервиса: запрос мимо прокси приходит без заголовка и никого не
|
||||
# узнаёт.
|
||||
# 1. Добавить в перечень выше пару петлевых адресов — обе записи, а не одну:
|
||||
#
|
||||
# Под него в перечне выше должен стоять петлевой адрес:
|
||||
# trusted_proxies = ["172.20.0.0/24", "127.0.0.1", "::1"]
|
||||
#
|
||||
# trusted_proxies = ["127.0.0.1"]
|
||||
# Браузер разрешает localhost в IPv6 не реже, чем в IPv4, и перечень без
|
||||
# `::1` даёт неузнанный запрос. Отказ подстановки при этом виден строкой
|
||||
# журнала с адресом пира — по ней и опознаётся недостающая запись.
|
||||
#
|
||||
# Второй вошедший получается другим значением `-user`: логин у провайдера и есть
|
||||
# ключ учётной записи.
|
||||
# 2. Поставить в секции [server] выше:
|
||||
#
|
||||
# go run ./cmd/devtools proxy -user local-2 -name "Второй"
|
||||
# debug = true
|
||||
#
|
||||
# 3. Раскомментировать секцию ниже и назвать в ней Remote-User. Ключ —
|
||||
# имя заголовка, значение — то, чем сервис назовёт пришедшего. Принимаются
|
||||
# три имени: Remote-User, Remote-Name, Remote-Email; иное роняет старт.
|
||||
# Ключ Remote-User обязателен: без него сервис подставит всё прочее и не
|
||||
# узнает никого.
|
||||
#
|
||||
# Второй вошедший получается другим значением Remote-User: логин и есть ключ
|
||||
# учётной записи.
|
||||
#
|
||||
# Заполненная секция при debug = false роняет старт с именем ключа
|
||||
# предохранителя: состояние «имитация есть, предохранителя нет» не читается
|
||||
# никак, а обе его прочтения — поломка.
|
||||
#
|
||||
# [auth.test_headers]
|
||||
# Remote-User = "local"
|
||||
# Remote-Name = "Разработчик"
|
||||
# Remote-Email = "local@example.com"
|
||||
|
||||
Reference in New Issue
Block a user