Контекст инициатора — это подсказка для пользователя перед подтверждением, а не решение о
доступе. Он не заменяет проверки безопасности: транзакция всё равно ограничена TTL, one-time
использованием и rate limiting.
Что показывается
Набор полей задаётсяDisplayFields. Доступные поля:
По умолчанию показываются все четыре поля.
Откуда берутся данные
Снимок контекста формируется на старте транзакции (/connect/authorize) из данных запроса:
- IP-адрес — из соединения (best-effort; учитывает forwarded-заголовки за доверенным прокси).
- Браузер и ОС — разбором
User-Agent. - Регион — геолокацией по IP через офлайн-базу (без обращения к онлайн-сервисам в trust-path).
Геолокация требует двух вещей, которых нет в базовой поставке: сателлитного пакета
Veriqa.Core.AuthServer.MaxMind и локальной GeoIP-базы (MaxMind .mmdb или совместимой). Если
пакет не подключён или база не задана — геополя остаются пустыми, остальной контекст показывается
как обычно (graceful degradation). Сырой User-Agent по умолчанию не сохраняется.Сбор включён по умолчанию.
Enabled, CollectIpAddress, CollectUserAgent и
CollectGeoLocation поставляются как true. Что это значит на практике — где каждое значение
лежит, сколько живёт и как сбор выключить — в
Безопасности и обработке данных.Конфигурация
СекцияVeriqa:InitiatorContext:
appsettings.json
Enabled(по умолчаниюtrue) — глобальный включатель. Приfalseснимок не формируется, и поведение системы не меняется.CollectIpAddress/CollectUserAgent/CollectGeoLocation— что собирать (все по умолчаниюtrue).StoreRawUserAgent— хранить ли сырой User-Agent (по умолчаниюfalse).GeoIp.Provider—OfflineDatabase(офлайн.mmdb);GeoIp.DatabasePath— путь к базе.
GeoIp ничего не включают, пока в приложении нет провайдера, который читает базу. Он
приезжает сателлитным пакетом — ядро не тащит GeoIP-библиотеку транзитивно:
CollectGeoLocation: true пишет в лог старта
предупреждение с кодом initiator_context_geoip_unavailable.
Настройка на уровне клиента
Показ контекста настраивается на конкретный OIDC-клиент — полями клиента в конфигурации. Значениеnull означает «наследовать глобальный дефолт». Приложение может только сузить
набор полей верхнего уровня, но не расширить его.
appsettings.json
InitiatorContextEnabled— показывать ли контекст в подтверждении для этого клиента (управляет именно отображением; сбор снимка регулируется глобально).InitiatorContextDisplayFields— суженный набор полей для этого клиента.
Дальше
Как работает auth-поток
Где в потоке формируется контекст инициатора.
Hardening к продакшну
Чек-лист перед выпуском в продакшн.