Claude apps gateway untuk Amazon Bedrock, Claude Platform di AWS, Google Cloud, dan Microsoft Foundry
Jalankan Claude Code melalui Amazon Bedrock, Claude Platform di AWS, Google Cloud, atau Microsoft Foundry di balik gateway yang di-host sendiri dengan SSO sign-in, akses model per-grup, dan telemetri OTLP.
[!NOTE]
Claude apps gateway dirancang untuk organisasi yang harus — atau lebih suka — merutekan inferensi melalui penyedia cloud mereka sendiri, misalnya untuk memenuhi persyaratan residensi data. Jika Anda tidak memiliki persyaratan ini, dan menginginkan akses ke fitur lain seperti penyediaan SCIM atau Claude Code di web dan mobile, Claude Enterprise mungkin lebih cocok. Lihat halaman ketersediaan fitur untuk perbandingan lengkap semua metode penyebaran.
Claude Code menggunakan satu sign-in dalam satu waktu: sign-in gateway menggantikan login Claude for Teams atau Enterprise. Sesi gateway tidak mengambil pengaturan terkelola server yang Anda tetapkan di konsol admin claude.ai, jadi kirimkan pengaturan tersebut dari blok
managedgateway. Jangan sertakanforceLoginMethoddanforceLoginOrgUUIDdalam blok tersebut, atau beberapa sesi yang sudah masuk akan keluar saat startup. Lihat Ketersediaan dan keterbatasan untuk mengetahui apa saja yang hilang dari sesi gateway.
Claude apps gateway adalah layanan yang di-host sendiri yang berada di antara klien Claude Code pengembang Anda dan penyedia model Anda. Pengembang masuk dengan penyedia identitas perusahaan Anda (IdP) alih-alih menyimpan kunci API atau kredensial cloud. Gateway menyimpan kredensial upstream, memberlakukan akses model dan pengaturan terkelola berdasarkan grup IdP, dan meneruskan telemetri penggunaan ke tumpukan observabilitas Anda sendiri.
Ini disertakan dalam biner claude, jadi executable yang sama yang menjalankan Claude Code di laptop menjalankan server gateway dengan claude gateway --config gateway.yaml.
Halaman ini mencakup:
- Mengapa Claude apps gateway, apa yang ditambahkannya dibandingkan menjalankan milik Anda sendiri, dan kapan sesuatu yang lain lebih cocok
- Quickstart dengan prasyarat yang membawa gateway dari nol ke pengembang yang masuk
- Menghubungkan pengembang, termasuk menetapkan URL gateway melalui pengaturan terkelola
- Ketersediaan dan keterbatasan mencakup fitur Claude Code mana yang bekerja melalui gateway dan apa yang didukung server
Halaman pendamping menggali lebih dalam. Referensi konfigurasi mencakup setiap opsi dalam file YAML yang ditulis quickstart, dan panduan penyebaran mencakup penyiapan per-IdP, penyebaran Kubernetes dan Cloud Run, serta operasi.
Mengapa Claude apps gateway
Gambaran umum gateway mencakup apa yang dilakukan gateway dan mengapa Anda akan menjalankannya. Claude apps gateway adalah gateway Anthropic sendiri, dibangun ke dalam biner claude dan diuji bersama setiap rilis Claude Code, sehingga ia meneruskan nilai anthropic-beta dan bidang permintaan yang dikirim Claude Code tanpa operator perlu memelihara allowlist terpisah. Setelah di-deploy, ia memberi Anda:
- Kredensial: kunci API upstream atau kredensial cloud hanya ada di infrastruktur Anda. Pengembang melakukan autentikasi dengan SSO perusahaan dan menerima token bearer berumur pendek, jadi offboarding terjadi di IdP Anda. Hapus penyediaan pengguna dan akses gateway mereka kedaluwarsa dalam masa pakai sesi, satu jam secara default.
- Kontrol akses: grup IdP Anda dipetakan ke allowlist model, kebijakan pengaturan terkelola, dan upstream. Gateway memberlakukan akses model di sisi server, menolak permintaan untuk model yang tidak diberikan, dan memilih kebijakan pengaturan terkelola setiap grup, yang diterapkan CLI di tingkat pengaturan terkelola. Tim yang berbeda mendapatkan model, tool, dan izin yang berbeda, dan pengembang tidak dapat menimpa apa yang dikunci kebijakan mereka.
- Pengiriman pengaturan: gateway sendiri mengirimkan pengaturan terkelola ke klien yang sudah masuk, menggantikan pengaturan terkelola server dari konsol admin claude.ai.
- Telemetri: setiap tujuan yang dikonfigurasi menerima metrik OpenTelemetry Protocol (OTLP) dengan hitungan token, model, identitas pengguna, dan latensi secara default, dengan log dan jejak sebagai opt-in per-tujuan.
- Perutean upstream: klien berbicara API Pesan Anthropic ke gateway, dan gateway menerjemahkan untuk setiap upstream, baik Amazon Bedrock, Claude Platform on AWS, Agent Platform Google Cloud, Microsoft Foundry, atau API Anthropic, dengan failover di antara mereka. Anda dapat mengubah wilayah, penyedia, atau urutan failover tanpa pengembang menyadari atau mengonfigurasi ulang.
[!NOTE]
Bidang data gateway sendiri tidak mengirim apa pun ke infrastruktur Anthropic kecuali API Anthropic adalah upstream yang dikonfigurasi. Anda mengontrol ke mana telemetri, log audit, pengaturan terkelola, dan identitas IdP pengembang Anda pergi, dan gateway tidak mengirimkan satu pun dari semua itu ke Anthropic. Untuk lalu lintas lain yang dapat dikirim proses CLI dan cara menutupnya, lihat Compliance posture.
Untuk fitur Claude Code mana yang bekerja melalui gateway dan apa yang didukung server itu sendiri, lihat Ketersediaan dan keterbatasan di bawah. Untuk keputusan seperti biaya, bypass, menjalankan beberapa gateway, dan platform serverless, lihat panduan deployment.
Implementasi gateway lainnya
Jika Anda sudah menjalankan gateway LLM atau gateway API yang memenuhi kebutuhan Anda, terus gunakan; Gateway LLM lainnya mencakup konfigurasi Claude Code terhadapnya.
Panduan kompatibilitas gateway mendokumentasikan apa yang diharapkan Claude Code dari gateway apa pun: endpoint yang dipanggilnya, header dan bidang body yang harus diteruskan, dan apa yang berhenti bekerja ketika semua itu dihapus. Claude apps gateway yang berjalan juga menyajikan referensi protokolnya sendiri di GET /protocol, yang menjelaskan endpoint yang diekspos ke klien Claude Code: SSO sign-in, inferensi, pengiriman pengaturan terkelola, penemuan model, dan telemetri. Ambil dengan curl https://claude-gateway.internal.example.com/protocol dari gateway apa pun yang sudah di-deploy, seperti yang dihasilkan mulai cepat di bawah.
Perubahan breaking pada protokol diumumkan sebelumnya, tetapi kompatibilitas mundur tanpa batas waktu tidak dijamin.
[!NOTE]
Token sign-in gateway mengidentifikasi pengembang yang menyetujui sign-in, bukan program yang menggunakannya. Claude Code melakukan sign-in tanpa client ID atau secret miliknya sendiri, sehingga gateway tidak memiliki cara untuk memverifikasi program mana yang sedang melakukan sign-in. Klien mana pun dapat menetapkan
User-Agentdan bidang permintaan lainnya, jadi gunakan semua itu untuk perutean atau metrik, bukan sebagai bukti bahwa suatu permintaan berasal dari Claude Code.
Quickstart
Quickstart ini berjalan di jalur minimal: daftarkan klien OAuth di IdP Anda, tulis gateway.yaml, jalankan gateway bersama Postgres dengan Docker Compose, dan verifikasi sign-in end to end. Ini menggunakan upstream Amazon Bedrock; Claude Platform on AWS, Agent Platform Google Cloud, Microsoft Foundry, dan API Anthropic sama-sama didukung dengan menukar blok upstreams seperti yang ditunjukkan dalam referensi konfigurasi. Di akhir Anda memiliki gateway yang dapat /login pengembang.
[!NOTE]
Terapkan di jaringan pribadi Anda. Claude Code hanya terhubung ke gateway yang alamatnya pribadi. Ini adalah penjaga keamanan, karena gateway yang dipercaya dapat mendorong pengaturan yang menjalankan perintah pada mesin pengembang. Letakkan gateway di balik load balancer internal atau VPN dan berikan nama host yang hanya diselesaikan ke IP pribadi. Jika jaringan internal Anda bernomor dari ruang IPv4 publik yang dimiliki organisasi Anda, lihat Izinkan gateway pada ruang alamat publik yang Anda miliki.
Prasyarat
Miliki ini sebelum Anda mulai:
| Anda membutuhkan | Detail |
|---|---|
| Claude Code v2.1.195 atau lebih baru | Subperintah claude gateway dan alur sign-in gateway dikirim di v2.1.195. Build publik sebelumnya tidak menyertakannya. Baik mesin yang menjalankan server gateway maupun mesin setiap pengembang harus pada v2.1.195 atau lebih baru; jalankan claude update untuk mendapatkan rilis terbaru. Upstream Claude Platform on AWS memerlukan Claude Code v2.1.198 atau lebih baru di server gateway. |
| Penyedia identitas OpenID Connect (OIDC) | Okta, Microsoft Entra ID, Google Workspace, Keycloak, atau Dex, atau IdP yang sesuai dengan OIDC lainnya seperti PingFederate. Gateway menjalankan penemuan OIDC standar dan alur kode otorisasi terhadapnya. SAML dan LDAP tidak didukung. |
| PostgreSQL 11 atau lebih baru | Mendukung alur sign-in perangkat dan penghitung rate limit. Layanan PostgreSQL terkelola berfungsi, termasuk tingkat terkecil; lihat database mana yang didukung. Dengan batas pengeluaran, ia juga menyimpan tabel pengeluaran, audit, dan identitas yang tahan lama yang harus dicadangkan. TLS melalui ?sslmode=require direkomendasikan. PostgreSQL 11, 12, dan 13 memerlukan Claude Code v2.1.290 atau lebih baru di server gateway. Proyek PostgreSQL tidak lagi memelihara versi tersebut, jadi gunakan versi yang lebih baru jika memungkinkan. |
| Model upstream | Kredensial Amazon Bedrock, kredensial Claude Platform on AWS, kredensial Google Cloud, sumber daya Microsoft Foundry, atau kunci API Anthropic. Beberapa upstream didukung dengan failover. |
| HTTPS | Gateway harus dapat dijangkau melalui https:// dari laptop pengembang dan dari browser apa pun yang digunakan untuk sign-in; gateway melayani halaman verifikasi perangkat pada pendengar yang sama. Berikan sertifikat TLS melalui listen.tls atau jalankan di balik ingress yang menghentikan TLS, dan atur listen.public_url ke asal eksternal dalam kedua kasus. Asal http:// biasa hanya diterima ketika host gateway adalah loopback: localhost, 127.0.0.1, atau ::1. |
| Alamat jaringan pribadi | Di /login, Claude Code memerlukan nama host atau alamat IP gateway untuk diselesaikan hanya ke alamat pribadi: RFC 1918, link-local, CGNAT 100.64.0.0/10, IPv6 ULA fc00::/7, atau loopback. Untuk gateway yang Anda hosting, alamat publik apa pun di luar blok yang Anda deklarasikan ditolak; lihat model ancaman dalam panduan penyebaran. Jika mesin pengembang merutekan HTTPS melalui proxy perusahaan, sign-in juga memerlukan host proxy untuk diselesaikan ke alamat pribadi; jika tidak, tambahkan host gateway ke NO_PROXY sehingga CLI terhubung langsung. Jika jaringan internal Anda bernomor dari ruang IPv4 publik yang dimiliki organisasi Anda, deklarasikan blok-blok tersebut sehingga /login menerima gateway di sana. |
| Runtime Linux | Server gateway hanya berjalan pada biner Linux asli. macOS berfungsi untuk pengembangan lokal. Windows tidak didukung sebagai platform server. |
Langkah-langkah
1. Daftarkan klien OAuth di IdP Anda
Tentukan nama host gateway terlebih dahulu, karena URI pengalihan harus cocok dengannya. Buat aplikasi web OIDC baru dan atur URI pengalihan ke https://claude-gateway.<your-domain>/oauth/callback, di mana host adalah nilai yang sama yang Anda atur sebagai listen.public_url di langkah 3. Catat client_id dan client_secret. Instruksi per-IdP ada di Identity provider setup.
2. Sediakan database PostgreSQL
Gunakan PostgreSQL 11 atau lebih baru. Tingkat terkelola terkecil sudah cukup. Gateway menjalankan migrasi skema sendiri saat boot, jadi peran database memerlukan hak untuk membuat dan mengubah tabel; lihat store.
3. Tulis gateway.yaml
Rahasia dibaca melalui ekspansi ${ENV_VAR} sehingga file itu sendiri dapat hidup dalam kontrol versi. Gunakan nama host public_url yang diselesaikan ke IP pribadi di jaringan Anda, karena /login menolak alamat publik. Konfigurasi minimal memiliki lima bagian, dan setiap bidang lainnya memiliki default:
listen:
host: 0.0.0.0
port: 8080
# Diperlukan kecuali host adalah alamat loopback. Digunakan untuk IdP
# redirect_uri dan dokumen penemuan.
public_url: https://claude-gateway.internal.example.com
oidc:
issuer: https://login.example.com # harus melayani /.well-known/openid-configuration
client_id: 0oa1example2
client_secret: ${OIDC_CLIENT_SECRET}
allowed_email_domains: [example.com] # tolak id_tokens di luar organisasi Anda
userinfo_fallback: true # untuk IdP yang id_token-nya menghilangkan email/groups; tidak berbahaya sebaliknya
session:
jwt_secret: ${GATEWAY_JWT_SECRET} # openssl rand -base64 32
ttl_hours: 1 # juga membatasi latensi revokasi pada deprovisi IdP
store:
postgres_url: ${GATEWAY_POSTGRES_URL} # tambahkan ?sslmode=require untuk Postgres terkelola
upstreams:
- provider: bedrock
region: us-east-1
auth: {} # kosong: rantai kredensial default AWS
# (IRSA, peran tugas EC2/ECS, variabel env, ~/.aws)
# Model diterjemahkan per upstream secara otomatis. Katalog bawaan
# memetakan claude-opus-4-8 ke us.anthropic.claude-opus-4-8 dan seterusnya untuk setiap
# model Claude yang didukung Bedrock. Atur false dan tambahkan daftar `models:` untuk
# mengekspos hanya model tertentu.
auto_include_builtin_models: true
Konfigurasi ini cukup untuk loop sign-in yang berfungsi dengan katalog model Bedrock default. Setelah berjalan, tambahkan RBAC per-grup dan pengaturan terkelola melalui managed.policies, fan-out telemetri melalui telemetry, dan failover multi-upstream, ARN throughput yang disediakan, atau wilayah non-AS melalui models.
[!NOTE]
Upstream Amazon Bedrock memerlukan principal AWS dengan
bedrock:InvokeModeldanbedrock:InvokeModelWithResponseStreampada ARNinference-profile/us.anthropic.*dan ARNfoundation-model/anthropic.*yang mendasar. Ini juga memerlukan formulir kasus penggunaan satu kali Anthropic yang dikirimkan untuk akun dari katalog Model konsol Bedrock.Sediakan kredensial dengan IRSA di EKS, peran tugas ECS, atau profil instans EC2 daripada kunci statis. Referensi
upstreamsmemiliki detail IAM lengkap, matriks kredensial lintas cloud, dan blokauthuntuk penyedia lain.
4. Jalankan
Bangun gambar kontainer di sekitar biner claude yang memenuhi persyaratan gambar, kemudian jalankan bersama Postgres. File Compose mereferensikan gambar sebagai registry.example.com/claude-gateway:2.1.198; ganti dengan registry dan tag gambar Anda sendiri:
services:
gateway:
image: registry.example.com/claude-gateway:2.1.198
ports: ["8080:8080"]
volumes: ["./gateway.yaml:/etc/claude/gateway.yaml:ro"]
environment:
OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET}
GATEWAY_JWT_SECRET: ${GATEWAY_JWT_SECRET}
GATEWAY_POSTGRES_URL: postgres://gw:pw@postgres/gateway
# Kredensial AWS: dalam produksi, hilangkan ini dan gunakan peran instans.
# Untuk pengujian Compose lokal, teruskan milik Anda sendiri:
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN}
depends_on:
postgres:
condition: service_healthy
postgres:
image: postgres:16-alpine
environment: { POSTGRES_USER: gw, POSTGRES_PASSWORD: pw, POSTGRES_DB: gateway }
healthcheck:
test: ["CMD-SHELL", "pg_isready -U gw"]
interval: 5s
volumes: ["pgdata:/var/lib/postgresql/data"]
volumes: { pgdata: }
Gateway adalah biner Linux tunggal yang membaca konfigurasi, terhubung ke Postgres dan menerapkan migrasi skemanya, menjalankan penemuan OIDC terhadap IdP Anda, membangun klien upstream, dan mulai mendengarkan.
Boot gagal-tertutup untuk konfigurasi, koneksi Postgres, penemuan OIDC, dan konstruksi klien upstream. Jika salah satu dari mereka tidak dapat dijangkau atau salah konfigurasi, gateway keluar dengan kesalahan daripada melayani lalu lintas dalam keadaan terdegradasi.
Boot yang berhasil tidak memvalidasi jalur inferensi, karena kredensial instans Bedrock dan Agent Platform diselesaikan pada permintaan pertama, bukan saat boot.
Tonton stderr untuk urutan boot. Baris log menggunakan format [gateway] <timestamp> <level> <message>, acara audit adalah JSON satu baris dengan bidang evt, dan spanduk startup, dihilangkan di bawah, dicetak di antara baris migrasi dan mendengarkan. Database segar mencetak satu baris migration N applied per migrasi skema; database yang sudah dimigrasikan tidak mencetak apa pun. Anda harus melihat, dalam urutan:
{"ts":"2026-06-10T17:03:21.114Z","evt":"config.load","path":"/etc/claude/gateway.yaml","sha256":"…"}
[gateway] 2026-06-10T17:03:21.395Z info waiting for migration lock (another replica may be migrating; check pg_locks for key 6775156 if this persists)
[gateway] 2026-06-10T17:03:21.408Z info migration 1 applied
…
[gateway] 2026-06-10T17:03:21.431Z info migration 6 applied
[gateway] 2026-06-10T17:03:21.512Z info claude gateway listening on http://0.0.0.0:8080
Gateway juga mencatat peringatan bahwa access_control.allow_cidrs kosong. Itu diharapkan di sini, karena tidak ada yang membatasi alamat klien mana yang dilayani gateway sampai Anda menetapkan daftar izin. Referensi access_control memiliki rentang yang direkomendasikan.
Jika boot keluar sebelum baris claude gateway listening on, baris terakhir stderr menamai masalahnya:
- Postgres yang tidak dapat dijangkau
- Peran Postgres tanpa izin DDL
- Dokumen penemuan OIDC yang tidak dapat dijangkau atau tidak valid
- Pelanggaran skema konfigurasi dengan jalur bidang yang menyinggung
Perbaiki dan mulai ulang.
Jika Anda sudah memiliki ingress yang menghentikan TLS, lewati Compose dan jalankan biner secara langsung dengan claude gateway --config gateway.yaml. Atur public_url ke asal ingress dan ikat listen ke alamat loopback atau internal kluster.
5. Verifikasi permukaan auth
Tiga pemeriksaan mengkonfirmasi gateway dapat mengautentikasi pengguna nyata sebelum Anda menyerahkannya kepada pengembang.
Contoh menggunakan URL publik gateway; untuk penyiapan Compose lokal tanpa ingress, ganti http://localhost:8080 dalam dua pemeriksaan pertama. Pemeriksaan ketiga membuka verification_uri_complete, yang dibangun dari public_url, jadi untuk Compose lokal atur public_url: http://localhost:8080 di gateway.yaml, dan tambahkan http://localhost:8080/oauth/callback sebagai URI pengalihan kedua pada klien OAuth dari langkah 1, karena gateway membangun IdP redirect_uri dari public_url. Tautan verifikasi kemudian terbuka di browser lokal Anda.
Di Windows PowerShell, jalankan curl.exe; curl biasa adalah alias untuk Invoke-WebRequest dan menolak flag ini.
Pertama, ambil dokumen penemuan, yang mengkonfirmasi gateway aktif, konfigurasi valid, dan semua pemeriksaan boot lulus:
curl -s https://claude-gateway.internal.example.com/.well-known/oauth-authorization-server | jq
{
"issuer": "https://claude-gateway.internal.example.com",
"device_authorization_endpoint": "…/oauth/device_authorization",
"token_endpoint": "…/oauth/token",
"grant_types_supported": ["urn:ietf:params:oauth:grant-type:device_code", "refresh_token"]
}
Respons mencakup bidang tambahan, seperti response_types_supported dan scopes_supported.
Kedua, minta otorisasi perangkat, yang mengkonfirmasi alur sign-in perangkat berfungsi dan Postgres dapat dijangkau dan dapat ditulis:
curl -s -X POST https://claude-gateway.internal.example.com/oauth/device_authorization | jq
{
"device_code": "…",
"user_code": "WDJB-MJHT",
"verification_uri": "https://claude-gateway.internal.example.com/device",
"verification_uri_complete": "https://claude-gateway.internal.example.com/device?user_code=WDJB-MJHT",
"expires_in": 600,
"interval": 5
}
Ketiga, uji leg browser dengan membuka verification_uri_complete di browser dan mengkonfirmasi kode. Anda harus dialihkan ke halaman sign-in IdP Anda, dan setelah masuk, mendarat kembali di gateway dengan konfirmasi yang masuk.
Gunakan pemeriksaan pertama yang gagal untuk menemukan masalahnya:
- Pemeriksaan pertama gagal: boot tidak selesai; periksa stderr
- Pemeriksaan kedua gagal: Postgres tidak dapat dijangkau dari gateway atau peran tidak dapat menulis; periksa string koneksi dan hibah
- Pemeriksaan ketiga tidak mencapai IdP: periksa bahwa URI pengalihan IdP cocok dengan
https://<gateway>/oauth/callbackpersis - Pemeriksaan ketiga mencapai IdP tetapi memantul kembali dengan kesalahan: baca log audit gateway, yang mencatat setiap penolakan auth dengan alasan, seperti
email domain not allowed
6. Masukkan pengembang
Langkah terakhir ini terjadi pada mesin pengembang, bukan server. Atur forceLoginMethod ke "gateway", forceLoginGatewayUrl ke public_url gateway Anda, dan parentSettingsBehavior ke "merge" dalam file pengaturan terkelola mesin itu, kemudian jalankan /login, tekan Enter pada layar Cloud gateway, dan selesaikan sign-in browser. Atur URL gateway di bawah mencakup ketiga kunci tersebut dan distribusinya ke setiap mesin pengembang.
Menghubungkan developer
Developer terhubung dari laptop mereka sendiri dengan satu kali masuk melalui browser, menggunakan akun kerja perusahaan mereka. Mereka tidak memerlukan akun claude.ai, kunci API, atau langganan, karena permintaan ke model melewati gateway menggunakan kredensial upstream organisasi. Koneksi dikendalikan oleh pengaturan terkelola sisi klien yang Anda dorong melalui MDM, dan bagian ini membahas apa yang dikonfigurasi oleh admin.
CLI mengambil fingerprint sertifikat leaf TLS milik gateway saat koneksi pertama dan menyematkannya (pin) per hostname. CLI memeriksa pin tersebut lagi saat masuk, saat penyegaran sesi secara diam-diam, dan saat pengambilan pengaturan terkelola, sementara permintaan inferensi menggunakan validasi TLS standar tanpa pin. Permintaan yang dirutekan melalui proxy HTTPS melewati pemeriksaan pin, jadi tambahkan host gateway ke NO_PROXY agar permintaan tersebut tetap langsung.
Publikasikan fingerprint SHA-256 yang diharapkan bersama URL gateway agar developer memiliki sesuatu untuk dibandingkan. Prompt /login menampilkan 16 karakter pertama fingerprint sebagai heksadesimal huruf kecil tanpa titik dua. Untuk mencetak fingerprint lengkap dalam bentuk tersebut dari file sertifikat, jalankan:
openssl x509 -noout -fingerprint -sha256 -in cert.pem | cut -d= -f2 | tr -d : | tr 'A-F' 'a-f'
Saat sertifikat dirotasi, setiap developer melihat prompt kepercayaan lagi, jadi perlakukan rotasi sebagai peristiwa terencana dan publikasikan ulang fingerprint-nya. Jika kebijakan gateway Anda menyertakan pengaturan yang memerlukan persetujuan, developer juga melihat dialog persetujuan tersebut lagi setelah menerima sertifikat baru, karena Claude Code mengaitkan memori persetujuan dengan sertifikat yang disematkan.
Gateway dapat mengembalikan field opsional email dalam respons token-nya untuk menyebutkan akun yang digunakan saat masuk. Jika demikian, developer mengonfirmasi akun tersebut sebelum Claude Code menyimpan kredensial. Setelah proses masuk yang dikonfirmasi, /status menampilkan akun tersebut.
Konfirmasi ini memerlukan Claude Code v2.1.275 atau yang lebih baru di mesin developer; klien di bawah versi tersebut mengabaikan field ini. Server gateway di binary claude tidak mengembalikan field tersebut, sehingga proses masuk ke server itu selesai tanpa konfirmasi.
Setelah developer masuk, pemilih model menampilkan model-model dalam allowlist availableModels mereka. Pengaturan terkelola diterapkan saat startup dan disegarkan setiap jam, dan telemetri dirutekan ke collector Anda.
Sesi disegarkan secara diam-diam sebelum kedaluwarsa ttl_hours. Ketika penyegaran gagal setelah deprovisioning di IdP, Claude Code meminta developer untuk masuk lagi.
Mengatur URL gateway
Tiga kunci dimasukkan ke dalam file pengaturan terkelola per OS yang Anda deploy melalui MDM atau langsung di disk. Untuk mesin tanpa pengaturan terkelola, lihat Mengatur URL gateway di pengaturan pengguna. forceLoginMethod dan forceLoginGatewayUrl membuka /login langsung di layar Cloud gateway dengan URL yang sudah terisi, dan parentSettingsBehavior: "merge" memungkinkan Claude Desktop mengirimkan allowlist egress gateway ke sesi Claude Code yang diluncurkannya, sebagaimana dijelaskan di Mengirimkan kebijakan ke sesi Claude Desktop:
{
"forceLoginMethod": "gateway",
"forceLoginGatewayUrl": "https://claude-gateway.internal.example.com",
"parentSettingsBehavior": "merge"
}
Developer menekan Enter untuk terhubung. Prompt fingerprint TLS pada koneksi pertama tetap muncul. Setelah file berada di sebuah mesin, developer yang belum menyelesaikan proses masuk ke gateway akan melihat salah satu pesan yang dijelaskan di Administrator policy requires a Cloud gateway sign-in. Developer yang memilih penyedia cloud melalui environment variable seperti CLAUDE_CODE_USE_BEDROCK tidak perlu masuk ke gateway.
Pemilih login tidak memiliki opsi gateway, dan di pengaturan terkelola, forceLoginMethod saja, tanpa URL, membuat developer tertahan di pesan "Contact your IT administrator". Kunci login harus berada di file yang Anda dorong ke mesin, bukan di blok managed.policies[].cli milik gateway, yang hanya menjangkau klien yang sudah terhubung.
Mengatur URL gateway di pengaturan pengguna
Pada mesin tanpa pengaturan terkelola, minta setiap developer menambahkan forceLoginMethod dan forceLoginGatewayUrl ke file pengaturan pengguna mereka sendiri, ~/.claude/settings.json. Ini memerlukan Claude Code v2.1.295 atau yang lebih baru di mesin developer. Contoh ini menyebutkan gateway di claude-gateway.internal.example.com:
{
"forceLoginMethod": "gateway",
"forceLoginGatewayUrl": "https://claude-gateway.internal.example.com"
}
Saat developer menjalankan /login di prompt Claude Code, layar Cloud gateway terbuka pada alamat tersebut dan mereka menekan Enter untuk terhubung. Prompt fingerprint TLS pada koneksi pertama tetap muncul. Batasan berikut berlaku untuk kunci yang diatur dengan cara ini:
- Hanya pengaturan pengguna: Claude Code membaca kedua kunci dari
~/.claude/settings.json, bukan dari.claude/settings.jsonatau.claude/settings.local.jsonmilik proyek. - Pengaturan terkelola menonaktifkannya: begitu pengaturan administrator mencapai mesin melalui file pengaturan terkelola, plist macOS atau kebijakan HKLM Windows, atau policy helper, Claude Code mengabaikan gateway yang disebutkan di pengaturan pengguna.
Mengizinkan gateway pada ruang alamat publik milik Anda
Beberapa organisasi menomori jaringan internal mereka dari blok IPv4 publik yang mereka miliki, seperti ruang alamat milik operator sendiri atau /8 lama, sehingga gateway mereka tidak memiliki alamat privat. Cantumkan blok-blok tersebut di pengaturan terkelola gatewayInternalNetworks. /login kemudian menerima gateway di dalam blok yang tercantum ketika mesin developer terhubung ke gateway tersebut dari alamat di dalam blok yang sama. Ini memerlukan Claude Code v2.1.268 atau yang lebih baru di mesin developer; versi sebelumnya mengabaikan kunci ini dan menerapkan aturan alamat privat.
[!WARNING]
gatewayInternalNetworksditujukan untuk jaringan internal yang kebetulan dinomori dari ruang alamat publik. Kunci ini tidak membuat aman untuk mengekspos gateway ke internet: gateway tepercaya dapat mendorong pengaturan yang menjalankan perintah di mesin developer.Jaga agar gateway tidak dapat dijangkau dari luar jaringan Anda dengan aturan firewall atau load balancer Anda. Atur
access_control.allow_cidrsmilik gateway ke blok yang sama dengan yang Anda deklarasikan di sini, sehingga gateway itu sendiri menolak klien dari tempat lain. Di belakang load balancer atau ingress, atur jugalisten.trusted_proxieske front end tersebut, karena jika tidak, gateway mencocokkanallow_cidrsdengan alamat front end itu sendiri, bukan alamat developer.
Tambahkan kunci ini ke sumber pengaturan terkelola yang sama dengan kunci login: file pengaturan terkelola, profil MDM, atau kebijakan registry. Claude Code mengabaikannya di pengaturan pengguna, proyek, dan pengaturan terkelola server.
Contoh ini mendeklarasikan satu blok. Ganti 203.0.113.0/24 dengan blok Anda sendiri. Blok itu adalah rentang dokumentasi, dan Claude Code menolaknya.
{
"gatewayInternalNetworks": ["203.0.113.0/24"]
}
Claude Code memvalidasi daftar tersebut saat /login sebelum menghubungi gateway apa pun:
- Setiap entri adalah blok IPv4 yang ditulis sebagai alamat pertamanya dan prefix dari
/8hingga/32. - Daftar berisi paling banyak empat blok, dan tidak ada dua blok yang tumpang tindih.
- Tidak ada blok yang tumpang tindih dengan ruang alamat privat:
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,127.0.0.0/8,169.254.0.0/16, dan100.64.0.0/10./loginsudah menerima gateway di sana tanpa kunci ini. - Tidak ada blok yang tumpang tindih dengan ruang yang tidak pernah menjadi jaringan organisasi:
198.18.0.0/15dan192.0.0.0/24, yang dipegang klien VPN dan NAT64 sebagai alamat lokal; rentang dokumentasi192.0.2.0/24,198.51.100.0/24, dan203.0.113.0/24; serta rentang cadangan0.0.0.0/8,192.88.99.0/24, dan multicast224.0.0.0/4. Anda dapat mendeklarasikan blok di dalam240.0.0.0/4, yang digunakan beberapa jaringan besar sebagai ruang unicast internal.
Blok dari managed-settings.json dan file drop-in managed-settings.d/-nya digabungkan menjadi satu daftar, dan batasan ini berlaku untuk daftar gabungan tersebut. Untuk mempersempit sebuah blok, ganti entrinya alih-alih menambahkan entri kedua yang tumpang tindih di drop-in; /login menolak tumpang tindih tersebut.
Jika sebuah entri melanggar aturan, atau nilainya bukan daftar string, Claude Code menolak setiap proses masuk gateway baru di mesin tersebut dan menyebutkan masalahnya dalam pesan. Proses masuk ke gateway pada alamat privat juga gagal, dan proses masuk yang sudah ada tetap berfungsi. Uji nilainya di satu mesin sebelum Anda men-deploy-nya. Claude Code juga mencantumkan nilai dengan tipe yang salah di antara pengaturan terkelola tidak valid yang dilaporkannya.
Dengan daftar yang valid, /login menerapkan tiga pemeriksaan pada gateway yang alamatnya berada di dalam blok yang tercantum:
- Setiap alamat yang di-resolve dari hostname gateway berada di dalam satu blok tersebut. Claude Code menolak nama yang juga memiliki record di luar blok tersebut, termasuk alamat privat dan IPv6.
- Mesin developer terhubung dari dalam blok yang sama. Claude Code menolak mesin di belakang NAT, di dalam container atau WSL2, atau pada VPN yang pool alamatnya berada di luar blok, dan menyebutkan alamat asal koneksi mesin tersebut.
- Koneksinya langsung. Jika
HTTPS_PROXYberlaku untuk host gateway,/loginmenolak dan menyebutkan entriNO_PROXYyang perlu ditambahkan.
Ketika ketiganya lolos, prompt kepercayaan menambahkan baris yang menyebutkan alamat mesin, alamat gateway, dan blok terdeklarasi yang memuat keduanya.
Kunci ini tidak mengubah apa pun untuk gateway lain: proses masuk ke gateway pada alamat privat berfungsi seperti sebelumnya, dan proses masuk ke gateway pada alamat publik di luar semua blok yang tercantum ditolak seperti sebelumnya.
Blok yang dideklarasikan mempersempit siapa yang dapat masuk tetapi tidak membuktikan di mana sebuah mesin berada, jadi deklarasikan hanya ruang alamat yang dikendalikan organisasi Anda. Blok yang dibagi dengan tenant lain, seperti rentang publik penyedia cloud, memungkinkan siapa pun di dalamnya lolos pemeriksaan yang sama.
Mengirimkan kebijakan ke sesi Claude Desktop
Claude Desktop menjalankan tab-tabnya pada sesi Claude Code yang tertanam dan mengirimkan permintaan model dari sesi-sesi tersebut melalui gateway. Claude Desktop meneruskan kebijakan ke setiap sesi tersebut, yang dibangun dari konfigurasi yang disajikan gateway kepadanya di /user/bootstrap. Konfigurasi tersebut memuat allowlist model, tool yang dinonaktifkan, dan allowlist egress yang diturunkan dari blok cli atau code pada kebijakan yang cocok, ditambah overlay desktop.
Kunci lain dalam blok tersebut, seperti hook, env, dan aturan izin bercakupan seperti Bash(npm *), menjangkau klien yang masuk melalui /login. Di bawah code, kunci-kunci tersebut juga menjangkau sesi tab Code ketika kondisi untuk tab Code terpenuhi. Kunci-kunci tersebut tidak menjangkau sesi Cowork atau Chat. Claude Desktop membaca URL gateway dari konfigurasi terkelolanya sendiri dan masuk dengan alurnya sendiri, terpisah dari kunci forceLoginMethod dan forceLoginGatewayUrl di Mengatur URL gateway.
Pengaturan yang diteruskan oleh proses peluncur adalah pengaturan induk (parent settings). Claude Code mengabaikan pengaturan induk di mesin mana pun yang memiliki sumber terkelola yang di-deploy admin, kecuali sumber yang mengirimkan kebijakan mengatur parentSettingsBehavior: "merge".
Mesin mana yang memerlukan opt-in
Mesin yang hanya menjalankan Claude Desktop memerlukannya. Claude Desktop menerapkan daftar model dan daftar tool yang dinonaktifkan ke sesi tertanam secara mandiri, tetapi allowlist egress hanya menjangkau sesi tersebut sebagai pengaturan induk, dalam bentuk aturan domain WebFetch dan aturan jaringan sandbox. Tanpa opt-in, sesi-sesi tersebut berjalan tanpa pembatasan egress, dan tidak ada yang memperingatkan Anda. Gateway tetap menolak permintaan inferensi untuk model yang tidak diberikan oleh kebijakan.
Allowlist marketplace plugin juga hanya menjangkau sesi tertanam sebagai pengaturan induk. Ketika Anda mematikan marketplace plugin yang ditambahkan pengguna di konfigurasi terkelola Claude Desktop, Claude Desktop 2.16120.0 atau yang lebih baru menyembunyikan marketplace yang tidak disediakan organisasi Anda dan menolak instalasi dari marketplace tersebut. Untuk mencegah sesi tertanam memuat plugin yang sudah diinstal dari marketplace tersebut, Claude Desktop mengirimkan daftar strictKnownMarketplaces kepada sesi tersebut sebagai pengaturan induk. Tanpa opt-in, Claude Code mengabaikan daftar tersebut, dan plugin-plugin itu tetap dimuat.
Mesin tempat developer masuk melalui /login tidak memerlukannya; setiap sesi Claude Code mengambil kebijakannya dari gateway.
Armada yang policyHelper-nya menyediakan pengaturan terkelola tidak dapat menggunakannya: Claude Code tidak pernah menggabungkan pengaturan induk di armada tersebut, karena Claude Code membaca pengaturan terkelola hanya dari output helper.
Mengatur opt-in
Deploy cuplikan pengaturan terkelola dari Mengatur URL gateway, cerminkan ke sumber sisi klien mana pun yang berperingkat lebih tinggi daripada file tersebut, lalu verifikasi.
1. Deploy opt-in di file pengaturan terkelola
Cuplikan di atas sudah menyertakan parentSettingsBehavior: "merge", sehingga file yang Anda dorong ke mesin sudah membawanya.
2. Cerminkan cuplikan ke sumber mana pun yang berperingkat lebih tinggi daripada file
Claude Code membaca parentSettingsBehavior hanya dari sumber yang dipilih. Menambahkan kunci kebijakan apa pun ke sebuah sumber dapat menjadikan sumber tersebut sebagai sumber yang dipilih, jadi di sumber sisi klien, cerminkan seluruh cuplikan, bukan hanya parentSettingsBehavior. Pengaturan terkelola sisi klien membahas armada yang mengirimkan kebijakan melalui Group Policy atau profil konfigurasi. Plist managed-preferences di macOS atau kebijakan HKLM di Windows berperingkat lebih tinggi daripada file managed-settings.json, dan pengaturan terkelola jarak jauh milik gateway sendiri berperingkat lebih tinggi daripada keduanya, jadi pada mesin yang masuk ke gateway, atur juga parentSettingsBehavior di blok cli atau code milik kebijakan gateway.
3. Periksa sumber mana yang dipilih
Pada mesin yang hanya menjalankan Claude Desktop, panggil resolveSettings() milik Agent SDK dan baca policyOrigin pada entri managed di daftar sources-nya. Nilainya menyebutkan sumber sisi klien yang dipilih, plist, hklm, atau file, yang merupakan sumber yang harus membawa cuplikan tersebut.
Sesi Cowork dan Chat tidak mengambil kebijakan gateway, sehingga blok gateway bukan sumber yang dipilih bagi sesi tersebut.
Sesi tab Code mengambilnya ketika pengaturan kebijakan berada di bawah code dan kondisi untuk tab Code terpenuhi. Pengaturan code milik gateway kemudian menjadi sumber yang dipilih untuk sesi tersebut.
Membatasi pengaturan induk
Setelah Anda men-deploy parentSettingsBehavior: "merge", proses host mana pun yang meluncurkan Claude Code dapat menyediakan pengaturan induk, tidak hanya Claude Desktop tetapi juga aplikasi Agent SDK atau ekstensi IDE.
Claude Code memfilter pengaturan induk terhadap allowlist kunci yang bersifat membatasi, tetapi beberapa kunci yang diizinkan dapat memberikan akses alih-alih membatasinya. Kecuali Anda mengatur kunci penguncian allowManaged*Only, aturan izin allow dan allowlist sandbox yang disediakan host tetap berlaku. Aturan deny dan ask dalam kebijakan Anda tetap berlaku dalam kedua kasus; aturan tersebut dievaluasi sebelum aturan allow mana pun.
Claude Code meneruskan entri sandbox.credentials yang disediakan induk dalam bentuk yang dilucuti:
- Entri
deny: diteruskan hanya denganpathataunamedan mode-nya. - Entri file dengan
mode: mask: diteruskan hanya sebagai sentinel, sebagai mask seluruh file yanginjectHosts-nya adalah daftar kosong, sehingga proxy tidak pernah mengganti nilai sebenarnya untuk entri yang disediakan induk di platform mana pun. Semua field structured-masking juga dihapus, sehingga pola ekstraksi yang disediakan induk tidak dapat menggeser mask yang lebih ketat yang diatur sumber lain untuk path yang sama. - Entri
envVarsdenganmode: mask: tidak diteruskan.denyadalah satu-satunya pembatasan yang dapat diekspresikan oleh channel induk melalui entrienvVars. awsPairsdansigv4: diteruskan hanya sebagai pembatasan. Darisigv4, hanya nilaidenyyang dipertahankan, dan induk yang mendefinisikan bloksigv4sama sekali akan menetapkan ketiga bentuk permintaan,streaming,presigned, dansigv4a, kedeny. PasanganawsPairstidak pernah diteruskan dalam bentuk yang dapat menandatangani ulang; pasangan yang menyebutkan salah satu variabel AWS konvensional diganti dengan entri inert yang tetap menekan pemasangan otomatisAWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY, danAWS_SESSION_TOKEN.
Men-deploy kunci penguncian
Untuk menjaga pengaturan induk sedekat mungkin dengan hanya-pembatasan sebagaimana didukung oleh filter, tambahkan kelima kunci penguncian allowManaged*Only, beserta allowlist yang diaturnya, ke sumber yang sama dengan opt-in merge:
{
"forceLoginMethod": "gateway",
"forceLoginGatewayUrl": "https://claude-gateway.internal.example.com",
"parentSettingsBehavior": "merge",
"allowManagedPermissionRulesOnly": true,
"allowManagedMcpServersOnly": true,
"allowManagedHooksOnly": true,
"allowedMcpServers": [{ "serverUrl": "https://mcp.internal.example.com/*" }],
"sandbox": {
"network": {
"allowManagedDomainsOnly": true,
"allowedDomains": ["github.com", "*.npmjs.org"]
},
"filesystem": {
"allowManagedReadPathsOnly": true,
"denyRead": ["~/"],
"allowRead": ["~/projects"]
}
}
}
Kebijakan OS, seperti kebijakan registry HKLM atau plist managed-preferences, berperingkat lebih tinggi daripada file ini, jadi kirimkan seluruh cuplikan melalui kebijakan tersebut alih-alih melalui file. Pengaturan terkelola jarak jauh milik gateway berperingkat lebih tinggi daripada sumber kebijakan OS dan file, tetapi hanya menjangkau klien yang terhubung. Cerminkan kunci penguncian, allowlist, dan opt-in merge ke dalam blok cli atau code milik kebijakan dan tetap deploy file ini, karena mesin yang tidak pernah terhubung mendapatkan kebijakannya hanya dari file.
Perilaku kunci penguncian di berbagai sumber
Mengatur satu kunci penguncian tidak membatasi yang lain; setiap kunci didokumentasikan di referensi pengaturan.
Dari sumber admin di bawah pemenang, kedua kunci penguncian sandbox tetap berlaku, dan allowManagedPermissionRulesOnly tetap memblokir aturan allow dan additionalDirectories yang disediakan induk. Pada Claude Code v2.1.273 atau yang lebih baru, kunci penguncian server MCP juga berlaku dari sumber di bawah pemenang, dan selama kunci tersebut aktif, daftar allowedMcpServers terkelola berasal dari sumber admin berprioritas tertinggi yang mengaturnya.
Kunci penguncian hook dan efek allowManagedPermissionRulesOnly terhadap aturan milik developer sendiri memerlukan sumber pemenang secara default; di bawah opt-in merge managedSourcesBehavior dalam cara Claude Code menggabungkan sumber terkelola, Claude Code menerapkan nilai paling ketat yang diatur sumber mana pun untuk setiap kunci penguncian. Pada armada policyHelper, Claude Code membaca kunci penguncian hanya dari output helper.
Setiap kunci penguncian membuat Claude Code mengabaikan entri milik developer sendiri untuk pengaturan tersebut, jadi sertakan allowlist organisasi Anda di samping kunci penguncian:
- Domain jaringan: mengunci dengan daftar domain terkelola yang kosong memblokir semua lalu lintas keluar yang di-sandbox.
- Server MCP: mengunci tanpa
allowedMcpServersdi sumber admin mana pun atau di pengaturan yang disediakan induk akan memuat setiap server yang tidak diblokir olehdeniedMcpServers. - Path baca: entri
allowReadhanya mengizinkan ulang path di dalam wilayahdenyRead, jadi pasangkan dengandenyReadterkelola.
Pengaturan yang tidak dicakup kunci penguncian
Pengaturan yang disediakan induk berikut lolos filter bahkan dengan kelima kunci penguncian diatur:
forceLoginOrgUUID: Claude Code menghormati nilai yang disediakan induk ketika pengaturan terkelola yang diterapkannya tidak mengatur UUID org. Proses masuk gateway tidak memeriksa kunci ini. UUID org di pengaturan terkelola yang diterapkan Claude Code memblokir nilai induk dan merupakan UUID org yang diberlakukan Claude Code. Jika armada Anda menetapkan organisasi Anthropic, lihat Sumber terkelola mana yang menyediakan kunci login untuk mengetahui di mana mengaturforceLoginOrgUUID.allowedMcpServers: Claude Code menghormati allowlist yang disediakan induk ketika tidak ada daftar admin yang berlaku.allowManagedMcpServersOnlytidak memblokirnya, karena kunci penguncian memberlakukan daftar mana pun yang menang sebagai nilai terkelola, termasuk daftar yang disediakan induk ketika tidak ada sumber admin yang menyediakan daftar. Daftar di sumber admin berprioritas tertinggi memblokir daftar induk dan merupakan daftar yang diberlakukan Claude Code, jadi aturallowedMcpServersdi sana, di samping kunci penguncian. Sebelum v2.1.223, nilai untuk salah satu kunci di sumber admin mana pun memblokir nilai induk.availableModels: Claude Code menghormati daftar model yang disediakan induk ketika sumber terkelola pemenang tidak mengaturnya. Jika armada Anda membatasi model, aturavailableModelsdi sumber pemenang.allowedProviders: Claude Code menghormati allowlist penyedia API yang disediakan induk ketika sumber terkelola pemenang tidak mengaturnya. Jika armada Anda membatasi penyedia API mana yang dapat digunakan developer, aturallowedProvidersdi sumber pemenang. Memerlukan Claude Code v2.1.285 atau yang lebih baru.strictKnownMarketplaces: Claude Code menghormati allowlist marketplace plugin yang disediakan induk ketika sumber terkelola pemenang tidak mengaturnya. Claude Desktop 2.16120.0 atau yang lebih baru mengirimkannya ketika konfigurasi terkelolanya mematikan marketplace plugin yang ditambahkan pengguna. Jika armada Anda membatasi marketplace, aturstrictKnownMarketplacesdi sumber pemenang. Memerlukan Claude Code v2.1.282 atau yang lebih baru.blockedMarketplaces: blocklist marketplace yang disediakan induk lolos dan ditambahkan ke blocklist mana pun yang diatur sumber terkelola, karena blocklist hanya dapat membatasi lebih jauh. Memerlukan Claude Code v2.1.282 atau yang lebih baru.strictPluginOnlyCustomization: kunci ini lolos filter terlepas dari kunci penguncian apa pun, dan membuat Claude Code mengabaikan kustomisasi milik developer sendiri, termasuk hook pelindung. Tidak ada kunci penguncian yang memblokirnya.
Jika Anda mengatur managedSourcesBehavior ke "merge", periksa nilai sumber mana yang berlaku untuk setiap jenis kunci.
Cara kunci hook dan skill dalam pengaturan induk berlaku
Kunci yang diteruskan aplikasi Anda dalam opsi managedSettings milik Agent SDK adalah pengaturan induk. Pada mesin tempat administrator men-deploy pengaturan terkelola, Claude Code mengabaikan pengaturan induk kecuali administrator mengizinkan host penyemat menambahkan kebijakan.
Jika Anda meneruskan disableAllHooks: true di managedSettings:
- Berhenti: hook pengguna, proyek, dan lokal, ditambah hook yang dideklarasikan di frontmatter agent atau di opsi
settingsmilik SDK. - Tetap berjalan: callback hook SDK milik aplikasi Anda dan hook administrator dari pengaturan terkelola. Aplikasi Anda tidak dapat mematikan hook milik administrator.
| Apa yang Anda teruskan | Apa yang terjadi |
|---|---|
hooks, atau allowedHttpHookUrls atau httpHookAllowedEnvVars dengan entri |
Claude Code mengabaikan kunci tersebut. Gunakan opsi settings SDK sebagai gantinya. |
allowedHttpHookUrls: [] |
Berlaku kecuali administrator mendefinisikan hooks atau mengaktifkan plugin. Tidak ada hook HTTP yang berjalan, kecuali untuk URL yang dicantumkan sumber pengaturan lain. |
httpHookAllowedEnvVars: [] |
Berlaku kecuali administrator mendefinisikan hooks atau mengaktifkan plugin. Header hook HTTP hanya dapat menyertakan environment variable yang dicantumkan sumber pengaturan lain. |
disableSkillShellExecution: true |
Berlaku. |
Meneruskan kunci-kunci ini di managedSettings memerlukan Claude Code v2.1.309 atau yang lebih baru, atau TypeScript Agent SDK v0.3.309 atau yang lebih baru.
Menghubungkan Claude Desktop
Claude Desktop terhubung ke gateway yang sama melalui kunci MDM yang berbeda: atur bootstrapUrl di konfigurasi terkelola Claude Desktop ke <listen.public_url>/user/bootstrap, dan ikutsertakan kebijakan pengguna dengan kunci desktop. Overlay Claude Desktop membahas kedua bagian tersebut. Memerlukan Claude Code v2.1.203 atau yang lebih baru di server gateway. Setelah terhubung, Claude Desktop mengirimkan permintaan model dari setiap tab yang diaktifkan melalui gateway.
Claude Desktop memasukkan developer (melakukan sign-in) melalui penyedia identitas gateway dengan langkah SSO browser yang sama, lalu mengambil konfigurasinya dari gateway, bukan dari Anthropic. Akses model dan kebijakan mengikuti aturan per grup yang sama dengan CLI. Developer yang menggunakan CLI dan Claude Desktop masuk ke masing-masing secara terpisah; sesi gateway tidak dibagikan di antara keduanya.
Pipeline CI dan mesin jarak jauh
Tidak ada alur service-token untuk pipeline tanpa pengawasan. Proses masuk gateway selalu menjalankan device flow browser, sehingga job CI tanpa developer yang menyetujui proses masuk tidak dapat melakukan autentikasi; konfigurasikan job tersebut langsung ke penyedia Anda. Deploy forceLoginMethod dan forceLoginGatewayUrl ke mesin developer dan jangan pasang di runner CI. Pada mesin yang pengaturan terkelolanya mengatur kunci tersebut, sesi yang melakukan autentikasi dengan ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN, atau apiKeyHelper keluar saat startup.
Setelah developer masuk, setiap sesi Claude Code di mesin tersebut menggunakan sesi gateway, termasuk eksekusi claude -p non-interaktif dan sesi yang dimulai oleh Agent SDK. Claude Code menerapkan kebijakan gateway ke masing-masing sesi tersebut.
Device flow memisahkan CLI yang melakukan polling dari browser yang menyetujui, sehingga mesin pengembangan jarak jauh tanpa layar tetap berfungsi: developer menjalankan /login melalui SSH di mesin jarak jauh dan membuka tautan verifikasi di browser pada laptop mereka.
Apa yang diberlakukan pada developer
Jaminan berikut berlaku untuk setiap sesi yang masuk melalui /login. Sesi tertanam yang diluncurkan Claude Desktop mendapatkan kebijakannya sebagaimana dijelaskan di Mengirimkan kebijakan ke sesi Claude Desktop, dan poin telemetri menjelaskan ke mana ekspor mereka dikirim.
- Akses model: permintaan untuk model yang tidak diberikan oleh kebijakan mengembalikan 400, dan pemilih
/modeldifilter ke allowlistavailableModelsmilik kebijakan. Ini termasuk model tempat sesi dimulai sebelum developer memilihnya; lihat Memulai sesi pada model yang diizinkan kebijakan. - Tujuan telemetri: dalam sesi yang masuk melalui
/login, CLI mengirimkan ekspor OTLP/HTTP-nya ke gateway, bukan keOTEL_EXPORTER_OTLP_ENDPOINTyang diatur secara lokal, kecuali kebijakan menyebutkan collector Anda sebagai endpoint. Gateway meneruskan ekspor yang diterimanya ke tujuan ditelemetry.forward_to.- Dalam sesi tertanam yang diluncurkan Claude Desktop, CLI mengirimkan ekspornya ke
OTEL_EXPORTER_OTLP_ENDPOINTyang dikonfigurasi. CLI melampirkan token sesi gateway ke ekspor tersebut hanya ketika endpoint itu mengarah ke gateway itu sendiri. - Tanpa tujuan yang dikonfigurasi untuk suatu sinyal, gateway menerima dan membuangnya.
- Jika Anda sudah mengumpulkan telemetri Claude Code secara langsung, tambahkan collector Anda sebagai tujuan
forward_to, atau sebutkan dalam kebijakan untuk melewati penerusan.
- Dalam sesi tertanam yang diluncurkan Claude Desktop, CLI mengirimkan ekspornya ke
- Kredensial: token gateway adalah satu-satunya kredensial sesi. Profil Anthropic dan login claude.ai sebelumnya diabaikan selama masuk, sehingga developer tidak perlu keluar dari claude.ai terlebih dahulu. Untuk kredensial
ANTHROPIC_API_KEY,ANTHROPIC_AUTH_TOKEN, atauapiKeyHelperyang dikonfigurasi, atau kunci API yang disimpan oleh login Claude Console sebelumnya, lihat Administrator policy requires a Cloud gateway sign-in. - Pengaturan terkelola: kunci yang dikunci tidak dapat ditimpa secara lokal. CLI menerapkan kebijakan saat startup dan menerapkan perubahan pada setiap polling per jam, kecuali perubahan yang hanya berlaku pada peluncuran berikutnya.
- Startup saat gateway tidak dapat dijangkau: sesi yang sudah masuk keluar saat startup dengan error setelah sekitar 10 detik, alih-alih dimulai tanpa pengaturannya.
- Startup setelah gateway mengakhiri sesi: lihat Memberlakukan startup fail-closed untuk peluncuran yang terbuka dalam keadaan keluar dari gateway dan peluncuran yang keluar ketika gateway menjawab dengan
401. - Deprovisioning: sesi yang penggunanya dinonaktifkan di IdP kedaluwarsa dalam
ttl_hoursketika penyegaran berikutnya gagal. - Keluar:
/logoutmenghapus kredensial gateway dari mesin developer.- Ketika dokumen discovery gateway mengiklankan
revocation_endpointpada skema, host, dan port milik URL gateway itu sendiri,/logoutjuga mengirimkan token yang tersimpan ke endpoint tersebut agar gateway dapat mengakhiri sesi di sisinya. Permintaan ini bersifat upaya terbaik (best effort), sehingga proses keluar selesai di mesin developer baik endpoint menjawab maupun tidak. Pencabutan ini memerlukan Claude Code v2.1.275 atau yang lebih baru di mesin developer. - Server gateway di binary
claudetidak mengiklankannya, sehingga proses keluar darinya hanya mengakhiri sesi di mesin developer. Untuk memaksa sesi keluar di sisi server, lihat Rotasi secret JWT.
- Ketika dokumen discovery gateway mengiklankan
Apa yang dapat dilihat organisasi
Telemetri penggunaan membawa identitas developer, jumlah token, model, dan latensi ke collector organisasi. Gateway tidak mencatat atau menyimpan konten prompt maupun completion. Apakah telemetri yang lebih kaya seperti log dan trace dikumpulkan, yang dapat mencakup perintah dan path file, merupakan pilihan per tujuan organisasi.
Ketersediaan dan keterbatasan
Tabel mencakup fitur Claude Code mana yang bekerja ketika pengembang terhubung melalui gateway, dan apa yang didukung server gateway itu sendiri. Di mana sesuatu tidak didukung, kolom Catatan memberikan alternatif.
Gateway mengirimkan nilai anthropic-beta yang dikirim CLI ke setiap upstream, jadi operator tidak mempertahankan allowlist beta. Untuk Amazon Bedrock, yang mengabaikan header, gateway memindahkan nilai ke bidang anthropic_beta badan permintaan; upstream lainnya menerima header seperti yang dikirim.
| Fitur | Status | Catatan |
|---|---|---|
| Penerusan inferensi (Amazon Bedrock, Claude Platform on AWS, Agent Platform Google Cloud, Microsoft Foundry, Anthropic) | Tersedia | Dengan terjemahan model per-upstream dan failover. Upstream Amazon Bedrock menggunakan endpoint bedrock-runtime dan rantai kredensial default AWS. Upstream Amazon Bedrock Mantle memerlukan Claude Code v2.1.283 atau lebih baru di server gateway, dan upstream Claude Platform on AWS memerlukan v2.1.198 atau lebih baru. |
| Context window 1M token | Tersedia | Model Fable, Sonnet 5 dan yang lebih baru, serta Opus 4.7 dan yang lebih baru berjalan dengan window 1M secara default; lihat Konteks diperluas. Default 1M untuk model Fable dan Opus memerlukan Claude Code v2.1.287 atau lebih baru di mesin pengembang |
| Akses model dan pengaturan terkelola berdasarkan grup IdP | Tersedia | Akses model diberlakukan di sisi server; pengaturan terkelola disampaikan per grup IdP dan diterapkan oleh CLI di tingkat pengaturan terkelola |
| Claude Desktop | Tersedia dengan opt-in | Ikutsertakan kebijakan dengan kunci desktop. Memerlukan Claude Code v2.1.203 atau lebih baru di server gateway. |
| Fan-out telemetri (OTLP/HTTP) | Tersedia | Identitas-stamped per ekspor; kedua pengkodean protobuf dan JSON |
| Penyedia identitas OIDC | Tersedia | Penyedia IdP yang sesuai dengan OIDC; gateway menjalankan penemuan OIDC standar dan alur kode otorisasi. Lihat Pengaturan penyedia identitas untuk konfigurasi per-IdP |
| Batas pengeluaran per-pengguna dan per-grup | Tersedia | Lihat Spend limits |
| Pencarian web sisi server | Tidak tersedia | CLI tidak dapat melihat penyedia upstream mana yang dirutekan gateway, jadi tidak dapat memverifikasi dukungan pencarian web dan menonaktifkan WebSearch pada sesi gateway |
| Remote Control | Tidak tersedia | CLI menampilkan kesalahan yang menyebutkan gateway |
/design-sync dan /design-login |
Tidak tersedia | Keduanya memerlukan claude.ai, yang tidak dihubungi CLI pada sesi gateway, jadi tidak ada perintah yang muncul di sana |
Fitur yang memerlukan pengambilan flag fitur, seperti /import dan claude import |
Tidak tersedia | CLI melewati pengambilan flag pada sesi gateway. Fitur yang memerlukan pengambilan flag fitur mencantumkan apa yang dimatikan |
| Prompt caching standar | Tersedia | Gateway meneruskan breakpoint cache_control ke setiap upstream. Di mana cache berada mencakup blok mana yang ditandai CLI, termasuk konteks sistem yang ditambahkannya di tengah percakapan |
| TTL cache 1 jam | Tersedia dengan opt-in | CLI menggunakan TTL 5 menit pada sesi gateway secara default. Untuk meminta TTL 1 jam, atur dalam kebijakan. Atur hanya jika upstream Anda menawarkan TTL 1 jam untuk setiap model yang dilayani gateway, karena permintaan gagal jika upstream menolak TTL tersebut |
| Auto mode | Tersedia | Mengikuti aturan penyedia pihak ketiga: hanya model yang memenuhi syarat di penyedia pihak ketiga yang dapat menggunakannya. Sebelum v2.1.207, auto mode pada sesi gateway memerlukan pengaturan CLAUDE_CODE_ENABLE_AUTO_MODE=1, dapat dikirimkan melalui blok env kebijakan terkelola |
| Optimasi khusus pihak pertama seperti cakupan cache global dan tool yang efisien token | Tidak tersedia | CLI tidak mengaktifkannya pada sesi gateway; lihat catatan header beta di atas |
| OTLP/gRPC | Tidak didukung | OTLP melalui HTTP saja |
| SAML, LDAP, dan auth non-OIDC lainnya | Tidak didukung | OIDC saja. Depan dengan jembatan OIDC jika diperlukan |
| Multi-tenant (beberapa penerbit OIDC) | Tidak didukung | Satu penerbit per gateway. Jalankan instans terpisah |
| Server Windows | Tidak didukung | Deploy di Linux. macOS untuk pengembangan lokal saja |
| Helm chart | Tidak tersedia | Gateway berjalan sebagai Deployment stateless standar; lihat panduan deployment |
| Admin UI | Hanya batas pengeluaran | Di Claude Desktop 4.23118.0 atau lebih baru yang terhubung ke gateway, anggota admin.admin_groups dapat mengelola batas pengeluaran. Konfigurasi lainnya adalah file YAML; deploy ulang untuk mengubahnya |
Langkah berikutnya
Quickstart meninggalkan Anda dengan konfigurasi minimal yang berjalan di bawah Docker Compose. Untuk membawanya lebih jauh:
- Perluas
gateway.yamldi luar konfigurasi minimal, misalnya untuk menambahkan RBAC per-grup, failover multi-upstream, atau tujuan telemetri. Referensi konfigurasi mencakup setiap opsi. - Pindah dari Compose ke penyebaran produksi di Kubernetes atau Cloud Run, siapkan IdP Anda dengan benar, dan tinjau model keamanan. Panduan penyebaran dan operasi mencakup penyiapan per-IdP, persyaratan gambar kontainer, probe kesehatan, dan pemecahan masalah.
- Letakkan batas pengeluaran pada pengembang atau grup individual sehingga beban kerja yang liar tidak dapat mengonsumsi seluruh komitmen Anda. Spend limits mencakup API admin dan cara penegakan bekerja.
- Untuk contoh lengkap yang dikerjakan di AWS, dengan ECS Fargate atau EKS, Amazon RDS, dan Secrets Manager, lihat Deploy on AWS.
- Untuk contoh lengkap yang dikerjakan di Google Cloud, dengan Cloud Run, Cloud SQL, dan Secret Manager, lihat Deploy on Google Cloud.