Перейти к содержимому

Машинный перевод. Авторитетным источником является английская версия; проверка носителем языка ещё не выполнена.

self-hosted

Самоуправляемое управление рядом с шлюзом приложений Claude: руководство по совместному развертыванию

Автор Olivares AI 9 мин чтения

Anthropic отправила шлюз приложений Claude в конце июня 2026 года. Это саморазмещаемый сервис, включенный в бинарный файл claude (v2.1.195+). Вы запускаете его с claude gateway --config gateway.yaml, поддерживаете с PostgreSQL, и он ставит вход OIDC перед вашим парком Claude Code: корпоративные сеансы IdP вместо локально управляемых API-ключей. Это настоящий шаг вперед. Для команд, которые используют Claude Code с Bedrock, Vertex, Foundry или напрямую с API Anthropic, шлюз централизует управление идентификацией, доступом к моделям и контролем расходов в одном конфигурационном файле.

Этот пост о том, что произойдет дальше. Ваш ИИ-ландшафт почти наверняка больше, чем Claude. Вероятно, вы управляете серверами MCP от нескольких поставщиков. У вас могут быть рабочие нагрузки OpenAI или Gemini, локально размещенный вывод через vLLM или Ollama, CI-конвейеры, которые никогда не видят браузер, и агентские фреймворки, которые делегируют задачи между провайдерами. Шлюз приложений поддерживает только Claude и только OIDC. Это решение о масштабировании, а не дефект — но это означает, что вопрос управления решен лишь частично.

Модель совместного развертывания, описанная здесь, размещает платформу управления на собственном сервере рядом со шлюзом, читая как телеметрию шлюза, так и оставшуюся инфраструктуру ваших агентов. Дополняет, а не конкурирует: шлюз занимается аутентификацией, платформа управляет governance.

Что хорошо в шлюзе приложений

Шлюз решает конкретную, важную проблему: предоставление Claude Code надлежащего слоя идентификации. До его появления каждый разработчик использовал API-ключ или общие учетные данные, и не существовало стандартизированного способа контроля доступа к моделям, ограничения расходов или управления настройками на уровне организации.

С внедрением шлюза:

  • Разработчики проходят аутентификацию через вашего провайдера идентификации OIDC (один эмитент на экземпляр шлюза).
  • Группы IdP отображаются на белые списки моделей и политики управляемых настроек в gateway.yaml.
  • Лимиты расходов применяются для каждого пользователя, каждой группы или всей организации с помощью Admin API для контроля лимитов расходов.
  • Телеметрия распределяется через OTLP/HTTP, помечается user.id, user.email и user.groups.
  • События аудита (11 типов: config.load, session.mint, auth.denied, inference и др.) выводятся в виде однострочного JSON в stderr.

Это хорошо спроектированная инфраструктура для заявленного объема. Anthropic публикует протокол шлюза и приглашает к реализации сторонние проекты, что является необычно открытой позицией для поставщика модели.

Что не охватывается

Anthropic ясно документирует следующие решения по области применения. Это не дефекты — они определяют границу совместного развертывания:

  • Только OIDC. Нет SAML, нет LDAP. Если ваш IdP использует SAML, вам нужен мост OIDC перед шлюзом.
  • Одиночный эмитент. Один поставщик OIDC на экземпляр шлюза. Для многопользовательских развертываний требуются отдельные экземпляры.
  • Только Claude. Каталог моделей содержит модели Claude. OpenAI, Gemini, локальные инференсы и другие поставщики находятся вне области действия шлюза.
  • Нет потока с сервисным токеном. Небезопасные пайплайны CI/CD не имеют документированного пути неинтерактивной аутентификации через шлюз.
  • Нет UI для администратора. Конфигурация осуществляется через YAML-файл; изменения требуют повторного развертывания.
  • Нет Helm-чарта. Шлюз запускается как стандартное развертывание, но упакованного чарта нет.

