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 gateway untuk Amazon Bedrock, Claude Platform di AWS, Google Cloud, dan Microsoft Foundry
6
7> 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.
8
9<Note>
10 Claude apps gateway dirancang untuk organisasi yang harus — atau lebih suka — merutekan inferensi melalui penyedia cloud mereka sendiri, misalnya untuk memenuhi persyaratan [residensi data](/docs/id/claude-apps-gateway-deploy#compliance-posture). 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](/docs/id/feature-availability) untuk perbandingan lengkap semua metode penyebaran.
11</Note>
12
13Claude 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](/docs/id/permissions#managed-settings) berdasarkan grup IdP, dan meneruskan telemetri penggunaan ke tumpukan observabilitas Anda sendiri.
14
15Ini disertakan dalam biner `claude`, jadi executable yang sama yang menjalankan Claude Code di laptop menjalankan server gateway dengan `claude gateway --config gateway.yaml`.
16
17Halaman ini mencakup:
18
19* [Mengapa Claude apps gateway](#why-claude-apps-gateway), apa yang ditambahkannya dibandingkan menjalankan milik Anda sendiri, dan kapan sesuatu yang lain lebih cocok
20* [Quickstart](#quickstart) dengan [prasyarat](#prerequisites) yang membawa gateway dari nol ke pengembang yang masuk
21* [Menghubungkan pengembang](#connect-developers), termasuk menetapkan URL gateway melalui pengaturan terkelola
22* [Ketersediaan dan keterbatasan](#availability-and-limitations) mencakup fitur Claude Code mana yang bekerja melalui gateway dan apa yang didukung server
23
24Halaman pendamping menggali lebih dalam. [Referensi konfigurasi](/docs/id/claude-apps-gateway-config) mencakup setiap opsi dalam file YAML yang ditulis quickstart, dan [panduan penyebaran](/docs/id/claude-apps-gateway-deploy) mencakup penyiapan per-IdP, penyebaran Kubernetes dan Cloud Run, serta operasi.
25
26<h2 id="why-claude-apps-gateway">
27 Mengapa Claude apps gateway
28</h2>
29
30[Gambaran umum gateway](/docs/id/gateways) 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, jadi ia meneruskan header dan bidang permintaan yang dikirim Claude Code tanpa operator mempertahankan daftar izin terpisah. Setelah digunakan, ia memberi Anda:
31
32* **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.
33* **Kontrol akses**: grup IdP Anda memetakan ke daftar izin model dan kebijakan [pengaturan terkelola](/docs/id/permissions#managed-settings). 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](/docs/id/settings#settings-precedence). Tim yang berbeda mendapatkan model, alat, dan izin yang berbeda, dan pengembang tidak dapat mengganti apa yang dikunci kebijakan mereka.
34* **Pengiriman pengaturan**: gateway mengirimkan pengaturan terkelola ke klien yang masuk sendiri, menggantikan [pengaturan yang dikelola server](/docs/id/server-managed-settings) dari konsol admin claude.ai.
35* **Telemetri**: setiap tujuan yang dikonfigurasi, seperti Datadog, Splunk, atau ClickHouse, menerima [metrik OpenTelemetry Protocol (OTLP)](/docs/id/monitoring-usage) dengan hitungan token, model, identitas pengguna, dan latensi secara default, dengan log dan jejak sebagai opt-in per-tujuan.
36* **Perutean upstream**: klien berbicara API Pesan Anthropic ke gateway, dan gateway menerjemahkan untuk setiap upstream, baik Bedrock, [Claude Platform on AWS](/docs/id/claude-platform-on-aws), Agent Platform Google Cloud, Foundry, atau API Anthropic, dengan failover di antara mereka. Anda dapat mengubah wilayah, penyedia, atau urutan failover tanpa pengembang menyadari atau mengonfigurasi ulang.
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="Diagram menunjukkan klien Claude Code terhubung melalui HTTPS dengan token bearer ke gateway Claude apps yang di-host sendiri di dalam infrastruktur Anda, yang menandatangani pengguna terhadap IdP Anda, menyimpan status auth di PostgreSQL, meneruskan telemetri ke kolektor OTLP Anda, dan meneruskan inferensi ke Amazon Bedrock, Claude Platform on AWS, Google Cloud, Microsoft Foundry, atau API Anthropic" width="760" height="320" data-path="images/claude-gateway-architecture.svg" />
40</Frame>
41
42<Note>
43 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 salah satu dari mereka ke Anthropic. Untuk lalu lintas yang tersisa proses CLI dapat mengirim dan cara menutupnya, lihat [Compliance posture](/docs/id/claude-apps-gateway-deploy#compliance-posture).
44</Note>
45
46Untuk fitur Claude Code mana yang bekerja melalui gateway dan apa yang didukung server itu sendiri, lihat [Ketersediaan dan keterbatasan](#availability-and-limitations) di bawah. Untuk keputusan seperti biaya, bypass, menjalankan beberapa gateway, dan platform serverless, lihat [panduan penyebaran](/docs/id/claude-apps-gateway-deploy#deployment).
47
48<h3 id="other-gateway-implementations">
49 Implementasi gateway lainnya
50</h3>
51
52Jika Anda sudah menjalankan gateway LLM atau gateway API yang memenuhi kebutuhan Anda, terus gunakan; [Gateway LLM lainnya](/docs/id/llm-gateway) mencakup konfigurasi Claude Code terhadapnya.
53
54[Referensi protokol gateway](/docs/id/llm-gateway-protocol) mendokumentasikan kontrak yang diharapkan Claude Code dari gateway apa pun: endpoint yang dipanggilnya, header dan bidang body untuk diteruskan, dan apa yang berhenti bekerja ketika mereka dihapus. Gateway Claude apps yang berjalan melayani superset kontrak itu di `GET /protocol`, menambahkan endpoint khusus gateway Claude apps untuk SSO sign-in, pengiriman pengaturan terkelola, dan telemetri. Ambilnya dengan `curl https://claude-gateway.internal.example.com/protocol` dari gateway yang digunakan apa pun, seperti yang dihasilkan [quickstart](#quickstart) di bawah. Perubahan breaking pada protokol diumumkan sebelumnya, tetapi kompatibilitas backward yang tidak terbatas tidak dijamin.
55
56<h2 id="quickstart">
57 Quickstart
58</h2>
59
60Quickstart 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](/docs/id/claude-apps-gateway-config#upstreams). Di akhir Anda memiliki gateway yang dapat `/login` pengembang.
61
62<Note>
63 **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.
64
65 Titik akhir gateway publik yang dioperasikan Anthropic adalah pengecualian: `/login` menerimanya melalui `https://`. Ini adalah kumpulan tetap kecil dari gateway yang dioperasikan Anthropic sendiri; mereka bukan opsi penyebaran yang dapat Anda pilih atau konfigurasi. Daftar dikompilasi ke dalam Claude Code, jadi tidak ada konfigurasi yang dapat menambahkan nama host ke dalamnya dan tidak ada gateway yang Anda hosting yang memenuhi syarat untuk pengecualian. {/* min-version: 2.1.206 */}Sebelum v2.1.206, `/login` menolak titik akhir tersebut seperti alamat publik lainnya.
66</Note>
67
68<h3 id="prerequisites">
69 Prasyarat
70</h3>
71
72Miliki ini sebelum Anda mulai:
73
74| Anda membutuhkan | Detail |
75| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
76| 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. {/* min-version: 2.1.198 */}Upstream [Claude Platform on AWS](/docs/id/claude-apps-gateway-config#claude-platform-on-aws) memerlukan Claude Code v2.1.198 atau lebih baru di server gateway. |
77| 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. |
78| PostgreSQL 14 atau lebih baru | Mendukung alur sign-in perangkat, di mana callback browser menulis dan CLI polling membaca, ditambah penghitung batas laju. Postgres yang dikelola apa pun berfungsi, termasuk tingkat terkecil. Tanpa batas pengeluaran yang dikonfigurasi, gateway menyimpan beberapa KB status auth berumur pendek; dengan [batas pengeluaran](/docs/id/claude-apps-gateway-spend-limits), ia juga menyimpan tabel pengeluaran, audit, dan identitas yang tahan lama yang harus dicadangkan. TLS melalui `?sslmode=require` direkomendasikan. |
79| 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. |
80| 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`. Asal `http://` biasa hanya diterima di loopback, untuk pengembangan lokal. |
81| Alamat jaringan pribadi | Di `/login`, Claude Code memerlukan nama host atau alamat IP gateway untuk diselesaikan hanya ke alamat pribadi: RFC 1918, CGNAT `100.64.0.0/10`, IPv6 ULA `fc00::/7`, atau loopback untuk pengembangan lokal. Pemeriksaan berjalan pada setiap IP yang diselesaikan, jadi jika alamat apa pun yang diselesaikan nama adalah publik, `/login` menolak URL. 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. {/* min-version: 2.1.206 */}Titik akhir gateway publik yang dioperasikan Anthropic dikecualikan dari pemeriksaan alamat pribadi dan proxy: `/login` menerimanya melalui `https://` dengan pencocokan nama host yang tepat, jadi persyaratan jaringan pribadi hanya berlaku untuk gateway yang Anda hosting sendiri. Sebelum v2.1.206, `/login` menolak titik akhir yang dioperasikan Anthropic seperti alamat publik lainnya. |
82| Runtime Linux | Server gateway hanya berjalan pada biner Linux asli. macOS berfungsi untuk pengembangan lokal. Windows tidak didukung sebagai platform server. |
83
84Server gateway memerlukan biner `claude` asli; unduh rilis yang disematkan seperti yang dijelaskan dalam [Install Claude Code](/docs/id/setup). Server menggunakan fitur runtime yang tidak tersedia ketika Claude Code berjalan di bawah Node. Jika Anda melihat `requires the native binary` saat boot, beralih ke salah satu metode instalasi standalone.
85
86<h3 id="steps">
87 Langkah-langkah
88</h3>
89
90<Steps>
91 <Step title="Daftarkan klien OAuth di IdP Anda">
92 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`](/docs/id/claude-apps-gateway-config#listen) di langkah 3. Catat `client_id` dan `client_secret`. Instruksi per-IdP ada di [Identity provider setup](/docs/id/claude-apps-gateway-deploy#identity-provider-setup).
93 </Step>
94
95 <Step title="Sediakan database PostgreSQL">
96 Postgres 14 atau lebih baru apa pun berfungsi, termasuk tingkat terkelola terkecil. Gateway menjalankan migrasi skema sendiri saat boot, jadi pengguna database memerlukan izin `CREATE TABLE`. Jika kebijakan keamanan Anda melarang DDL dari peran aplikasi, buat skema sebelumnya; lihat [`store`](/docs/id/claude-apps-gateway-config#store).
97 </Step>
98
99 <Step title="Tulis gateway.yaml">
100 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:
101
102 ```yaml gateway.yaml theme={null}
103 listen:
104 host: 0.0.0.0
105 port: 8080
106 # Diperlukan di balik proxy apa pun yang menghentikan TLS. Digunakan untuk IdP
107 # redirect_uri dan dokumen penemuan.
108 public_url: https://claude-gateway.internal.example.com
109
110 oidc:
111 issuer: https://login.example.com # harus melayani /.well-known/openid-configuration
112 client_id: 0oa1example2
113 client_secret: ${OIDC_CLIENT_SECRET}
114 allowed_email_domains: [example.com] # tolak id_tokens di luar organisasi Anda
115 userinfo_fallback: true # untuk IdP yang id_token-nya menghilangkan email/groups; tidak berbahaya sebaliknya
116
117 session:
118 jwt_secret: ${GATEWAY_JWT_SECRET} # openssl rand -base64 32
119 ttl_hours: 1 # juga membatasi latensi revokasi pada deprovisi IdP
120
121 store:
122 postgres_url: ${GATEWAY_POSTGRES_URL} # tambahkan ?sslmode=require untuk Postgres terkelola
123
124 upstreams:
125 - provider: bedrock
126 region: us-east-1
127 auth: {} # kosong: rantai kredensial default AWS
128 # (IRSA, peran tugas EC2/ECS, variabel env, ~/.aws)
129
130 # Model diterjemahkan per upstream secara otomatis. Katalog bawaan
131 # memetakan claude-opus-4-8 ke us.anthropic.claude-opus-4-8 dan seterusnya untuk setiap
132 # model Claude yang didukung Bedrock. Atur false dan tambahkan daftar `models:` untuk
133 # mengekspos hanya model tertentu.
134 auto_include_builtin_models: true
135 ```
136
137 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`](/docs/id/claude-apps-gateway-config#managed), fan-out telemetri melalui [`telemetry`](/docs/id/claude-apps-gateway-config#telemetry), dan failover multi-upstream, ARN throughput yang disediakan, atau wilayah non-AS melalui [`models`](/docs/id/claude-apps-gateway-config#models).
138
139 <Note>
140 Upstream Bedrock memerlukan principal AWS dengan `bedrock:InvokeModel` dan `bedrock:InvokeModelWithResponseStream` pada ARN `inference-profile/us.anthropic.*` dan ARN `foundation-model/anthropic.*` yang mendasar, dan akses model diaktifkan di konsol Bedrock untuk model Claude yang Anda inginkan. Sediakan kredensial dengan IRSA di EKS, peran tugas ECS, atau profil instans EC2 daripada kunci statis. [Referensi `upstreams`](/docs/id/claude-apps-gateway-config#upstreams) memiliki detail IAM lengkap, matriks kredensial lintas cloud, dan blok `auth` untuk penyedia lain.
141 </Note>
142 </Step>
143
144 <Step title="Jalankan">
145 Bangun gambar kontainer di sekitar biner `claude` yang memenuhi [persyaratan gambar](/docs/id/claude-apps-gateway-deploy#container-image), kemudian jalankan bersama 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 # Kredensial AWS: dalam produksi, hilangkan ini dan gunakan peran instans
158 # Untuk pengujian Compose lokal, teruskan milik Anda sendiri:
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 Gateway adalah biner Linux tunggal yang membaca konfigurasi, menjalankan penemuan OIDC terhadap IdP Anda, menerapkan migrasi skema Postgres-nya, membangun klien upstream, dan mulai mendengarkan. Boot gagal-tertutup untuk konfigurasi, koneksi Postgres dengan timeout 5 detik, 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.
176
177 Boot yang berhasil tidak memvalidasi jalur inferensi, karena kredensial instans Bedrock dan Agent Platform diselesaikan pada permintaan pertama, bukan saat boot.
178
179 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. Anda harus melihat, dalam urutan:
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 Jika boot keluar sebelum baris `claude gateway listening on`, baris terakhir stderr menamai masalahnya:
188
189 * Postgres yang tidak dapat dijangkau
190 * Peran Postgres tanpa izin DDL
191 * Dokumen penemuan OIDC yang tidak dapat dijangkau atau tidak valid
192 * Pelanggaran skema konfigurasi dengan jalur bidang yang menyinggung
193
194 Perbaiki dan mulai ulang.
195
196 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.
197 </Step>
198
199 <Step title="Verifikasi permukaan auth">
200 Tiga pemeriksaan mengkonfirmasi gateway dapat mengautentikasi pengguna nyata sebelum Anda menyerahkannya kepada pengembang.
201
202 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.
203
204 Di Windows PowerShell, jalankan `curl.exe`; `curl` biasa adalah alias untuk `Invoke-WebRequest` dan menolak flag ini.
205
206 Pertama, ambil dokumen penemuan, yang mengkonfirmasi gateway aktif, konfigurasi valid, dan semua pemeriksaan boot lulus:
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 Respons mencakup bidang tambahan, seperti `response_types_supported` dan `scopes_supported`.
222
223 Kedua, minta otorisasi perangkat, yang mengkonfirmasi alur sign-in perangkat berfungsi dan Postgres dapat dijangkau dan dapat ditulis:
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 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.
241
242 Gunakan pemeriksaan pertama yang gagal untuk menemukan masalahnya:
243
244 * **Pemeriksaan pertama gagal**: boot tidak selesai; periksa stderr
245 * **Pemeriksaan kedua gagal**: Postgres tidak dapat dijangkau dari gateway atau peran tidak dapat menulis; periksa string koneksi dan hibah
246 * **Pemeriksaan ketiga tidak mencapai IdP**: periksa bahwa URI pengalihan IdP cocok dengan `https://<gateway>/oauth/callback` persis
247 * **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`
248 </Step>
249
250 <Step title="Masukkan pengembang">
251 Langkah terakhir ini terjadi pada mesin pengembang, bukan server. Atur `forceLoginMethod` ke `"gateway"` dan `forceLoginGatewayUrl` ke `public_url` gateway Anda dalam [file pengaturan terkelola](/docs/id/settings#settings-files) mesin itu, kemudian jalankan `/login`, tekan Enter pada layar **Cloud gateway**, dan selesaikan sign-in browser. [Atur URL gateway](#set-the-gateway-url) di bawah mencakup distribusi kedua kunci dalam skala besar.
252 </Step>
253</Steps>
254
255<h2 id="connect-developers">
256 Hubungkan pengembang
257</h2>
258
259Pengembang terhubung dari laptop mereka sendiri dengan satu sign-in 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 didorong oleh [pengaturan terkelola sisi klien](/docs/id/claude-apps-gateway-config#client-side-managed-settings) yang Anda dorong melalui MDM, jadi tidak ada penyiapan manual di sisi pengembang; bagian ini mencakup apa yang dikonfigurasi admin.
260
261CLI memfingerprintkan sertifikat daun TLS gateway pada koneksi pertama dan menyematkannya per nama host. Publikasikan sidik jari SHA-256 yang diharapkan bersama URL gateway sehingga pengembang memiliki sesuatu untuk dibandingkan. Dapatkan sidik jari dari file sertifikat dengan `openssl x509 -noout -fingerprint -sha256 -in cert.pem`; prompt `/login` menunjukkan 16 karakter pertama dari digest sebagai heksadesimal huruf kecil tanpa pemisah.
262
263Ketika sertifikat berputar, setiap pengembang melihat prompt kepercayaan lagi, jadi perlakukan rotasi sebagai acara yang direncanakan dan publikasikan ulang sidik jari.
264
265Setelah masuk, [pemilih model](/docs/id/model-config) menunjukkan model dalam daftar izin `availableModels` pengembang, pengaturan terkelola diterapkan saat startup dan refresh setiap jam, dan telemetri merutekan ke kolektor Anda. Sesi menyegarkan secara diam-diam sebelum kedaluwarsa `ttl_hours`, dan refresh yang gagal setelah deprovisi IdP meminta re-login.
266
267<h3 id="set-the-gateway-url">
268 Atur URL gateway
269</h3>
270
271Atur kedua kunci dalam file [pengaturan terkelola](/docs/id/settings#settings-files) per-OS yang Anda terapkan melalui MDM atau langsung di disk, dan `/login` terbuka langsung pada layar **Cloud gateway** dengan URL diisi:
272
273```json theme={null}
274{
275 "forceLoginMethod": "gateway",
276 "forceLoginGatewayUrl": "https://claude-gateway.internal.example.com"
277}
278```
279
280Pengembang menekan Enter untuk terhubung. Prompt sidik jari TLS koneksi pertama masih muncul.
281
282Tidak ada opsi gateway di pemilih login untuk pengembang memilih secara manual, dan `forceLoginGatewayUrl` diabaikan dalam file pengaturan pengembang mereka sendiri. `forceLoginMethod` saja, tanpa URL, meninggalkan pengembang pada pesan "Hubungi administrator IT Anda". Kedua kunci milik file yang Anda dorong ke mesin, bukan di blok `managed.policies[].cli` gateway, yang hanya menjangkau klien yang sudah terhubung.
283
284<h3 id="ci-pipelines-and-remote-machines">
285 Pipeline CI dan mesin jarak jauh
286</h3>
287
288Tidak ada alur token layanan untuk pipeline yang tidak diawasi. Sign-in gateway selalu menjalankan alur perangkat browser, jadi pekerjaan CI tanpa pengembang untuk menyetujui sign-in tidak dapat mengautentikasi; konfigurasikan mereka terhadap penyedia Anda secara langsung.
289
290Setelah pengembang masuk, setiap invokasi Claude Code pada mesin itu menggunakan sesi gateway, termasuk run `claude -p` non-interaktif dan sesi yang dimulai oleh Agent SDK, dan [kebijakan gateway berlaku untuk semuanya](/docs/id/claude-apps-gateway-config#managed).
291
292Alur perangkat memisahkan CLI polling dari browser yang menyetujui, jadi kotak pengembangan jarak jauh tanpa tampilan masih berfungsi: pengembang menjalankan `/login` melalui SSH pada mesin jarak jauh dan membuka tautan verifikasi di browser di laptop mereka.
293
294<h3 id="what’s-enforced-on-developers">
295 Apa yang diberlakukan pada pengembang
296</h3>
297
298Jaminan ini berlaku untuk setiap sesi gateway yang masuk.
299
300* **Akses model**: permintaan untuk model yang tidak diberikan kebijakan mengembalikan 400, dan pemilih `/model` disaring ke daftar izin `availableModels` kebijakan. Atur [`enforceAvailableModels: true`](/docs/id/model-config#default-model-behavior) dalam kebijakan sehingga opsi Default diselesaikan ke model di dalam `availableModels` alih-alih ke default bawaan Claude Code; tanpanya, Default tetap dapat dipilih dan ditolak saat permintaan jika model itu tidak diberikan.
301* **Tujuan telemetri**: ketika [penerusan telemetri](/docs/id/claude-apps-gateway-config#telemetry) dikonfigurasi, endpoint ekspor OTLP disematkan ke gateway, dan konfigurasi yang didorong gateway mengganti variabel `OTEL_*` yang ditetapkan secara lokal.
302* **Kredensial**: token gateway adalah satu-satunya kredensial sesi. `ANTHROPIC_AUTH_TOKEN`, `ANTHROPIC_API_KEY`, `apiKeyHelper`, dan login claude.ai sebelumnya diabaikan saat masuk, jadi pengembang tidak perlu keluar dari claude.ai terlebih dahulu.
303* **Pengaturan terkelola**: kunci terkunci tidak dapat ditimpa secara lokal. CLI menerapkan kebijakan saat startup dan pada setiap polling setiap jam.
304* **Startup**: sesi yang masuk keluar saat startup dengan kesalahan setelah sekitar 10 detik ketika gateway tidak dapat dijangkau, daripada memulai tanpa pengaturan mereka.
305* **Deprovisi**: sesi yang penggunanya dinonaktifkan di IdP kedaluwarsa dalam `ttl_hours` ketika refresh berikutnya gagal.
306
307<h3 id="what-the-organization-can-see">
308 Apa yang dapat dilihat organisasi
309</h3>
310
311Telemetri penggunaan membawa identitas pengembang, hitungan token, model, dan latensi ke kolektor organisasi. Gateway tidak mencatat atau menyimpan konten prompt atau penyelesaian. Apakah telemetri yang lebih kaya seperti log dan jejak dikumpulkan, yang dapat mencakup perintah dan jalur file, adalah pilihan organisasi [per-tujuan](/docs/id/claude-apps-gateway-config#telemetry).
312
313<h2 id="availability-and-limitations">
314 Ketersediaan dan keterbatasan
315</h2>
316
317Tabel 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.
318
319Gateway mengirimkan nilai [`anthropic-beta`](https://platform.claude.com/docs/en/api/beta-headers) yang dikirim CLI ke setiap upstream, jadi operator tidak mempertahankan daftar izin beta. Untuk Amazon Bedrock, yang mengabaikan header, gateway memindahkan nilai ke bidang `anthropic_beta` badan permintaan; upstream lainnya menerima header seperti yang dikirim.
320
321Set beta sesi gateway CLI menghilangkan beta khusus pihak pertama dan beta extended-cache-ttl, itulah mengapa baris tersebut di bawah menunjukkan sebagai tidak tersedia.
322
323| Fitur | Status | Catatan |
324| ----------------------------------------------------------------------------------------------------------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
325| 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; [endpoint Mantle](/docs/id/amazon-bedrock#use-the-mantle-endpoint) Amazon Bedrock bukan upstream yang didukung. [Upstream Claude Platform on AWS](/docs/id/claude-apps-gateway-config#claude-platform-on-aws) memerlukan Claude Code v2.1.198 atau lebih baru di server gateway. |
326| 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](/docs/id/settings#settings-precedence) |
327| Fan-out telemetri (OTLP/HTTP) | Tersedia | Identitas-stamped per ekspor; kedua pengkodean protobuf dan JSON |
328| Penyedia identitas OIDC | Tersedia | Penyedia IdP yang sesuai dengan OIDC; gateway menjalankan penemuan OIDC standar dan alur kode otorisasi. Lihat [Pengaturan penyedia identitas](/docs/id/claude-apps-gateway-deploy#identity-provider-setup) untuk konfigurasi per-IdP |
329| Batas pengeluaran per-pengguna dan per-grup | Tersedia | Lihat [Spend limits](/docs/id/claude-apps-gateway-spend-limits) |
330| 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 |
331| Prompt caching standar | Tersedia | Breakpoint `cache_control` diteruskan ke setiap upstream |
332| TTL cache 1 jam | Tidak tersedia | CLI menghilangkan beta extended-cache-ttl pada sesi gateway, karena tidak setiap upstream yang dapat dirutekan gateway mendukung TTL 1 jam, jadi prompt caching melalui gateway menggunakan TTL 5 menit; lihat catatan header beta di atas |
333| Mode Auto | Tersedia | Mengikuti [aturan penyedia pihak ketiga](/docs/id/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry): hanya model yang memenuhi syarat di penyedia pihak ketiga yang dapat menggunakannya. {/* min-version: 2.1.207 */}Sebelum v2.1.207, mode auto pada sesi gateway memerlukan pengaturan `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, dapat dikirimkan melalui blok `env` kebijakan terkelola |
334| Optimasi khusus pihak pertama seperti cakupan cache global dan alat yang efisien token | Tidak tersedia | CLI tidak mengaktifkannya pada sesi gateway; lihat catatan header beta di atas |
335| OTLP/gRPC | Tidak didukung | OTLP melalui HTTP saja |
336| SAML, LDAP, dan auth non-OIDC lainnya | Tidak didukung | OIDC saja. Depan dengan jembatan OIDC jika diperlukan |
337| Multi-tenant (beberapa penerbit OIDC) | Tidak didukung | Satu penerbit per gateway. Jalankan instans terpisah |
338| Server Windows | Tidak didukung | Terapkan di Linux. macOS untuk pengembangan lokal saja |
339| Helm chart | Tidak tersedia | Gateway berjalan sebagai Deployment stateless standar; lihat [panduan penyebaran](/docs/id/claude-apps-gateway-deploy#kubernetes) |
340| Admin UI | Tidak tersedia | Konfigurasi adalah file YAML; terapkan ulang untuk mengubahnya |
341
342<h2 id="next-steps">
343 Langkah berikutnya
344</h2>
345
346Quickstart meninggalkan Anda dengan konfigurasi minimal yang berjalan di bawah Docker Compose. Untuk membawanya lebih jauh:
347
348* Perluas `gateway.yaml` di luar konfigurasi minimal, misalnya untuk menambahkan RBAC per-grup, failover multi-upstream, atau tujuan telemetri. [Referensi konfigurasi](/docs/id/claude-apps-gateway-config) mencakup setiap opsi.
349* Pindah dari Compose ke penyebaran produksi di Kubernetes atau Cloud Run, siapkan IdP Anda dengan benar, dan tinjau model keamanan. [Panduan penyebaran dan operasi](/docs/id/claude-apps-gateway-deploy) mencakup penyiapan per-IdP, persyaratan gambar kontainer, probe kesehatan, dan pemecahan masalah.
350* Letakkan batas pengeluaran pada pengembang atau grup individual sehingga beban kerja yang liar tidak dapat mengonsumsi seluruh komitmen Anda. [Spend limits](/docs/id/claude-apps-gateway-spend-limits) mencakup API admin dan cara penegakan bekerja.
351* Untuk contoh lengkap yang dikerjakan di Google Cloud, dengan Cloud Run, Cloud SQL, dan Secret Manager, lihat [Deploy on Google Cloud](/docs/id/claude-apps-gateway-on-gcp).