Идентификация, доступ и управление парком агентов

Идентификация оператора (OIDC / совместимо с Keycloak)

Аутентификация оператора контрольной плоскости использует стандартный поток OIDC с кодом авторизации и документом обнаружения поставщика (совместимо с Keycloak; для той же интеграции подходит любой соответствующий спецификации поставщик OIDC). Возвращённый ID-токен проверяется по алгоритму RS256 и ключам JWKS поставщика, включая поля issuer, audience, срок действия и nonce; состояние входа одноразовое.

  • JWKS по умолчанию хранится в памяти 10 минут. Обновление полностью заменяет сохранённый набор ключей. Если обновление завершается ошибкой после истечения этого срока, это считается жёсткой ошибкой аутентификации — система не откатывается к потенциально отозванным устаревшим ключам просто ради того, чтобы вход продолжал работать.
  • Утверждения о группе и роли из JWT сопоставляются с внутренними ролями через конфигурацию; идентичность, чьи утверждения не соответствуют ни одному настроенному сопоставлению, не получает никаких привилегий — аутентифицированной, но несопоставленной идентичности роль по умолчанию не назначается.
  • Авторизация маршрутов по умолчанию запрещает доступ. Административный интерфейс отдаётся с ограничительной Content-Security-Policy (script-src 'self', без встроенных скриптов, без eval) и стандартными заголовками усиления защиты (X-Frame-Options, X-Content-Type-Options, Referrer-Policy) на каждом отдаваемом пути, включая входной HTML и его скрипты.
  • Сессии имеют явный срок действия и удаляются по его истечении.

Роли

Роль Назначение
Администратор (Administrator) Полное администрирование контрольной плоскости
Офицер безопасности (Security Officer) Создание, публикация и откат политик
Руководитель информационной безопасности / наблюдатель (CISO/Viewer) Доступ только для чтения к аудиту и данным о соответствии требованиям
Разработчик (Developer) Доступ к локальной статистике

Хранение учётных данных

Пароли операторов хранятся с использованием Argon2id (алгоритм с высокими требованиями к памяти, соль для каждого набора учётных данных). Токены регистрации и аутентификации агента используют HMAC с секретом на стороне сервера. Устаревшие учётные данные прозрачно перехешируются и обновляются при следующем успешном входе.

Регистрация и жизненный цикл парка агентов

%%{init: {"theme": "base", "themeVariables": {"fontFamily": "-apple-system, Segoe UI, Helvetica, Arial, sans-serif", "primaryColor": "#eef2f7", "primaryTextColor": "#0b0b0b", "primaryBorderColor": "#5b6b7c", "lineColor": "#5b6b7c", "secondaryColor": "#eef4ff", "tertiaryColor": "#f4f3f0", "clusterBkg": "#f9f9f7", "clusterBorder": "#c3c2b7", "edgeLabelBackground": "#fcfcfb", "actorBkg": "#eef2f7", "actorBorder": "#5b6b7c", "actorTextColor": "#0b0b0b", "actorLineColor": "#5b6b7c", "signalColor": "#52514e", "signalTextColor": "#0b0b0b", "labelBoxBkgColor": "#eef4ff", "labelBoxBorderColor": "#5b6b7c", "labelTextColor": "#0b0b0b", "loopTextColor": "#0b0b0b", "noteBkgColor": "#fdf3d9", "noteBorderColor": "#c98500", "noteTextColor": "#3d2f00", "activationBorderColor": "#5b6b7c", "activationBkgColor": "#eef4ff", "sequenceNumberColor": "#ffffff"}}}%% sequenceDiagram participant Op as Оператор participant CP as Контрольная плоскость participant WS as Агент рабочей станции Op->>CP: выпустить одноразовый токен регистрации в рамках организации (со сроком действия) WS->>CP: регистрация(одноразовый токен) CP-->>WS: токен учётных данных агента loop периодически WS->>CP: сигнал состояния (с аутентификацией, реальный режим выполнения) WS->>CP: запросить политику (аутентифицированно) CP-->>WS: подписанный снимок политики WS->>WS: проверить через цепочку целостности политики, сохранить атомарно end loop проверка версии WS->>CP: проверить каталог версий CP-->>WS: метаданные подписанного пакета обновления\n(URL, контрольная сумма, подпись, ключ подписи) WS->>WS: проверить подпись, установить атомарно alt сбой проверки состояния после обновления WS->>WS: автоматический откат end end
  • Регистрация по умолчанию закрыта. Ненастроенный токен регистрации полностью отключает регистрацию. Повторная регистрация рабочей станции не заменяет её учётные данные молча, без предъявления текущих — сброс регистрации является явным действием, фиксируемым в аудите.
  • Сигнал состояния безусловно требует аутентификации и всегда сообщает фактический режим выполнения агента (включая деградированное состояние/состояние strict_fallback).
  • Каждый исходящий HTTP-вызов агента использует одну общую диспетчерскую функцию, которая отклоняет незашифрованный http:// для любого нелокального узла, если через переменные окружения не задано явное переопределение (и записывает предупреждение, когда оно задано); адреса петли обратной связи разрешены всегда, поскольку это путь локальной разработки/тестирования.
  • Обновления распространяются в виде подписанных пакетов. Проверка предшествует установке; неудачная проверка состояния после обновления запускает автоматический откат. Автообновление можно отключить независимо, при этом сигналы состояния, синхронизация политики и событий продолжают работать в обычном режиме.
  • Каждый установщик формирует хранилище доверенных ключей: оно принадлежит root, не даёт права записи группе или всем остальным и содержит как минимум один ключ подписи, не предназначенный для разработки. Установка без действительных данных доверия завершается отказом: она не завершается состоянием, в котором ничему не доверяется, и не откатывается на встроенный ключ.

Видимость для оператора

Таблица событий в административном интерфейсе — это лента инцидентов для оператора: статус (заблокировано, пропущено или без решения), механизм обнаружения, человекочитаемое описание, построенное только из уже очищенных полей (никогда из исходных командных строк или аргументов), и подробное представление. Событие без решения (например, изменение статуса MCP-сессии, сбой целостности политики, переполнение очереди) визуально отличается от фактического результата «разрешить»/«заблокировать».

Целевые показатели масштаба

Показатель Пилот Целевое значение для рабочей среды
Рабочих станций на контрольную плоскость 50 5 000
Событий на рабочую станцию в день ~200 ~2 000
Локальных репозиториев на проверку 10 500+
Размер снимка политики <100 правил <2 000 правил

Далее: Развёртывание и инфраструктура.

results matching ""

    No results matching ""