Помимо этих задокументированных ограничений, есть вопросы уровня управления, которые шлюз не предназначен решать:

  • Инвентаризация и состояние серверов MCP. Какие серверы MCP развернуты, какие инструменты они предоставляют и соответствуют ли их заявленные возможности их наблюдаемому поведению — всё это не является задачей шлюза.
  • Применение политики между провайдерами. Политика, которая говорит «производственные базы данных доступны только для чтения для всех агентов», должна применяться к моделям Claude, OpenAI и к собственным моделям. Шлюз управляет доступом к модели Claude; он не управляет ресурсами, к которым эти модели обращаются, или тем, что делают другие модели.
  • Картирование доступа на уровне сессии. Построение графа того, какая сессия агента получила доступ к какой базе данных, хранилищу объектов или API-эндпоинту — и был ли этот доступ только для чтения или read/write — требует корреляции телеметрии, хуков и сигналов инфраструктуры. Шлюз передает OTLP дословно; он не анализирует, что описывает телеметрия.
  • Аудит с защитой от подделки. Шлюз выдает события аудита в формате JSON через stderr. Эти события должны попадать в цепочку блоков с хешированием и только добавлением, если они будут использоваться для пакетов доказательств соответствия.

Модель совместного развертывания

Архитектура намеренно проста: шлюз и платформа управления работают бок о бок в вашей инфраструктуре, каждый выполняя то, в чем он хорош.

  Developer workstations                   Your infrastructure
  ┌─────────────────────┐
  │ Claude Code          │
  │ (v2.1.195+)         │
  └──────┬──────────────┘

         │ OIDC device flow
         │ /v1/messages

  ┌──────────────────────────────┐      ┌────────────────────────────────┐
  │ Claude apps gateway          │      │ Olivares AI (self-hosted)      │
  │                              │      │                                │
  │ • OIDC auth (1 issuer)       │      │ • OTLP receiver (gRPC + HTTP)  │
  │ • Model allowlists           │  ──▶ │ • Claude hooks correlation     │
  │ • Spend limits               │ OTLP │ • gateway.yaml posture         │
  │ • Managed settings           │      │ • Audit event ingest           │
  │ • OTLP fan-out               │      │ • Multi-provider governance    │
  │ • JSON audit on stderr       │  ──▶ │ • MCP server inventory         │
  │                              │ logs │ • Access-edge graph (R/RW)     │
  │ Claude models only.          │      │ • Hash-chained audit ledger    │
  │ OIDC only.                   │      │                                │
  └──────────────────────────────┘      │ ALL providers, ALL surfaces.   │
                                        └────────────────────────────────┘

         Other agent traffic ────────────────────────┘
         (OpenAI, Gemini, vLLM, Ollama, MCP servers, CI pipelines)

Два потока данных соединяют шлюз с платформой:

OTLP множественное распределение. Конфигурация шлюза telemetry.forward_to уже поддерживает назначения OTLP/HTTP. Направьте одно из них на приёмник Olivares OTLP. Атрибут session.id связывает телеметрию, переданную через шлюз, с записями времени сеанса от собственного приёмника хуков коннектора Claude. Идентификационные атрибуты (user.id, user.email, user.groups), добавленные шлюзом, проходят через список разрешённых операторских атрибутов и становятся метками атрибуции на гранях сеансов и образцах затрат — новый код приёмника не требуется.

Загрузка событий аудита. Коннектор claude-apps-gateway считывает JSON-события аудита шлюза. 11 документированных типов событий (config.load, session.mint, session.refresh, device.authorize, device.verify, auth.denied, access.denied, inference, managed.serve, spend.blocked, admin.denied) отображаются на наблюдения SDK: отказы, имеющие отношение к безопасности, становятся находками, события вывода — ребрами доступа, создания сессий — наблюдениями идентичности, а операционные события — счетчиками метрик. Личные данные (PII) в необработанных событиях SHA-256 хэшируются перед тем, как попасть в любое наблюдение; электронные письма и идентификаторы являются псевдонимными.

