Вход в контур без Zitadel: auth_type=original через /static/config.json
Платформа редиректила на zitadel.contour.infra.sarex.tech — чужой
контур, из aero недостижимый, — и падала с
invalid_request: The requested redirect_uri is missing in the client
configuration
то есть войти было нельзя вообще.
Zitadel во фронтенде выключается штатно и в рантайме. На старте он
делает fetch("/static/config.json") и, если там есть auth_type,
БЕЗУСЛОВНО перекрывает им режим, зашитый в сборку
(src/Model/api/http-service.ts в generic/sarex-frontend). Значений два:
zitadel и original; original — классический вход по логину и паролю с
JWT, ради которого backend и получает из Vault ключи RS512, а
SERVER_ZITADEL_ENABLED в оверлее уже стоит в False.
Файл отдаётся прямо из nginx, а не подкладывается томом: static/config.json
в sarex-frontend лежит в .gitignore и заполняется на каждом стенде своим —
это штатная точка расширения. В апстримном nginx.conf под него заведён
такой же location = с no-store, только читающий с диска.
Через localStorage подменить нельзя: оверрайд оттуда действует лишь для
endpoint'ов stage, preprod и local, contour в этом списке нет.
This commit is contained in:
parent
00056b9150
commit
f45802c0b8
@ -95,6 +95,39 @@ data:
|
||||
expires off;
|
||||
}
|
||||
|
||||
# Выбор способа аутентификации. Фронтенд на старте делает
|
||||
# fetch("/static/config.json") и, если там есть auth_type,
|
||||
# БЕЗУСЛОВНО перекрывает им режим, зашитый в сборку
|
||||
# (src/Model/api/http-service.ts). Значения ровно два:
|
||||
# "zitadel" и "original"; original — классический вход по
|
||||
# логину и паролю с JWT, ради которого backend и получает из
|
||||
# Vault ключи RS512.
|
||||
#
|
||||
# В образе sarex-frontend-dev:contour_* этот файл лежит со
|
||||
# значением zitadel и хостом zitadel.contour.infra.sarex.tech —
|
||||
# чужой контур, из aero недоступен. Из-за него платформа
|
||||
# редиректила на /oauth/v2/authorize и получала
|
||||
# invalid_request: The requested redirect_uri is missing
|
||||
# in the client configuration
|
||||
# то есть войти было нельзя в принципе.
|
||||
#
|
||||
# Отдаём файл прямо из nginx, не подкладывая том: сам
|
||||
# static/config.json в sarex-frontend лежит в .gitignore и
|
||||
# заполняется на каждом стенде своим — это штатная точка
|
||||
# расширения, а не обход. В апстримном nginx.conf под него уже
|
||||
# заведён такой же location =, только читающий с диска.
|
||||
#
|
||||
# Подменить через localStorage нельзя: оверрайд оттуда
|
||||
# действует лишь для endpoint'ов stage, preprod и local,
|
||||
# contour в этом списке нет.
|
||||
location = /static/config.json {
|
||||
default_type application/json;
|
||||
add_header Cache-Control 'no-store no-cache, must-revalidate, proxy-revalidate, max-age=0';
|
||||
if_modified_since off;
|
||||
expires off;
|
||||
return 200 '{"auth_type":"original"}';
|
||||
}
|
||||
|
||||
# location /api/pm/ из base удалён: сервис pm контуру не нужен.
|
||||
|
||||
location ~^/(api|admin)/ {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user