claude-apps-gateway.md +351 −0 created
1> ## Documentation Index
2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
3> Use this file to discover all available pages before exploring further.
4
5# Шлюз Claude apps для Amazon Bedrock, Claude Platform на AWS, Google Cloud и Microsoft Foundry
6
7> Запускайте Claude Code через Amazon Bedrock, Claude Platform на AWS, Google Cloud или Microsoft Foundry за самостоятельно размещаемым шлюзом с входом SSO, доступом к моделям по группам и телеметрией OTLP.
8
9<Note>
10 Шлюз Claude apps предназначен для организаций, которые должны — или предпочитают — маршрутизировать вывод через своего поставщика облачных услуг, например для соответствия требованиям [резидентности данных](/docs/ru/claude-apps-gateway-deploy#compliance-posture). Если у вас нет этого требования и вы хотите получить доступ к другим функциям, таким как подготовка SCIM или Claude Code в веб-версии и мобильных приложениях, Claude Enterprise может быть лучшим вариантом. Полное сравнение всех методов развертывания см. на странице [доступности функций](/docs/ru/feature-availability).
11</Note>
12
13Claude apps gateway — это самостоятельно размещаемый сервис, который находится между клиентами Claude Code ваших разработчиков и вашим поставщиком модели. Разработчики входят с помощью вашего корпоративного поставщика удостоверений (IdP) вместо того, чтобы хранить ключи API или учетные данные облака. Шлюз хранит учетные данные вышестоящего уровня, обеспечивает доступ к модели и [управляемые параметры](/docs/ru/permissions#managed-settings) по группам IdP и передает телеметрию использования в ваш собственный стек наблюдаемости.
14
15Он включен в двоичный файл `claude`, поэтому тот же исполняемый файл, который запускает Claude Code на ноутбуке, запускает сервер шлюза с помощью `claude gateway --config gateway.yaml`.
16
17На этой странице рассматривается:
18
19* [Почему Claude apps gateway](#why-claude-apps-gateway), что он добавляет по сравнению с самостоятельным запуском и когда что-то другое подходит лучше
20* [Быстрый старт](#quickstart) с [предварительными требованиями](#prerequisites), который переводит шлюз от нуля к вошедшему разработчику
21* [Подключение разработчиков](#connect-developers), включая установку URL шлюза через управляемые параметры
22* [Доступность и ограничения](#availability-and-limitations), охватывающие какие функции Claude Code работают через шлюз и что поддерживает сервер
23
24Дополнительные страницы углубляются в детали. [Справочник по конфигурации](/docs/ru/claude-apps-gateway-config) охватывает каждый параметр в файле YAML, который пишет быстрый старт, а [руководство по развертыванию](/docs/ru/claude-apps-gateway-deploy) охватывает настройку для каждого IdP, развертывание Kubernetes и Cloud Run, а также операции.
25
26<h2 id="why-claude-apps-gateway">
27 Почему Claude apps gateway
28</h2>
29
30[Обзор шлюза](/docs/ru/gateways) охватывает, что делает шлюз и почему вы бы его запустили. Claude apps gateway — это собственный шлюз Anthropic, встроенный в двоичный файл `claude` и протестированный вместе с каждым выпуском Claude Code, поэтому он пересылает заголовки и поля запроса, которые отправляет Claude Code, без того, чтобы операторы поддерживали отдельный список разрешений. После развёртывания он даёт вам:
31
32* **Учётные данные**: ключ API вышестоящего уровня или учётные данные облака существуют только в вашей инфраструктуре. Разработчики аутентифицируются с помощью корпоративного SSO и получают краткосрочные токены-носители, поэтому отключение происходит в вашем IdP. Отключите пользователя, и его доступ к шлюзу истекает в течение времени жизни сеанса, по умолчанию один час.
33* **Контроль доступа**: ваши группы IdP сопоставляются со списками разрешённых моделей и политиками [управляемых параметров](/docs/ru/permissions#managed-settings). Шлюз обеспечивает доступ к модели на стороне сервера, отклоняя запросы для неразрешённых моделей, и выбирает политику управляемых параметров каждой группы, которую CLI применяет на [уровне управляемых параметров](/docs/ru/settings#settings-precedence). Разные команды получают разные модели, инструменты и разрешения, и разработчик не может переопределить то, что его политика блокирует.
34* **Доставка параметров**: шлюз доставляет управляемые параметры подписанным клиентам сам, занимая место [параметров, управляемых сервером](/docs/ru/server-managed-settings) из консоли администратора claude.ai.
35* **Телеметрия**: каждое настроенное назначение, такое как Datadog, Splunk или ClickHouse, получает [метрики OpenTelemetry Protocol (OTLP)](/docs/ru/monitoring-usage) с подсчётом токенов, моделью, идентификацией пользователя и задержкой по умолчанию, с журналами и трассировками как дополнительные параметры для каждого назначения.
36* **Маршрутизация вышестоящего уровня**: клиенты говорят API Anthropic Messages с шлюзом, и шлюз переводит для каждого вышестоящего уровня, будь то Amazon Bedrock, [Claude Platform on AWS](/docs/ru/claude-platform-on-aws), Agent Platform Google Cloud, Microsoft Foundry или API Anthropic, с отказоустойчивостью между ними. Вы можете менять регионы, поставщиков или порядок отказоустойчивости без того, чтобы разработчики замечали или переконфигурировали.
37
38<Frame>
39 <img src="https://mintcdn.com/claude-code/st9_ZQOFsZa3cKFl/images/claude-gateway-architecture.svg?fit=max&auto=format&n=st9_ZQOFsZa3cKFl&q=85&s=560770d8f49bbd6f1ca7090ed1f13c03" alt="Диаграмма, показывающая клиентов Claude Code, подключающихся по HTTPS с токенами-носителями к самостоятельно размещённому Claude apps gateway внутри вашей инфраструктуры, который входит пользователей в ваш IdP, хранит состояние аутентификации в PostgreSQL, передаёт телеметрию вашему сборщику OTLP и пересылает вывод в Amazon Bedrock, Claude Platform on AWS, Google Cloud, Microsoft Foundry или API Anthropic" width="760" height="320" data-path="images/claude-gateway-architecture.svg" />
40</Frame>
41
42<Note>
43 Плоскость данных самого шлюза не отправляет ничего в инфраструктуру Anthropic, если API Anthropic не является настроенным вышестоящим уровнем. Вы контролируете, куда идут телеметрия, журналы аудита, управляемые параметры и идентификация IdP ваших разработчиков, и шлюз не отправляет ни одно из них в Anthropic. Для оставшегося трафика процесс CLI может отправлять и как его закрыть, см. [Позиция соответствия](/docs/ru/claude-apps-gateway-deploy#compliance-posture).
44</Note>
45
46Для того, какие функции Claude Code работают через шлюз и что сам сервер поддерживает, см. [Доступность и ограничения](#availability-and-limitations) ниже. Для решений, таких как стоимость, обход, запуск нескольких шлюзов и бессерверные платформы, см. [руководство по развёртыванию](/docs/ru/claude-apps-gateway-deploy#deployment).
47
48<h3 id="other-gateway-implementations">
49 Другие реализации шлюза
50</h3>
51
52Если вы уже запускаете шлюз LLM или шлюз API, который соответствует вашим потребностям, продолжайте его использовать; [Другие шлюзы LLM](/docs/ru/llm-gateway) охватывает конфигурирование Claude Code против него.
53
54[Справочник протокола шлюза](/docs/ru/llm-gateway-protocol) документирует контракт, который Claude Code ожидает от любого шлюза: конечные точки, которые он вызывает, заголовки и поля тела для пересылки, и что перестаёт работать, когда они удаляются. Работающий Claude apps gateway служит надмножеством этого контракта в `GET /protocol`, добавляя конечные точки Claude apps gateway для входа SSO, доставки управляемых параметров и телеметрии. Получите его с помощью `curl https://claude-gateway.internal.example.com/protocol` из любого развёрнутого шлюза, такого как тот, который производит [быстрый старт](#quickstart) ниже. Критические изменения протокола объявляются заранее, но неопределённая обратная совместимость не гарантируется.
55
56<h2 id="quickstart">
57 Быстрый старт
58</h2>
59
60Этот быстрый старт проходит минимальный путь: зарегистрируйте клиент OAuth в вашем IdP, напишите `gateway.yaml`, запустите шлюз вместе с Postgres с помощью Docker Compose и проверьте вход от конца к концу. Он использует вышестоящий уровень Amazon Bedrock; Claude Platform on AWS, Agent Platform Google Cloud, Microsoft Foundry и API Anthropic одинаково поддерживаются путём замены блока `upstreams`, как показано в [справочнике конфигурации](/docs/ru/claude-apps-gateway-config#upstreams). В конце у вас есть шлюз, к которому разработчик может выполнить `/login`.
61
62<Note>
63 **Развёртывайте в вашей частной сети.** Claude Code подключается только к шлюзу, адрес которого является частным. Это охранник безопасности, потому что доверенный шлюз может отправлять параметры, которые запускают команды на машинах разработчиков. Поместите шлюз за внутренним балансировщиком нагрузки или VPN и дайте ему имя хоста, которое разрешается только в частные IP-адреса.
64
65 Общедоступные конечные точки шлюза, управляемые Anthropic, являются исключением: `/login` принимает их по `https://`. Это небольшой фиксированный набор шлюзов, которыми управляет сама Anthropic; они не являются вариантом развёртывания, который вы можете выбрать или настроить. Список скомпилирован в Claude Code, поэтому никакая конфигурация не может добавить имя хоста в него и ни один шлюз, который вы размещаете, не соответствует исключению. {/* min-version: 2.1.206 */}До версии 2.1.206 `/login` отклонял эти конечные точки, как и любой другой общедоступный адрес.
66</Note>
67
68<h3 id="prerequisites">
69 Предварительные требования
70</h3>
71
72Имейте это на месте перед началом:
73
74| Вам нужно | Детали |
75| --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
76| Claude Code v2.1.195 или позже | Подкоманда `claude gateway` и поток входа шлюза поставляются в v2.1.195. Более ранние общедоступные сборки их не включают. Как машина, запускающая сервер шлюза, так и машина каждого разработчика должны быть на v2.1.195 или позже; запустите `claude update`, чтобы получить последний выпуск. {/* min-version: 2.1.198 */}[Claude Platform on AWS upstream](/docs/ru/claude-apps-gateway-config#claude-platform-on-aws) требует Claude Code v2.1.198 или позже на сервере шлюза. |
77| Поставщик удостоверений OpenID Connect (OIDC) | Okta, Microsoft Entra ID, Google Workspace, Keycloak или Dex, или любой другой совместимый с OIDC IdP, такой как PingFederate. Шлюз запускает стандартное обнаружение OIDC и поток кода авторизации против него. SAML и LDAP не поддерживаются. |
78| PostgreSQL 14 или позже | Поддерживает поток входа устройства, где обратный вызов браузера пишет, а опрашивающий CLI читает, плюс счётчики ограничения скорости. Любой управляемый Postgres работает, включая самый маленький уровень. Без настроенных ограничений расходов шлюз хранит несколько КБ краткосрочного состояния аутентификации; с [ограничениями расходов](/docs/ru/claude-apps-gateway-spend-limits) он также содержит долговечные таблицы расходов, аудита и идентификации, которые должны быть скопированы. TLS через `?sslmode=require` рекомендуется. |
79| Вышестоящий уровень модели | Учётные данные Amazon Bedrock, учётные данные Claude Platform on AWS, учётные данные Google Cloud, ресурс Microsoft Foundry или ключ API Anthropic. Поддерживаются несколько вышестоящих уровней с отказоустойчивостью. |
80| HTTPS | Шлюз должен быть доступен по `https://` с ноутбуков разработчиков и из любого браузера, используемого для входа; шлюз служит страницей проверки устройства на том же слушателе. Либо предоставьте сертификат TLS через `listen.tls`, либо запустите позади завершающего TLS входа и установите `listen.public_url`. Простое происхождение `http://` принимается только на loopback для локальной разработки. |
81| Адрес частной сети | При `/login` Claude Code требует, чтобы имя хоста или IP-адрес шлюза разрешались только в частные адреса: RFC 1918, CGNAT `100.64.0.0/10`, IPv6 ULA `fc00::/7` или loopback для локальной разработки. Проверка выполняется на каждом разрешённом IP, поэтому если какой-либо адрес, на который разрешается имя, является общедоступным, `/login` отклоняет URL. Если машины разработчиков маршрутизируют HTTPS через корпоративный прокси, вход также требует, чтобы хост прокси разрешался в частные адреса; если это не так, добавьте хост шлюза в `NO_PROXY`, чтобы CLI подключался напрямую. {/* min-version: 2.1.206 */}Общедоступные конечные точки шлюза, управляемые Anthropic, освобождены от проверок частного адреса и прокси: `/login` принимает их по `https://` по точному совпадению имени хоста, поэтому требование частной сети применяется только к шлюзу, который вы размещаете сами. До версии 2.1.206 `/login` отклонял конечную точку, управляемую Anthropic, как и любой другой общедоступный адрес. |
82| Среда выполнения Linux | Сервер шлюза работает только на собственном двоичном файле Linux. macOS работает для локальной разработки. Windows не поддерживается как платформа сервера. |
83
84Сервер шлюза требует собственный двоичный файл `claude`; загрузите закреплённый выпуск, как описано в [Установка Claude Code](/docs/ru/setup). Сервер использует функции среды выполнения, которые недоступны, когда Claude Code работает под Node. Если вы видите `requires the native binary` при загрузке, переключитесь на один из методов автономной установки.
85
86<h3 id="steps">
87 Шаги
88</h3>
89
90<Steps>
91 <Step title="Зарегистрируйте клиент OAuth в вашем IdP">
92 Сначала решите имя хоста шлюза, потому что URI перенаправления должен ему соответствовать. Создайте новое веб-приложение OIDC и установите URI перенаправления на `https://claude-gateway.<your-domain>/oauth/callback`, где хост — это то же значение, которое вы установили как [`listen.public_url`](/docs/ru/claude-apps-gateway-config#listen) на шаге 3. Запишите `client_id` и `client_secret`. Инструкции для каждого IdP находятся в [Настройка поставщика удостоверений](/docs/ru/claude-apps-gateway-deploy#identity-provider-setup).
93 </Step>
94
95 <Step title="Подготовьте базу данных PostgreSQL">
96 Любой Postgres 14 или позже работает, включая самый маленький управляемый уровень. Шлюз запускает свои собственные миграции схемы при загрузке, поэтому пользователю базы данных нужно разрешение `CREATE TABLE`. Если ваша политика безопасности запрещает DDL из ролей приложения, предварительно создайте схему вместо этого; см. [`store`](/docs/ru/claude-apps-gateway-config#store).
97 </Step>
98
99 <Step title="Напишите gateway.yaml">
100 Секреты читаются через расширение `${ENV_VAR}`, поэтому сам файл может находиться в системе управления версиями. Используйте имя хоста `public_url`, которое разрешается в частный IP в вашей сети, потому что `/login` отклоняет общедоступные адреса. Минимальная конфигурация имеет пять разделов, и каждое другое поле имеет значение по умолчанию:
101
102 ```yaml gateway.yaml theme={null}
103 listen:
104 host: 0.0.0.0
105 port: 8080
106 # Требуется позади любого завершающего TLS входа. Используется для IdP
107 # redirect_uri и документа обнаружения.
108 public_url: https://claude-gateway.internal.example.com
109
110 oidc:
111 issuer: https://login.example.com # должен служить /.well-known/openid-configuration
112 client_id: 0oa1example2
113 client_secret: ${OIDC_CLIENT_SECRET}
114 allowed_email_domains: [example.com] # отклонять id_tokens вне вашей организации
115 userinfo_fallback: true # для IdPs, чьи id_token опускают email/groups; безвредно в противном случае
116
117 session:
118 jwt_secret: ${GATEWAY_JWT_SECRET} # openssl rand -base64 32
119 ttl_hours: 1 # также ограничивает задержку отзыва при отключении IdP
120
121 store:
122 postgres_url: ${GATEWAY_POSTGRES_URL} # добавьте ?sslmode=require для управляемого Postgres
123
124 upstreams:
125 - provider: bedrock
126 region: us-east-1
127 auth: {} # пусто: цепь учётных данных AWS по умолчанию
128 # (IRSA, роль задачи EC2/ECS, переменные окружения, ~/.aws)
129
130 # Модели переводятся для каждого вышестоящего уровня автоматически. Встроенный каталог
131 # сопоставляет claude-opus-4-8 с us.anthropic.claude-opus-4-8 и так далее для каждого
132 # поддерживаемого Bedrock модели Claude. Установите false и добавьте список `models:` для
133 # раскрытия только определённых моделей.
134 auto_include_builtin_models: true
135 ```
136
137 Эта конфигурация достаточна для работающего цикла входа с каталогом моделей Bedrock по умолчанию. После того как она запущена, добавьте RBAC для каждой группы и управляемые параметры через [`managed.policies`](/docs/ru/claude-apps-gateway-config#managed), телеметрию fan-out через [`telemetry`](/docs/ru/claude-apps-gateway-config#telemetry), и многоуровневую отказоустойчивость, ARN подготовленной пропускной способности или не-US регионы через [`models`](/docs/ru/claude-apps-gateway-config#models).
138
139 <Note>
140 Вышестоящий уровень Bedrock нуждается в принципе AWS с `bedrock:InvokeModel` и `bedrock:InvokeModelWithResponseStream` как на ARN `inference-profile/us.anthropic.*`, так и на базовых ARN `foundation-model/anthropic.*`, и доступ к модели включён в консоли Bedrock для моделей Claude, которые вы хотите. Предоставьте учётные данные с IRSA на EKS, ролью задачи ECS или профилем экземпляра EC2, а не статическими ключами. [Справочник `upstreams`](/docs/ru/claude-apps-gateway-config#upstreams) содержит полные детали IAM, матрицу учётных данных между облаками и блоки `auth` для других поставщиков.
141 </Note>
142 </Step>
143
144 <Step title="Запустите его">
145 Создайте образ контейнера вокруг двоичного файла `claude`, который соответствует [требованиям образа](/docs/ru/claude-apps-gateway-deploy#container-image), затем запустите его вместе с Postgres:
146
147 ```yaml docker-compose.yaml theme={null}
148 services:
149 gateway:
150 image: <your-registry>/claude-gateway:<version>
151 ports: ["8080:8080"]
152 volumes: ["./gateway.yaml:/etc/claude/gateway.yaml:ro"]
153 environment:
154 OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET}
155 GATEWAY_JWT_SECRET: ${GATEWAY_JWT_SECRET}
156 GATEWAY_POSTGRES_URL: postgres://gw:pw@postgres/gateway
157 # Учётные данные AWS: в производстве опустите их и используйте роль экземпляра
158 # вместо этого. Для локального тестирования Compose передайте свои собственные:
159 AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
160 AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
161 AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN}
162 depends_on:
163 postgres:
164 condition: service_healthy
165 postgres:
166 image: postgres:16-alpine
167 environment: { POSTGRES_USER: gw, POSTGRES_PASSWORD: pw, POSTGRES_DB: gateway }
168 healthcheck:
169 test: ["CMD-SHELL", "pg_isready -U gw"]
170 interval: 5s
171 volumes: ["pgdata:/var/lib/postgresql/data"]
172 volumes: { pgdata: }
173 ```
174
175 Шлюз — это один двоичный файл Linux, который читает конфигурацию, запускает обнаружение OIDC против вашего IdP, применяет миграции схемы Postgres, создаёт клиентов вышестоящего уровня и начинает слушать. Загрузка закрывается для конфигурации, подключения Postgres с тайм-аутом 5 секунд, обнаружения OIDC и конструкции клиента вышестоящего уровня. Если какой-либо из них недоступен или неправильно настроен, шлюз выходит с ошибкой, а не служит трафику в деградированном состоянии.
176
177 Успешная загрузка не проверяет путь вывода, потому что учётные данные экземпляра Bedrock и Agent Platform разрешаются при первом запросе, а не при загрузке.
178
179 Смотрите stderr для последовательности загрузки. Строки журнала используют формат `[gateway] <timestamp> <level> <message>`, события аудита — это однострочный JSON с полем `evt`, и баннер запуска, опущенный ниже, печатается между строками миграции и прослушивания. Вы должны увидеть, по порядку:
180
181 ```text theme={null}
182 {"ts":"2026-06-10T17:03:21.114Z","evt":"config.load","path":"/etc/claude/gateway.yaml","sha256":"…"}
183 [gateway] 2026-06-10T17:03:21.408Z info migration 1 applied
184 [gateway] 2026-06-10T17:03:21.512Z info claude gateway listening on http://0.0.0.0:8080
185 ```
186
187 Если загрузка выходит перед строкой `claude gateway listening on`, последняя строка stderr называет проблему:
188
189 * недоступный Postgres
190 * роль Postgres без разрешения DDL
191 * недоступный или недействительный документ обнаружения OIDC
192 * нарушение схемы конфигурации с путём нарушающего поля
193
194 Исправьте это и перезагрузитесь.
195
196 Если у вас уже есть завершающий TLS вход, пропустите Compose и запустите двоичный файл напрямую с помощью `claude gateway --config gateway.yaml`. Установите `public_url` на происхождение входа и привяжите `listen` к адресу loopback или внутри кластера.
197 </Step>
198
199 <Step title="Проверьте поверхность аутентификации">
200 Три проверки подтверждают, что шлюз может аутентифицировать реального пользователя перед тем, как вы передадите его разработчику.
201
202 Примеры используют общедоступный URL шлюза; для локальной установки Compose без входа замените `http://localhost:8080` в первых двух проверках. Третья проверка открывает `verification_uri_complete`, который построен из `public_url`, поэтому для локального Compose установите `public_url: http://localhost:8080` в `gateway.yaml` и добавьте `http://localhost:8080/oauth/callback` как второй URI перенаправления на клиент OAuth из шага 1, потому что шлюз строит IdP `redirect_uri` из `public_url`. Ссылка проверки затем открывается в вашем локальном браузере.
203
204 В Windows PowerShell запустите `curl.exe`; голый `curl` — это псевдоним для `Invoke-WebRequest` и отклоняет эти флаги.
205
206 Сначала получите документ обнаружения, который подтверждает, что шлюз работает, конфигурация действительна и все проверки загрузки прошли:
207
208 ```bash theme={null}
209 curl -s https://claude-gateway.internal.example.com/.well-known/oauth-authorization-server | jq
210 ```
211
212 ```json theme={null}
213 {
214 "issuer": "https://claude-gateway.internal.example.com",
215 "device_authorization_endpoint": "…/oauth/device_authorization",
216 "token_endpoint": "…/oauth/token",
217 "grant_types_supported": ["urn:ietf:params:oauth:grant-type:device_code", "refresh_token"]
218 }
219 ```
220
221 Ответ включает дополнительные поля, такие как `response_types_supported` и `scopes_supported`.
222
223 Во-вторых, запросите авторизацию устройства, которая подтверждает, что поток входа устройства работает и Postgres доступен и доступен для записи:
224
225 ```bash theme={null}
226 curl -s -X POST https://claude-gateway.internal.example.com/oauth/device_authorization | jq
227 ```
228
229 ```json theme={null}
230 {
231 "device_code": "…",
232 "user_code": "WDJB-MJHT",
233 "verification_uri": "https://claude-gateway.internal.example.com/device",
234 "verification_uri_complete": "https://claude-gateway.internal.example.com/device?user_code=WDJB-MJHT",
235 "expires_in": 600,
236 "interval": 5
237 }
238 ```
239
240 В-третьих, протестируйте ветку браузера, открыв `verification_uri_complete` в браузере и подтвердив код. Вы должны быть перенаправлены на страницу входа вашего IdP и после входа приземлиться обратно на шлюз с подтверждением входа.
241
242 Используйте первую неудачную проверку для определения проблемы:
243
244 * **Первая проверка не удаётся**: загрузка не завершена; проверьте stderr
245 * **Вторая проверка не удаётся**: Postgres недоступен из шлюза или роль не может писать; проверьте строку подключения и разрешения
246 * **Третья проверка не достигает IdP**: проверьте, что URI перенаправления IdP точно соответствует `https://<gateway>/oauth/callback`
247 * **Третья проверка достигает IdP, но отскакивает с ошибкой**: прочитайте журнал аудита шлюза, который записывает каждый отказ в аутентификации с причиной, такой как `email domain not allowed`
248 </Step>
249
250 <Step title="Войдите разработчик">
251 Этот последний шаг происходит на машине разработчика, а не на сервере. Установите `forceLoginMethod` на `"gateway"` и `forceLoginGatewayUrl` на `public_url` вашего шлюза в [файле управляемых параметров](/docs/ru/settings#settings-files) этой машины, затем запустите `/login`, нажмите Enter на экране **Cloud gateway** и завершите вход в браузер. [Установка URL шлюза](#set-the-gateway-url) ниже охватывает распределение обоих ключей в масштабе.
252 </Step>
253</Steps>
254
255<h2 id="connect-developers">
256 Подключение разработчиков
257</h2>
258
259Разработчики подключаются со своих собственных ноутбуков с одним входом в браузер, используя свою корпоративную рабочую учётную запись. Им не нужна учётная запись claude.ai, ключ API или подписка, потому что запросы к модели идут через шлюз, используя учётные данные вышестоящего уровня организации. Подключение управляется [управляемыми параметрами на стороне клиента](/docs/ru/claude-apps-gateway-config#client-side-managed-settings), которые вы отправляете через MDM, поэтому нет ручной настройки на стороне разработчика; этот раздел охватывает то, что настраивает администратор.
260
261CLI отпечатывает сертификат TLS листа шлюза при первом подключении и закрепляет его для каждого имени хоста. Опубликуйте ожидаемый отпечаток SHA-256 вместе с URL шлюза, чтобы разработчики имели что-то для сравнения. Получите отпечаток из файла сертификата с помощью `openssl x509 -noout -fingerprint -sha256 -in cert.pem`; подсказка `/login` показывает первые 16 символов дайджеста как строчные шестнадцатеричные без разделителей.
262
263Когда сертификат ротируется, каждый разработчик видит подсказку доверия снова, поэтому рассматривайте ротации как запланированное событие и переопубликуйте отпечаток.
264
265После входа [средство выбора модели](/docs/ru/model-config) показывает модели в списке разрешённых `availableModels` разработчика, управляемые параметры применяются при запуске и обновляются ежечасно, и телеметрия маршрутизируется в ваш сборщик. Сеансы молча обновляются перед истечением `ttl_hours`, и неудачное обновление после отключения IdP запрашивает повторный вход.
266
267<h3 id="set-the-gateway-url">
268 Установка URL шлюза
269</h3>
270
271Установите оба ключа в файл [управляемых параметров](/docs/ru/settings#settings-files) для каждой ОС, который вы развёртываете через MDM или непосредственно на диск, и `/login` открывается прямо на экране **Cloud gateway** с заполненным URL:
272
273```json theme={null}
274{
275 "forceLoginMethod": "gateway",
276 "forceLoginGatewayUrl": "https://claude-gateway.internal.example.com"
277}
278```
279
280Разработчик нажимает Enter для подключения. Подсказка отпечатка TLS при первом подключении всё ещё появляется.
281
282Нет опции шлюза в средстве выбора входа для разработчика, чтобы выбрать вручную, и `forceLoginGatewayUrl` игнорируется в собственных файлах параметров разработчика. `forceLoginMethod` один, без URL, оставляет разработчика с сообщением "Свяжитесь с администратором IT". Оба ключа принадлежат файлу, который вы отправляете на машины, а не в блок `managed.policies[].cli` шлюза, который достигает только уже подключённых клиентов.
283
284<h3 id="ci-pipelines-and-remote-machines">
285 Конвейеры CI и удалённые машины
286</h3>
287
288Нет потока токена сервиса для автоматических конвейеров. Вход шлюза всегда запускает поток устройства браузера, поэтому задача CI без разработчика для одобрения входа не может аутентифицироваться; настройте их непосредственно против вашего поставщика.
289
290Однажды разработчик вошёл, каждый вызов Claude Code на этой машине использует сеанс шлюза, включая неинтерактивные запуски `claude -p` и сеансы, запущенные Agent SDK, и [политика шлюза применяется ко всем из них](/docs/ru/claude-apps-gateway-config#managed).
291
292Поток устройства отделяет опрашивающий CLI от одобряющего браузера, поэтому удалённый ящик разработки без дисплея всё ещё работает: разработчик запускает `/login` по SSH на удалённой машине и открывает ссылку проверки в браузере на своём ноутбуке.
293
294<h3 id="what’s-enforced-on-developers">
295 Что применяется к разработчикам
296</h3>
297
298Эти гарантии применяются к каждому подписанному сеансу шлюза.
299
300* **Доступ к модели**: запросы для моделей, которые политика не предоставляет, возвращают 400, и средство выбора `/model` фильтруется в список разрешённых `availableModels` политики. Установите [`enforceAvailableModels: true`](/docs/ru/model-config#default-model-behavior) в политике, чтобы опция Default разрешалась в модель внутри `availableModels` вместо встроенного значения по умолчанию Claude Code; без неё Default остаётся выбираемым и отклоняется во время запроса, если эта модель не предоставлена.
301* **Назначение телеметрии**: когда [пересылка телеметрии](/docs/ru/claude-apps-gateway-config#telemetry) настроена, конечная точка экспорта OTLP закреплена на шлюзе, и конфигурация, отправленная шлюзом, переопределяет локально установленные переменные `OTEL_*`.
302* **Учётные данные**: токен шлюза — это единственное учётное данные сеанса. `ANTHROPIC_AUTH_TOKEN`, `ANTHROPIC_API_KEY`, `apiKeyHelper` и любой более ранний вход claude.ai игнорируются при входе, поэтому разработчикам не нужно сначала выходить из claude.ai.
303* **Управляемые параметры**: заблокированные ключи не могут быть переопределены локально. CLI применяет политику при запуске и при каждом ежечасном опросе.
304* **Запуск**: подписанные сеансы выходят при запуске с ошибкой примерно через 10 секунд, когда шлюз недоступен, а не запускаются без своих параметров.
305* **Отключение**: сеанс, чей пользователь отключён в IdP, истекает в течение `ttl_hours`, когда следующее обновление не удаётся.
306
307<h3 id="what-the-organization-can-see">
308 Что может видеть организация
309</h3>
310
311Телеметрия использования несёт идентификацию разработчика, подсчёт токенов, модель и задержку в сборщик организации. Шлюз не регистрирует и не хранит содержимое подсказки или завершения. Собирается ли более богатая телеметрия, такая как журналы и трассировки, которые могут включать команды и пути файлов, — это [выбор организации для каждого назначения](/docs/ru/claude-apps-gateway-config#telemetry).
312
313<h2 id="availability-and-limitations">
314 Доступность и ограничения
315</h2>
316
317Таблица охватывает, какие функции Claude Code работают, когда разработчики подключаются через шлюз, и что сам сервер шлюза поддерживает. Где что-то не поддерживается, столбец Notes даёт альтернативу.
318
319Шлюз доставляет значения [`anthropic-beta`](https://platform.claude.com/docs/en/api/beta-headers), которые CLI отправляет каждому вышестоящему уровню, поэтому операторы не поддерживают список разрешений бета. Для Amazon Bedrock, который игнорирует заголовок, шлюз перемещает значения в поле `anthropic_beta` тела запроса; другие вышестоящие уровни получают заголовок как отправленный.
320
321Набор бета сеанса шлюза CLI опускает бета-версии только первой стороны и бета-версию extended-cache-ttl, поэтому эти строки ниже показаны как недоступные.
322
323| Функция | Статус | Примечания |
324| ---------------------------------------------------------------------------------------------------------------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
325| Пересылка вывода (Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform, Microsoft Foundry, Anthropic) | Доступно | С переводом модели для каждого вышестоящего уровня и отказоустойчивостью. Вышестоящий уровень Amazon Bedrock использует конечную точку `bedrock-runtime` и цепь учётных данных AWS по умолчанию; конечная точка Amazon Bedrock [Mantle](/docs/ru/amazon-bedrock#use-the-mantle-endpoint) не является поддерживаемым вышестоящим уровнем. [Вышестоящий уровень Claude Platform on AWS](/docs/ru/claude-apps-gateway-config#claude-platform-on-aws) требует Claude Code v2.1.198 или более поздней версии на сервере шлюза. |
326| Доступ к модели и управляемые параметры по группе IdP | Доступно | Доступ к модели применяется на стороне сервера; управляемые параметры доставляются для каждой группы IdP и применяются CLI на [уровне управляемых параметров](/docs/ru/settings#settings-precedence) |
327| Телеметрия fan-out (OTLP/HTTP) | Доступно | Идентификация-отмечена для каждого экспорта; оба кодирования protobuf и JSON |
328| Поставщики идентификации OIDC | Доступно | Любой совместимый с OIDC IdP; шлюз запускает стандартное обнаружение OIDC и поток авторизации-кода. См. [Настройка поставщика идентификации](/docs/ru/claude-apps-gateway-deploy#identity-provider-setup) для конфигурации для каждого IdP |
329| Ограничения расходов для каждого пользователя и группы | Доступно | См. [Ограничения расходов](/docs/ru/claude-apps-gateway-spend-limits) |
330| Веб-поиск на стороне сервера | Недоступно | CLI не может видеть, какого поставщика вышестоящего уровня маршрутизирует шлюз, поэтому он не может проверить поддержку веб-поиска и отключает WebSearch на сеансах шлюза |
331| Стандартное кэширование подсказок | Доступно | Точки разрыва `cache_control` пересылаются каждому вышестоящему уровню |
332| TTL кэша 1 час | Недоступно | CLI опускает бета-версию extended-cache-ttl на сеансах шлюза, потому что не каждый вышестоящий уровень, который может маршрутизировать шлюз, поддерживает TTL 1 час, поэтому кэширование подсказок через шлюз использует TTL 5 минут; см. примечание выше о бета-заголовке |
333| Режим Auto | Доступно | Следует [правилам поставщика третьей стороны](/docs/ru/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry): только модели, имеющие право на поставщиков третьей стороны, могут его использовать. До версии v2.1.207 режим auto на сеансах шлюза требовал установки `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, доставляемой через блок `env` управляемой политики |
334| Оптимизации только первой стороны, такие как глобальная область кэша и инструменты, эффективные по токенам | Недоступно | CLI не включает их на сеансах шлюза; см. примечание выше о бета-заголовке |
335| OTLP/gRPC | Не поддерживается | Только OTLP по HTTP |
336| SAML, LDAP и другая аутентификация не-OIDC | Не поддерживается | Только OIDC. Фронт с мостом OIDC, если необходимо |
337| Мультитенантность (несколько издателей OIDC) | Не поддерживается | Один издатель на шлюз. Запустите отдельные экземпляры |
338| Сервер Windows | Не поддерживается | Развёртывайте на Linux. macOS только для локальной разработки |
339| Helm chart | Недоступно | Шлюз работает как стандартное развёртывание без состояния; см. [руководство по развёртыванию](/docs/ru/claude-apps-gateway-deploy#kubernetes) |
340| Пользовательский интерфейс администратора | Недоступно | Конфигурация — это файл YAML; переразвёртывайте, чтобы изменить его |
341
342<h2 id="next-steps">
343 Следующие шаги
344</h2>
345
346Быстрый старт оставляет вас с минимальной конфигурацией, работающей под Docker Compose. Чтобы пойти дальше:
347
348* Расширьте `gateway.yaml` за пределы минимальной конфигурации, например, чтобы добавить RBAC для каждой группы, многоуровневую отказоустойчивость или назначения телеметрии. [Справочник конфигурации](/docs/ru/claude-apps-gateway-config) охватывает каждый параметр.
349* Перейдите от Compose к развёртыванию в производстве на Kubernetes или Cloud Run, правильно настройте ваш IdP и проверьте модель безопасности. [Руководство по развёртыванию и операциям](/docs/ru/claude-apps-gateway-deploy) охватывает настройку для каждого IdP, требования к образу контейнера, зонды здоровья и устранение неполадок.
350* Установите ограничения расходов для отдельных разработчиков или групп, чтобы неконтролируемая рабочая нагрузка не могла потребить всё ваше обязательство. [Ограничения расходов](/docs/ru/claude-apps-gateway-spend-limits) охватывает API администратора и как работает применение.
351* Для полного отработанного примера на Google Cloud с Cloud Run, Cloud SQL и Secret Manager см. [Развёртывание на Google Cloud](/docs/ru/claude-apps-gateway-on-gcp).