Коннектор claude-apps-gateway также инвентаризирует сам gateway.yaml: эмитента OIDC, отображения группы IdP на модель, провайдеров уровня выше, назначения OTLP и состояние управления расходами. Этот инвентарь является структурными метаданными — топологией, а не учетными данными.

Результаты анализа состояния конфигурации шлюза

Коннектор выявляет множество находок состояния, полученных из конфигурации шлюза. Это те вещи, которые оператор управления должен знать о развертывании шлюза:

НаходкаСерьезностьЧто обнаруживает
Не настроено назначение OTLPСредняяТелеметрия не пересылается; флот невидим для мониторинга
Нет универсальной политикиВысокийПользователи, не соответствующие ни одной группе IdP, получают все модели и не имеют управляемых настроек
Без лимитов расходаСреднийAPI управления расходами и принудительное исполнение не настроены
Секретные литералы в YAMLВысокийclient_secret, jwt_secret или пароли базы данных, записанные как литералы вместо ссылок ${VAR} или ${file:...}
Долгое время жизни сессии (>12 ч)СреднийЗадержка деактивации: сессия отозванного пользователя остается действительной
PKCE отключенНизкийПоток OIDC не использует Proof Key for Code Exchange
Чувствительные телеметрические сигналыНизкийlogs: true или traces: true на назначении — они могут содержать полные команды bash и пути к файлам

Эти выводы появляются в той же панели состояния, что и выводы каждого другого коннектора. Коннектор MCP может сообщать о несандбоксированном инструменте. Коннектор Bedrock может пометить защитный барьер gap. Коннектор шлюза сообщает о том, что отсутствует универсальная политика. Одна поверхность, один вид.

Как это выглядит в конфигурации

Коннектор Claude запускает приемник OTLP на стандартных портах OpenTelemetry и конечную точку hooks для хуков PreToolUse/PostToolUse от Claude Code. В дополнение к этому, коннектор apps-gateway считывает конфигурацию и поток аудита шлюза. Оба коннектора поставляются под Apache-2.0 и импортируют только из SDK, никогда не из ядра движка.

# olivares.yaml (сокращённо)
connectors:
  - name: olivares.claude
    config:
      grpc_addr: "127.0.0.1:4317"
      http_addr: "127.0.0.1:4318"
      hook_path: "/hooks"
      enforcement: |
        {"rules":[
          {"tool":"Bash","decision":"ask","reason":"shell access requires confirmation"},
          {"resource_kind":"file","mode":"write","decision":"ask"}
        ]}
      gateway: "direct"
      semconv_opt_in: "gen_ai_latest_experimental"

  - name: olivares.claude-apps-gateway
    config:
      config_path: "/etc/claude-gateway/gateway.yaml"
      audit_log_path: "/var/log/claude-gateway/audit.jsonl"

Поле gateway на разъёме Claude помечает каждый образец затрат поверхностью развертывания (direct, bedrock-mantle, bedrock-legacy, vertex, foundry, claude-platform-aws), чтобы FinOps мог разделять расходы по пути поставщика. Поле semconv_opt_in включает нейтральный к поставщикам профиль GenAI для загрузки (привязанный к OpenTelemetry semconv v1.41.1), что означает, что OpenAI, Gemini или любой агент с инструментированием OTel передают ту же карту доступа и конвейер затрат — а не только Claude Code.

Честная позиция

Есть вещи, о которых стоит говорить прямо.

Это не замена шлюза. Прокси-устройство Olivares реализует подмножество опубликованного протокола шлюза Anthropic (обнаружение OAuth, авторизация устройств RFC 8628, доставка управляемых настроек и административный интерфейс лимитов расходов — просмотр, запись и принудительное соблюдение по пользователям, с документированными отклонениями от протокола передачи данных). Оно полезно, когда этого подмножества достаточно. Это не полная замена браузерного потока OIDC шлюза, а семантика групповых расходов намеренно отличается (выигрывает наиболее строгий вариант, а не объединённые правила шлюза). Если шлюз Anthropic соответствует вашим требованиям аутентификации, используйте его.

Разъем только для чтения. Разъем claude-apps-gateway отслеживает конфигурацию шлюза и вывод аудита. Он не изменяет gateway.yaml, не внедряет политики и не перехватывает путь /v1/messages. Это видимость, а не управление.

Olivares AI находится в предрелизной версии. Продукт не сертифицирован по SOC 2, ISO/IEC 27001, Закону ЕС о ИИ или какой-либо другой системе, и аудит не ведется. Он разработан с ориентацией на контрольные цели, которые исследуют эти системы, поэтому он готов к аудиту, когда придет время.

Ценность заключается в комбинации. Команда, которая использует только Claude Code с одним провайдером, с одним IdP и без серверов MCP от других поставщиков, может считать шлюз достаточным. Совместное развертывание оправдано, когда инфраструктура является разнородной: несколько провайдеров, серверы MCP от разных поставщиков, собственные модели, CI-пайплайны, требования к соответствию, охватывающие всю поверхность агентов. Именно здесь «Claude auth» и «управление инфраструктурой» действительно являются разными проблемами.

FAQ

Заменяет ли Olivares AI шлюз приложений Claude?

Нет. Доктрина такова: «и, а не или». Шлюз Anthropic владеет сессией аутентификации Claude Code, маршрутизацией доступа к моделям и выбором вышестоящего уровня. Olivares AI делает это развертывание управляемой поверхностью внутри более широкой контрольной плоскости, которая также охватывает провайдеров, не относящихся к Claude, серверы MCP, размещённые самостоятельно модели и остальную часть вашего агентского окружения. Если вы уже используете шлюз, оставьте его.

Могу ли я запускать Olivares AI без шлюза приложений Claude?

Да. Разъем claude-apps-gateway является необязательным. Основной разъем Claude (connectors/claude) принимает телеметрию OTLP и хуки напрямую из сессий Claude Code, с шлюзом перед ним или без него. Если вы не используете шлюз Anthropic, вы теряете путь аутентификации сессии OIDC, но сохраняете полное управление: инвентаризация сессий, отображение доступа на границе, распределение затрат, применение хуков, состояние MCP и вид нескольких поставщиков.


. Для подробной топологии развертывания смотрите /architecture. Для управления сервером MCP у разных поставщиков смотрите /product/mcp. Для полного обзора продукта смотрите /product.

Похожие материалы

Часто задаваемые вопросы

Заменяет ли Olivares AI шлюз приложений Claude?

Нет. Доктрина такова: «и, а не или». Шлюз Anthropic управляет сессией аутентификации Claude Code, маршрутизацией доступа к моделям и выбором верхнего уровня. Olivares AI делает это развертывание управляемой поверхностью внутри более широкой контрольной плоскости, которая также охватывает поставщиков, не относящихся к Claude, серверы MCP, сам размещаемые модели и остальную часть вашей инфраструктуры агентов. Если вы уже используете шлюз, оставьте его.

Могу ли я запускать Olivares AI без шлюза приложений Claude?

Да. Разъем claude-apps-gateway является необязательным. Основной разъем Claude (connectors/claude) получает телеметрию OTLP и хуки напрямую из сессий Claude Code, с шлюзом спереди или без него. Если вы не используете шлюз Anthropic, вы теряете путь аутентификации сессии OIDC, но сохраняете полный контроль: инвентаризацию сессий, отображение доступа на границе, распределение затрат, обеспечение выполнения хуков, положение MCP и мульти-провайдерский обзор.

Узнайте, до чего могут добраться ваши агенты

Olivares AI — открытая self-hosted платформа для управления вашим парком AI. Разверните её на собственной инфраструктуре и получите карту доступа, которую давно запрашивают ваши команды безопасности и платформ.