435 `admin`435 `admin`
436</h3>436</h3>
437 437
438Optional. Aktiviert `/v1/organizations/spend_limits`, das Anthropics öffentliche Admin API spiegelt, und Pro-Entwickler-Ausgabendurchsetzung auf `/v1/messages`. Siehe [Ausgabenlimits](/docs/de/claude-apps-gateway-spend-limits) für wie Caps gesetzt und durchgesetzt werden; dieser Abschnitt behandelt die `gateway.yaml`-Schlüssel, die die Funktion aktivieren und sie abstimmen.438Optional. Aktiviert `/v1/organizations/spend_limits`, das Anthropics öffentliche Admin-API widerspiegelt, und erzwingt Ausgabenlimits pro Entwickler auf `/v1/messages`. Siehe [Ausgabenlimits](/docs/de/claude-apps-gateway-spend-limits) für die Festlegung und Durchsetzung von Limits; dieser Abschnitt behandelt die `gateway.yaml`-Schlüssel, die die Funktion aktivieren und optimieren.
439 439
440```yaml theme={null}440```yaml theme={null}
441admin:441admin:
442 # Benannte statische API-Schlüssel für die Admin-Endpunkte, gesendet als x-api-key.442 # Benannte statische API-Schlüssel für die Admin-Endpunkte, gesendet als x-api-key.
443 # Die ID erscheint im Audit-Log als admin-key:<id>, sodass jeder Schlüssel443 # Die ID wird im Audit-Log als admin-key:<id> angezeigt, sodass jeder Schlüssel
444 # zurechenbar ist. Array für Rotation: fügen Sie den neuen Schlüssel hinzu, rollen Sie Clients,444 # zuordenbar ist. Array für Rotation: neuen Schlüssel hinzufügen, Clients aktualisieren,
445 # entfernen Sie den alten.445 # alten entfernen.
446 write_keys:446 write_keys:
447 - { id: terraform, key: "${GATEWAY_ADMIN_WRITE_KEY_TF}" }447 - { id: terraform, key: "${GATEWAY_ADMIN_WRITE_KEY_TF}" }
448 - { id: ci, key: "${GATEWAY_ADMIN_WRITE_KEY_CI}" }448 - { id: ci, key: "${GATEWAY_ADMIN_WRITE_KEY_CI}" }
449 read_keys:449 read_keys:
450 - { id: reporting, key: "${GATEWAY_ADMIN_READ_KEY}" }450 - { id: reporting, key: "${GATEWAY_ADMIN_READ_KEY}" }
451 # IdP-Gruppen, denen vollständiger Admin über das normale Gateway-JWT gewährt wird (kein API-Schlüssel).451 # IdP-Gruppen mit vollständigem Admin-Zugriff über das normale Gateway-JWT (kein API-Schlüssel).
452 admin_groups: [platform-finops]452 admin_groups: [platform-finops]
453 blocked_message: request an increase at https://go.example.com/claude-limits453 blocked_message: request an increase at https://go.example.com/claude-limits
454```454```
455 455
456| Feld | Erforderlich | Beschreibung |456| Feld | Erforderlich | Beschreibung |
457| ------------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |457| ------------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
458| `write_keys` | Nein | Array von `{id, key}`. Ein `x-api-key`, das einem dieser entspricht, kann Ausgabenlimits auflisten, setzen und löschen. Schlüsselwerte müssen mindestens 32 Zeichen sein; `id`s müssen über `read_keys` und `write_keys` eindeutig sein. |458| `write_keys` | Nein | Array von `{id, key}`. Ein `x-api-key`, das einem dieser Schlüssel entspricht, kann Ausgabenlimits auflisten, festlegen und löschen. Schlüsselwerte müssen mindestens 32 Zeichen lang sein; `id`s müssen über `read_keys` und `write_keys` hinweg eindeutig sein. |
459| `read_keys` | Nein | Array von `{id, key}`. Schreibgeschützt: jeder `GET`-Endpunkt, einschließlich Auflistung von Caps, Abrufen eines nach ID und Lesen von [`/effective`](/docs/de/claude-apps-gateway-spend-limits#%2Feffective) und [`/audit`](/docs/de/claude-apps-gateway-spend-limits#%2Faudit). |459| `read_keys` | Nein | Array von `{id, key}`. Schreibgeschützt: alle `GET`-Endpunkte, einschließlich Auflisten von Limits, Abrufen nach ID und Lesen von [`/effective`](/docs/de/claude-apps-gateway-spend-limits#%2Feffective) und [`/audit`](/docs/de/claude-apps-gateway-spend-limits#%2Faudit). |
460| `admin_groups` | Nein | IdP-Gruppennamen. Ein Gateway-JWT, dessen `groups`-Anspruch einen dieser enthält, hat vollständigen Admin-Zugriff, Lesen und Schreiben, und Audits als `oidc:<sub>`. Verwenden Sie dies für menschliche Admins; verwenden Sie API-Schlüssel für Maschinen. Ein leerer Eintrag in dieser Liste stoppt das Gateway beim Start. Siehe [Matcher-Werte, die das Gateway beim Start stoppen](#matcher-values-that-stop-the-gateway-at-boot). |460| `admin_groups` | Nein | IdP-Gruppennamen. Ein Gateway-JWT, dessen `groups`-Anspruch einen dieser Namen enthält, hat vollständigen Admin-Zugriff, Lesen und Schreiben, und wird als `oidc:<sub>` geprüft. Verwenden Sie dies für menschliche Administratoren; verwenden Sie API-Schlüssel für Maschinen. Ein leerer Eintrag in dieser Liste stoppt das Gateway beim Start. Siehe [Matcher-Werte, die das Gateway beim Start stoppen](#matcher-values-that-stop-the-gateway-at-boot). |
461| `blocked_message` | Nein | Wörtlich an die `429 billing_error` angehängt, die ein blockierter Entwickler sieht. Schreiben Sie die ganze Anweisung, wie eine URL oder einen Slack-Kanal. Nicht gesetzt, sendet das Gateway nur die Standardmeldung. Siehe [Wie Durchsetzung funktioniert](/docs/de/claude-apps-gateway-spend-limits#how-enforcement-works). |461| `blocked_message` | Nein | Wird wörtlich an den `429 billing_error` angehängt, den ein blockierter Entwickler sieht. Schreiben Sie die vollständige Anweisung, z. B. eine URL oder einen Slack-Kanal. Wenn nicht gesetzt, sendet das Gateway nur die Standardmeldung. Siehe [Wie die Durchsetzung funktioniert](/docs/de/claude-apps-gateway-spend-limits#how-enforcement-works). |
462| `audit_retention_days` | Nein | Standard `365`. Ältere `admin_audit`-Zeilen werden gefegt. |462| `audit_retention_days` | Nein | Standard `365`. Ältere `admin_audit`-Zeilen werden gelöscht. |
463| `spend_retention_months` | Nein | Standard `13`. `spend`-Zähler-Zeilen älter als dies werden gefegt. Der Standard behält ein volles Jahr plus den aktuellen Teilmonat für Jahr-über-Jahr-Berichterstattung. |463| `spend_retention_months` | Nein | Standard `13`. `spend`-Zählerzeilen, die älter als dieser Wert sind, werden gelöscht. Der Standard behält ein volles Jahr plus den aktuellen Teilmonat für Jahresvergleichsberichte. |
464| `identity_retention_days` | Nein | Standard `90`. Last-Seen-TTL für `principal_emails`-Zeilen, die die E-Mail, den Anzeigenamen und die Gruppen jedes Entwicklers enthalten (PII). Absichtlich kürzer als Ausgabenaufbewahrung, sodass eine bereitgestellte Identität altert, während ihre anonymen Ausgabenzähler bleiben. |464| `identity_retention_days` | Nein | Standard `90`. Last-Seen-TTL für `principal_emails`-Zeilen, die die E-Mail, den Anzeigenamen und die Gruppen jedes Entwicklers enthalten (PII). Absichtlich kürzer als die Ausgabenaufbewahrung, sodass eine bereitgestellte Identität ausfällt, während ihre anonymen Ausgabenzähler erhalten bleiben. |
465| `group_limit_mode` | Nein | `min` (Standard) oder `max`. Wenn ein Entwickler in mehreren Gruppen mit Caps ist, erzwingt `min` die restriktivste und `max` die am wenigsten restriktive. Wird sowohl von Durchsetzung als auch von `/effective` verwendet. |465| `group_limit_mode` | Nein | `min` (Standard) oder `max`. Wenn sich ein Entwickler in mehreren Gruppen mit Limits befindet, erzwingt `min` das restriktivste und `max` das am wenigsten restriktive. Wird sowohl von der Durchsetzung als auch von `/effective` verwendet. |
466 466
467<h3 id="enforcement">467<h3 id="enforcement">
468 `enforcement`468 `enforcement`
469</h3>469</h3>
470 470
471Der `enforcement`-Block steuert, wie Ausgabenlimit-Prüfungen sich verhalten, wenn der Store nicht verfügbar ist.471Der `enforcement`-Block steuert das Verhalten von Ausgabenlimit-Prüfungen, wenn der Store nicht verfügbar ist.
472 472
473| Feld | Erforderlich | Beschreibung |473| Feld | Erforderlich | Beschreibung |
474| ---------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |474| ---------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
475| `fail_closed_on_error` | Nein | Standard `false`. Ausgabendurchsetzung schlägt bei einem Postgres-Ausfall offen fehl, sodass Inferenz oben bleibt. Setzen Sie `true`, um geschlossen fehlzuschlagen: Über-Cap-Entwickler werden blockiert, aber so ist jeder, wenn der Store nicht erreichbar ist. Erfordert einen [`admin:`](#admin)-Block: Ausgabendurchsetzung läuft nur, wenn `admin` konfiguriert ist, und das Gateway weigert sich zu starten, wenn Sie dies `true` ohne einen setzen. |475| `fail_closed_on_error` | Nein | Standard `false`. Die Ausgabendurchsetzung schlägt bei einem Postgres-Ausfall offen fehl, sodass die Inferenz aktiv bleibt. Setzen Sie auf `true`, um geschlossen fehlzuschlagen: Entwickler über dem Limit werden blockiert, aber auch alle anderen, wenn der Store nicht erreichbar ist. Erfordert einen [`admin:`](#admin)-Block: Die Ausgabendurchsetzung wird nur ausgeführt, wenn `admin` konfiguriert ist, und das Gateway weigert sich zu starten, wenn Sie dies auf `true` setzen, ohne einen. |
476 476
477<h3 id="pricing">477<h3 id="pricing">
478 `pricing`478 `pricing`
479</h3>479</h3>
480 480
481Der `pricing`-Block teilt dem Ausgabenzähler mit, was statt USD-Listenpreis zu berechnen ist, sodass Caps und [`/effective`](/docs/de/claude-apps-gateway-spend-limits#%2Feffective) Ihre vertraglich vereinbarten Sätze widerspiegeln. Beträge bleiben in USD und sind eine Schätzung, keine Rechnung. Zwei Voraussetzungen:481Der `pricing`-Block teilt dem Ausgabenzähler mit, was statt des USD-Listenpreises berechnet werden soll, sodass Limits und [`/effective`](/docs/de/claude-apps-gateway-spend-limits#%2Feffective) Ihre vertraglich vereinbarten Sätze widerspiegeln. Beträge bleiben in USD und sind eine Schätzung, keine Rechnung. Zwei Voraussetzungen:
482 482
483* Claude Code v2.1.227 oder später auf dem Gateway-Server. Frühere Versionen lehnen den unbekannten Schlüssel beim Start ab.483* Claude Code v2.1.227 oder später auf dem Gateway-Server. Frühere Versionen lehnen den unbekannten Schlüssel beim Start ab.
484* Ein [`admin:`](#admin)-Block oder, in v2.1.268 oder später, ein [`managed:`](#managed)-Block mit mindestens einer Richtlinie. Das Gateway weigert sich zu starten, wenn `pricing` gesetzt ist und keiner dieser Blöcke vorhanden ist, da nichts ihn lesen würde.484* Ein [`admin:`](#admin)-Block oder in v2.1.268 oder später ein [`managed:`](#managed)-Block mit mindestens einer Richtlinie. Das Gateway weigert sich zu starten, wenn `pricing` gesetzt ist und keiner der Blöcke vorhanden ist, da nichts es lesen würde.
485 485
486```yaml theme={null}486```yaml theme={null}
487pricing:487pricing:
497 497
498| Feld | Erforderlich | Beschreibung |498| Feld | Erforderlich | Beschreibung |
499| ------------ | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |499| ------------ | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
500| `multiplier` | Nein | Standard `1`. Der Zähler multipliziert jeden gemessenen Betrag mit diesem, ob listenpreisig oder überschrieben, sodass `0.85` 85% des Preises abrechnet. Muss größer als 0 und höchstens 1 sein. |500| `multiplier` | Nein | Standard `1`. Der Zähler multipliziert jeden gezählten Betrag mit diesem, ob listenpreisig oder überschrieben, sodass `0.85` 85 % des Preises berechnet. Muss größer als 0 und höchstens 1 sein. |
501| `overrides` | Nein | Zeilen von `{upstream, model, input, output, cache_read, cache_write}` in USD pro Million Token. Alle vier Sätze sind erforderlich. Jeder muss größer als 0 und höchstens 10000 sein. |501| `overrides` | Nein | Zeilen von `{upstream, model, input, output, cache_read, cache_write}` in USD pro Million Token. Alle vier Sätze sind erforderlich. Jeder muss größer als 0 und höchstens 10.000 sein. |
502 502
503Wie der Zähler eine Überschreibungszeile passt:503Wie der Zähler eine Überschreibungszeile abgleicht:
504 504
505* Eine Zeile ersetzt den Listenpreis für Anfragen, die `upstream`, ein [`upstreams[].name`](#upstreams), für `model` bedient. Das schließt den höheren [Schnellmodus](/docs/de/fast-mode#understand-the-cost-tradeoff)-Satz ein, sodass Schnell- und Standard-Anfragen mit den gleichen vier Sätzen gemessen werden.505* Eine Zeile ersetzt den Listenpreis für Anfragen, die `upstream`, ein [`upstreams[].name`](#upstreams), für `model` bedient. Das schließt den höheren [Schnellmodus](/docs/de/fast-mode#understand-the-cost-tradeoff)-Satz ein, sodass Schnell- und Standardanfragen mit denselben vier Sätzen gezählt werden.
506* Eine eingebaute ID wie `claude-sonnet-4-6`, abgeglichen wie [`models[].id`](#models), deckt jede datierte Form, regionale Amazon Bedrock-Form oder Google Cloud Agent Platform-Form ab, die der Zähler als dieses Modell preist. Jede andere Zeichenkette, wie ein Alias oder eine Inferenz-Profil-ARN, passt die ID, die der Client gesendet hat, oder die Zeichenkette, die Upstream gesendet wurde, Groß-/Kleinschreibung ignoriert.506* Eine integrierte ID wie `claude-sonnet-4-6`, abgeglichen wie [`models[].id`](#models), deckt jede datierte Form, regionale Amazon-Bedrock-Form oder Google-Cloud-Agent-Plattformform ab, die der Zähler als dieses Modell bewertet. Jede andere Zeichenkette, z. B. ein Alias oder ein Inferenzprofil-ARN, gleicht die ID ab, die der Client gesendet hat, oder die Zeichenkette, die upstream gesendet wurde, Groß-/Kleinschreibung ignoriert.
507* Wo Zeilen sich überlappen, wählt der Zähler die spezifischste Zeile statt der ersten Zeile: eine Zeile, deren `model` die genaue Modellzeichenkette ist, die Upstream gesendet wurde, dann eine Zeile, die die genaue ID passt, die der Client gesendet hat, dann eine Zeile, die das eingebaute Modell benennt.507* Wenn sich Zeilen überlappen, wählt der Zähler die spezifischste Zeile statt der ersten Zeile: eine Zeile, deren `model` die genaue Modellzeichenkette ist, die upstream gesendet wurde, dann eine Zeile, die die genaue ID abgleicht, die der Client gesendet hat, dann eine Zeile, die das integrierte Modell benennt.
508* Ein unbekannter Upstream-Name schlägt beim Start fehl, und so tun es zwei Zeilen für einen Upstream, die das gleiche Modell benennen, einschließlich zwei Schreibweisen eines eingebauten Modells. Das Gateway warnt beim Start vor einer Zeile, die kein anfragbares Modell verwenden kann.508* Ein unbekannter Upstream-Name schlägt beim Start fehl, ebenso wie zwei Zeilen für einen Upstream, die dasselbe Modell benennen, einschließlich zwei Schreibweisen eines integrierten Modells. Das Gateway warnt beim Start vor einer Zeile, die kein anforderbares Modell verwenden kann.
509* Web-Such-Anfragen bleiben beim \$0.01-Listenpreis; der Multiplikator gilt immer noch für sie.509* Web-Such-Anfragen bleiben beim \$0,01-Listenpreis; der Multiplikator wird immer noch auf sie angewendet.
510 510
511Für Pro-Region-Sätze geben Sie jeder Region ihren eigenen benannten Upstream und eine Zeile pro Upstream.511Für regionale Sätze geben Sie jeder Region seinen eigenen benannten Upstream und eine Zeile pro Upstream.
512 512
513<h4 id="send-the-rates-to-signed-in-clients">513<h4 id="send-the-rates-to-signed-in-clients">
514 Sätze an angemeldete Clients senden514 Sätze an angemeldete Clients senden
515</h4>515</h4>
516 516
517Mit v2.1.268 oder später auf dem Gateway-Server fügt das Gateway auch die Sätze aus `pricing` in die [`managed`](#managed)-Richtlinien ein, die es bedient, als die [`modelPricing`](/docs/de/settings-reference#modelpricing)-verwaltete Einstellung. Entwickler, die von einer Richtlinie abgeglichen werden, sehen dann die `pricing`-Sätze für den ersten Upstream, der jede Modell-ID in `/usage`, der Statuszeile und OpenTelemetry bedient. Ein Entwickler, der keine Richtlinie passt, erhält keine verwalteten Einstellungen, sodass seine Zahlen bei Listenpreis bleiben. Clients wenden die Einstellung in Claude Code v2.1.242 oder später an.517Mit v2.1.268 oder später auf dem Gateway-Server fügt das Gateway die Sätze aus `pricing` auch in die [`managed`](#managed)-Richtlinien ein, die es bedient, als die [`modelPricing`](/docs/de/settings-reference#modelpricing)-verwaltete Einstellung. Entwickler, die von einer Richtlinie abgeglichen werden, sehen dann die `pricing`-Sätze für den ersten Upstream, der jede Modell-ID in `/usage`, der Statuszeile und OpenTelemetry bedient. Ein Entwickler, der keine Richtlinie abgleicht, erhält keine verwalteten Einstellungen, sodass seine Zahlen beim Listenpreis bleiben. Clients wenden die Einstellung in Claude Code v2.1.242 oder später an.
518 518
519* Was das Gateway hinzufügt: Es fügt den `multiplier` und, für jede Modell-ID, die ein Client anfordern kann, die Überschreibungszeile des ersten Upstream, der diese ID bedient, hinzu, es sei denn, der `cli`-Block einer Richtlinie setzt bereits `modelPricing`. Eine Rate, die nur ein Failover-Upstream berechnet, bleibt auf dem Gateway.519* Was das Gateway hinzufügt: Sofern der `cli`-Block einer Richtlinie nicht bereits `modelPricing` setzt, fügt das Gateway den `multiplier` und für jede Modell-ID, die ein Client anfordern kann, die Überschreibungszeile des ersten Upstream hinzu, der diese ID bedient. Ein Satz, den nur ein Failover-Upstream berechnet, bleibt beim Gateway.
520* Opt eine Richtlinie aus: Setzen Sie `modelPricing` auf `{}` im `cli`-Block dieser Richtlinie, und ihre Entwickler bleiben bei Listenpreis.520* Eine Richtlinie ausschließen: Setzen Sie `modelPricing` auf `{}` im `cli`-Block dieser Richtlinie, und ihre Entwickler bleiben beim Listenpreis.
521* Behalten Sie die eigenen Sätze einer Richtlinie: Eine Richtlinie, deren `cli`-Block `modelPricing` mit ihrem eigenen `multiplier` oder `overrides` setzt, behält dieses `modelPricing` ganz, und das Gateway fügt keine Sätze davon hinzu.521* Sätze einer Richtlinie behalten: Eine Richtlinie, deren `cli`-Block `modelPricing` mit ihrem eigenen `multiplier` oder `overrides` setzt, behält dieses `modelPricing` ganz, und das Gateway fügt keine eigenen Sätze hinzu.
522 522
523<h3 id="models">523<h3 id="models">
524 `models`524 `models`
525</h3>525</h3>
526 526
527Der `models`-Block ist eine optionale von Admin kuratierte Modellliste, die unter `/v1/models` bereitgestellt wird und zum Übersetzen von Modell-IDs pro Upstream verwendet wird. Es ist erforderlich für Nicht-US-Amazon Bedrock-Regionen, Amazon Bedrock-bereitgestellte Durchsatz-ARNs und Microsoft Foundry-Bereitstellungsnamen.527Der `models`-Block ist eine optionale von Administratoren kuratierte Modellliste, die unter `/v1/models` bedient und verwendet wird, um Modell-IDs pro Upstream zu übersetzen. Sie ist erforderlich für Nicht-US-Amazon-Bedrock-Regionen, Amazon-Bedrock-Provisioned-Throughput-ARNs und Microsoft-Foundry-Bereitstellungsnamen.
528 528
529```yaml theme={null}529```yaml theme={null}
530auto_include_builtin_models: true # false: nur die Liste unten exponieren530auto_include_builtin_models: true # false: expose only the list below
531models:531models:
532 - id: claude-opus-4-8532 - id: claude-opus-4-8
533 label: Claude Opus 4.8533 label: Claude Opus 4.8
534 # description: optionaler Text, der in Clients angezeigt wird, die ihn exponieren534 # description: optional text shown in clients that surface it
535 upstream_model:535 upstream_model:
536 anthropic: claude-opus-4-8536 anthropic: claude-opus-4-8
537 bedrock: us.anthropic.claude-opus-4-8 # oder eine Inferenz-Profil-ARN537 bedrock: us.anthropic.claude-opus-4-8 # or an inference-profile ARN
538 foundry: your-opus-deployment-name538 foundry: your-opus-deployment-name
539```539```
540 540
541Jeder Schlüssel unter `upstream_model` muss dem `name` eines konfigurierten Upstream entsprechen, der standardmäßig auf den Provider-Namen gesetzt ist. Ein Schlüssel, der keinem Upstream entspricht, schlägt beim Start fehl, also lassen Sie die Zeilen für Provider weg, die Sie nicht verwenden.541Jeder Schlüssel unter `upstream_model` muss dem `name` eines konfigurierten Upstream entsprechen, der standardmäßig auf den Anbieternamen gesetzt ist. Ein Schlüssel, der keinem Upstream entspricht, schlägt beim Start fehl, daher lassen Sie die Zeilen für Anbieter weg, die Sie nicht verwenden.
542 542
543<h3 id="managed">543<h3 id="managed">
544 `managed`544 `managed`
545</h3>545</h3>
546 546
547Der `managed`-Block definiert rollenbasierte Zugriffrichtlinien, die auf IdP-Gruppen oder E-Mail-Domäne geschlüsselt sind. Richtlinien werden in Reihenfolge ausgewertet; die erste Übereinstimmung wird ausgewählt, dann auf die `match: {}`-Catch-All-Basis zusammengeführt, die unten beschrieben wird. Sie werden pro Benutzer unter `GET /managed/settings` mit ETag/304-Caching bereitgestellt.547Der `managed`-Block definiert rollenbasierte Zugriffrichtlinien, die nach IdP-Gruppen oder E-Mail-Domäne verschlüsselt sind. Richtlinien werden in Reihenfolge ausgewertet; die erste Übereinstimmung wird ausgewählt und dann mit der unten beschriebenen `match: {}`-Catch-All-Basis zusammengeführt. Sie werden pro Benutzer unter `GET /managed/settings` mit ETag/304-Caching bedient.
548 548
549```yaml theme={null}549```yaml theme={null}
550managed:550managed:
551 policies:551 policies:
552 # Spezifische Gruppen zuerst.552 # Specific groups first.
553 - match: { groups: [eng-contractors] }553 - match: { groups: [eng-contractors] }
554 cli:554 cli:
555 availableModels: [claude-sonnet-4-6]555 availableModels: [claude-sonnet-4-6]
556 permissions: { deny: ["WebFetch", "WebSearch"] }556 permissions: { deny: ["WebFetch", "WebSearch"] }
557 # Standard-Catch-All zuletzt: passt zu jedem, der sich authentifiziert hat.557 # Default catch-all last: matches everyone who authenticated.
558 - match: {}558 - match: {}
559 cli:559 cli:
560 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]560 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]
561```561```
562 562
563Ein `match: {}`-Catch-All, üblicherweise zuletzt aufgelistet, wird als Basisschicht behandelt. Jede andere Richtlinie erbt jeden Schlüssel, den sie nicht von der Catch-All setzt, sodass Pro-Rollen-Einträge nur auflisten müssen, was sich vom Org-Standard unterscheidet. Die Zusammenführungsregeln hängen vom Schlüsseltyp ab:563Eine `match: {}`-Catch-All, üblicherweise zuletzt aufgelistet, wird als Basisschicht behandelt. Jede andere Richtlinie erbt jeden Schlüssel, den sie nicht setzt, von der Catch-All, sodass Pro-Rollen-Einträge nur auflisten müssen, was sich vom Organisationsstandardwert unterscheidet. Die Zusammenführungsregeln hängen vom Schlüsseltyp ab:
564 564
565* **Zulassungslisten**: `availableModels` und `permissions.allow`. Die Liste einer spezifischen Richtlinie ersetzt die Basis vollständig.565* **Zulassungslisten**: `availableModels` und `permissions.allow`. Die Liste einer bestimmten Richtlinie ersetzt die Basis vollständig.
566* **Ablehnungslisten und Hook-Arrays**: `permissions.deny`, `permissions.ask`, `disabledMcpjsonServers`, `deniedMcpServers`, `blockedMarketplaces` und jedes `hooks`-Event-Typ-Array. Diese nehmen die Vereinigung von Basis und Richtlinie, sodass ein Org-weiter Ablehnungs- oder Audit-Hook nicht versehentlich durch eine Pro-Rollen-Überschreibung gelöscht werden kann.566* **Ablehnungslisten und Hook-Arrays**: `permissions.deny`, `permissions.ask`, `disabledMcpjsonServers`, `deniedMcpServers`, `blockedMarketplaces` und jedes `hooks`-Event-Typ-Array. Diese nehmen die Vereinigung von Basis und Richtlinie, sodass ein organisationsweiter Ablehnungs- oder Audit-Hook nicht versehentlich durch eine Pro-Rollen-Überschreibung gelöscht werden kann.
567* **Record-typisierte Schlüssel**: `env`, `modelOverrides` und `skillOverrides`. Diese flach-zusammenführen, sodass ein Pro-Rollen-`env`-Block Schlüssel überschreibt, die er setzt, und den Rest von der Basis erbt.567* **Datensatz-typisierte Schlüssel**: `env`, `modelOverrides` und `skillOverrides`. Diese werden flach zusammengeführt, sodass ein Pro-Rollen-`env`-Block Schlüssel überschreibt, die er setzt, und den Rest von der Basis erbt.
568 568
569`availableModels` wird auch Server-seitig unter `/v1/messages` durchgesetzt, sodass ein abgelehntes Modell `400` zurückgibt, unabhängig davon, was der Client sendet.569`availableModels` wird auch serverseitig unter `/v1/messages` erzwungen, sodass ein abgelehntes Modell `400` zurückgibt, unabhängig davon, was der Client sendet.
570 570
571Das Gateway validiert den `model`-Wert selbst, bevor es eine Anfrage weiterleitet, sodass ein fehlgeformter Wert niemals einen Upstream erreicht. Es lehnt die Anfrage in zwei Fällen mit einem `400` ab:571Das Gateway validiert den `model`-Wert selbst, bevor es eine Anfrage weitergeleitet, sodass ein fehlerhafter Wert niemals einen Upstream erreicht. Es lehnt die Anfrage in zwei Fällen mit `400` ab:
572 572
573* Wenn der Wert fehlt oder leer ist, lehnt das Gateway die Anfrage mit der Meldung `model is required` ab. Diese Prüfung erfordert ein Gateway, das Claude Code v2.1.228 oder später ausführt.573* Wenn der Wert fehlt oder leer ist, lehnt das Gateway die Anfrage mit der Meldung `model is required` ab. Diese Prüfung erfordert ein Gateway, das Claude Code v2.1.228 oder später ausführt.
574* Wenn der Wert vorhanden ist, aber keine Zeichenkette ist, lehnt das Gateway die Anfrage mit der Meldung `model must be a string` ab. Erfordert ein Gateway, das Claude Code v2.1.221 oder später ausführt.574* Wenn der Wert vorhanden ist, aber keine Zeichenkette ist, lehnt das Gateway die Anfrage mit der Meldung `model must be a string` ab. Erfordert ein Gateway, das Claude Code v2.1.221 oder später ausführt.
575 575
576| Matcher | Verhalten |576| Matcher | Verhalten |
577| --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |577| --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
578| `match: {}` | Passt zu jedem authentifizierten Benutzer. Beginnen Sie mit einem davon und fügen Sie später Gruppen-gesteuerter Richtlinien darüber hinzu. |578| `match: {}` | Gleicht jeden authentifizierten Benutzer ab. Beginnen Sie mit einem davon und fügen Sie später gruppenbezogene Richtlinien darüber hinzu. |
579| `match: { groups: [a, b] }` | Passt, wenn der JWT-`groups`-Anspruch eine der aufgelisteten Gruppen enthält. Groß-/Kleinschreibung beachtet: Gruppen müssen die genaue Groß-/Kleinschreibung des IdP abgleichen. |579| `match: { groups: [a, b] }` | Gleicht ab, wenn der `groups`-Anspruch des JWT eine der aufgelisteten Gruppen enthält. Groß-/Kleinschreibung beachtet: Gruppen müssen der genauen Schreibweise des IdP entsprechen. |
580| `match: { email_domain: example.com }` | Passt den Teil nach dem letzten `@` im JWT-`email`-Anspruch, Groß-/Kleinschreibung ignoriert. Akzeptiert eine Domäne pro Richtlinie. |580| `match: { email_domain: example.com }` | Gleicht den Teil nach dem letzten `@` im `email`-Anspruch des JWT ab, Groß-/Kleinschreibung ignoriert. Akzeptiert eine Domäne pro Richtlinie. |
581| `match: { groups: [a], email_domain: example.com }` | Beide Bedingungen müssen passen |581| `match: { groups: [a], email_domain: example.com }` | Beide Bedingungen müssen übereinstimmen |
582 582
583Ein authentifizierter Benutzer, der keine Richtlinie passt, erhält die Gateway-Standardwerte, was bedeutet, jedes Modell im Katalog und keine verwalteten Einstellungen. Fügen Sie einen `match: {}`-Catch-All zuletzt hinzu, wenn Sie eine garantierte Standard-Richtlinie möchten.583Ein authentifizierter Benutzer, der keine Richtlinie abgleicht, erhält die Standardwerte des Gateways, was bedeutet, jedes Modell im Katalog und keine verwalteten Einstellungen. Fügen Sie eine `match: {}`-Catch-All zuletzt hinzu, wenn Sie eine garantierte Standardrichtlinie möchten.
584 584
585<Note>585<Note>
586 Das Gateway führt kein eigenes Benutzerverzeichnis. Es autorisiert jede Anfrage vom IdP-Token des Benutzers, liest die Gruppenmitgliedschaft vom `groups`-Anspruch des Tokens und wertet Richtlinien dagegen aus. Es gibt kein Roster zum Aufzählen und keine Konten zum Vorerstellen, und daher keinen SCIM-Endpunkt, da es nichts gibt, das SCIM hinein synchronisieren könnte.586 Das Gateway führt kein eigenes Benutzerverzeichnis. Es autorisiert jede Anfrage vom IdP-Token des Benutzers, liest die Gruppenmitgliedschaft aus dem `groups`-Anspruch des Tokens und wertet Richtlinien dagegen aus. Es gibt kein Verzeichnis zum Aufzählen und keine Konten zum Vorab-Erstellen, und daher keinen SCIM-Endpunkt, da es nichts gibt, das SCIM synchronisieren könnte.
587 587
588 Führen Sie Benutzer- und Gruppen-Lebenszyklusverwaltung an der Quelle der Wahrheit durch, die der native SCIM-Bereitstellung Ihres IdP oder eine dedizierte Identitäts-Governance-Plattform ist. Mitgliedschaft und Bereitstellung, die dort regiert werden, fließen automatisch durch den Token in das Gateway. Wenn Sie SCIM-Bereitstellung von Claude-Konten selbst möchten, das ist eine [Claude for Enterprise](/docs/de/admin-setup)-Fähigkeit.588 Führen Sie Benutzer- und Gruppenzyklus-Management an der Quelle der Wahrheit durch, die das native SCIM-Provisioning Ihres IdP oder eine dedizierte Identitäts-Governance-Plattform ist. Mitgliedschaft und Deprovisioning, die dort gesteuert werden, fließen automatisch durch den Token in das Gateway. Wenn Sie SCIM-Provisioning von Claude-Konten selbst möchten, ist das eine [Claude for Enterprise](/docs/de/admin-setup)-Fähigkeit.
589 589
590 Zwei Ausbreitungsuhren gelten:590 Zwei Ausbreitungsuhren gelten:
591 591
592 * **Richtlinieninhalt**: Das Bearbeiten einer Richtlinie und das erneute Bereitstellen erreichen verbundene Clients bei ihrer nächsten verwalteten Einstellungsabfrage, innerhalb einer Stunde, abgesehen von den [Änderungen, die nur beim nächsten Start gelten](/docs/de/server-managed-settings#fetch-and-caching-behavior)592 * **Richtlinieninhalt**: Das Bearbeiten einer Richtlinie und das erneute Bereitstellen erreichen verbundene Clients bei ihrer nächsten verwalteten Einstellungsabfrage, innerhalb einer Stunde, abgesehen von den [Änderungen, die nur beim nächsten Start gelten](/docs/de/server-managed-settings#fetch-and-caching-behavior)
593 * **Gruppenmitgliedschaft**: Das Ändern der Gruppenmitgliedschaft eines Benutzers ändert, welche Richtlinie ihn passt. Dies tritt bei der nächsten Session-Neuerstellung in Kraft, was die nächste stille Aktualisierung bedeutet, begrenzt durch `session.ttl_hours`.593 * **Gruppenmitgliedschaft**: Das Ändern der Gruppenmitgliedschaft eines Benutzers ändert, welche Richtlinie ihn abgleicht. Dies tritt beim nächsten Sitzungs-Neuausgabe in Kraft, was die nächste stille Aktualisierung bedeutet, begrenzt durch `session.ttl_hours`.
594</Note>594</Note>
595 595
596<h4 id="matcher-values-that-stop-the-gateway-at-boot">596<h4 id="matcher-values-that-stop-the-gateway-at-boot">
597 Matcher-Werte, die das Gateway beim Start stoppen597 Matcher-Werte, die das Gateway beim Start stoppen
598</h4>598</h4>
599 599
600Beim Start überprüft das Gateway den `match`-Block jeder Richtlinie und die [`admin_groups`](#admin)-Liste. Jeder dieser Werte stoppt das Gateway mit einem Fehler, der das Feld benennt:600Beim Start prüft das Gateway den `match`-Block jeder Richtlinie und die [`admin_groups`](#admin)-Liste. Jeder dieser Werte stoppt das Gateway mit einem Fehler, der das Feld benennt:
601 601
602* Eine leere `groups`-Liste602* Eine leere `groups`-Liste
603* Ein leerer Eintrag in `groups` oder in `admin_groups`603* Ein leerer Eintrag in `groups` oder in `admin_groups`
604* Eine leere `email_domain`604* Eine leere `email_domain`
605* Eine `email_domain`, die `@`, Leerzeichen oder ein Komma enthält. Das Gateway trimmt den Wert und entfernt ein führendes `@`, bevor diese Prüfung durchgeführt wird. Schreiben Sie eine bloße Domäne, wie `example.com`.605* Eine `email_domain`, die `@`, Leerzeichen oder ein Komma enthält. Das Gateway trimmt den Wert und entfernt ein führendes `@`, bevor diese Prüfung durchgeführt wird. Schreiben Sie eine bloße Domäne, z. B. `example.com`.
606 606
607Vor v2.1.232 startete das Gateway mit diesen Werten. Jeder Wert hatte diese Auswirkung:607Vor v2.1.232 startete das Gateway mit diesen Werten. Jeder Wert hatte diese Auswirkung:
608 608
609* Eine leere `email_domain`: Das Gateway übersprung die Domänenprüfung, sodass eine Richtlinie mit einer leeren `email_domain` und keiner `groups`-Liste jeden authentifizierten Benutzer passte609* Eine leere `email_domain`: Das Gateway übersprung die Domänenprüfung, sodass eine Richtlinie mit einer leeren `email_domain` und keiner `groups`-Liste jeden authentifizierten Benutzer abglich
610* Eine leere `groups`-Liste: Die Richtlinie passte niemanden610* Eine leere `groups`-Liste: Die Richtlinie gleichte niemanden ab
611* Eine `email_domain`, die `@`, Leerzeichen oder ein Komma enthält: Die Richtlinie passte niemanden611* Eine `email_domain`, die `@`, Leerzeichen oder ein Komma enthält: Die Richtlinie gleichte niemanden ab
612* Ein leerer Eintrag in `groups` oder in `admin_groups`: Der Eintrag passte einen Benutzer nur, wenn der IdP-`groups`-Anspruch des Benutzers auch einen leeren Eintrag enthielt. In `admin_groups` gewährte diese Übereinstimmung Admin-Zugriff. Wenn Ihre `admin_groups`-Liste niemals einen leeren Eintrag enthielt, gewann niemand auf diese Weise Admin-Zugriff.612* Ein leerer Eintrag in `groups` oder in `admin_groups`: Der Eintrag gleichte einen Benutzer nur ab, wenn der `groups`-Anspruch des IdP dieses Benutzers auch einen leeren Eintrag enthielt. In `admin_groups` gewährte diese Übereinstimmung Admin-Zugriff. Wenn Ihre `admin_groups`-Liste niemals einen leeren Eintrag enthielt, erhielt niemand auf diese Weise Admin-Zugriff.
613 613
614<h4 id="what-goes-in-cli">614<h4 id="what-goes-in-cli">
615 Was geht in `cli`615 Was in `cli` geht
616</h4>616</h4>
617 617
618Jeder `cli`-Wert ist ein vollständiges Claude Code `managed-settings.json`-Dokument, das gleiche Schema, das Sie über MDM oder `/etc/claude-code/managed-settings.json` bereitstellen würden, hier als YAML ausgedrückt. Die CLI wendet das bereitgestellte Dokument auf der verwalteten Ebene an, über Benutzer- und Projekteinstellungen, anstelle von Server-verwalteten Einstellungen. Sie ignoriert daher die Einstellungen [beschränkt auf OS-Ebenen-Richtlinienquellen](/docs/de/server-managed-settings#current-limitations), wie `policyHelper` und `wslInheritsWindowsSettings`.618Jeder `cli`-Wert ist ein vollständiges Claude-Code-`managed-settings.json`-Dokument, das gleiche Schema, das Sie über MDM oder `/etc/claude-code/managed-settings.json` bereitstellen würden, hier als YAML ausgedrückt. Die CLI wendet das bereitgestellte Dokument auf der verwalteten Ebene an, über Benutzer- und Projekteinstellungen, anstelle von serverseitig verwalteten Einstellungen. Sie ignoriert daher die Einstellungen, die [auf OS-Ebenen-Richtlinienquellen beschränkt sind](/docs/de/server-managed-settings#current-limitations), wie `policyHelper` und `wslInheritsWindowsSettings`.
619 619
620Das Gateway validiert jedes Dokument beim Start gegen das Einstellungsschema der CLI, sodass ein nicht erkannter Top-Level-Schlüssel beim Start mit einem Fehler fehlschlägt, der jeden fehlerhaften Schlüssel benennt. Absichtlich offene Teile des Schemas akzeptieren immer noch beliebige Werte, da neuere Clients Einträge erkennen können, die das Gateway-Schema nicht erkennt. Diese offenen Schlüssel sind `env`, `pluginConfigs` und Schlüssel, die unter `permissions` verschachtelt sind.620Das Gateway validiert jedes Dokument beim Start gegen das Einstellungsschema der CLI, sodass ein nicht erkannter Top-Level-Schlüssel beim Start mit einem Fehler fehlschlägt, der jeden fehlerhaften Schlüssel benennt. Absichtlich offene Teile des Schemas akzeptieren immer noch beliebige Werte, da neuere Clients Einträge erkennen können, die das Schema des Gateways nicht erkennt. Diese offenen Schlüssel umfassen `env`, `pluginConfigs` und Schlüssel, die unter `permissions` verschachtelt sind.
621 621
622Da die Validierung das Schema verwendet, das mit der installierten Version des Gateways gebündelt ist, erfordert das Einfügen eines Top-Level-Einstellungsschlüssels, der von einer neueren Claude Code-Version eingeführt wurde, in verwaltete Konfiguration, das Gateway zuerst zu aktualisieren. Rauchtesten Sie eine neue Richtlinie auf einem Client, bevor Sie sie ausrollen.622Da die Validierung das Schema verwendet, das mit der installierten Version des Gateways gebündelt ist, erfordert das Einfügen eines Top-Level-Einstellungsschlüssels, der von einer neueren Claude-Code-Version eingeführt wurde, in die verwaltete Konfiguration, das Gateway zuerst zu aktualisieren. Testen Sie eine neue Richtlinie auf einem Client, bevor Sie sie ausrollen.
623 623
624Die vollständige Schlüsselreferenz ist in [Claude Code-Einstellungen](/docs/de/settings-reference#all-settings). Die Schlüssel, die Operatoren zuerst erreichen:624Die vollständige Schlüsselreferenz befindet sich in [Claude-Code-Einstellungen](/docs/de/settings-reference#all-settings). Die Schlüssel, die Operatoren zuerst erreichen:
625 625
626```yaml theme={null}626```yaml theme={null}
627managed:627managed:
628 policies:628 policies:
629 - match: {}629 - match: {}
630 cli:630 cli:
631 # Modellzugriff (auch Server-seitig unter /v1/messages durchgesetzt)631 # Model access (also enforced server-side at /v1/messages)
632 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]632 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]
633 633
634 # Berechtigungsrichtlinie634 # Permission policy
635 permissions:635 permissions:
636 deny:636 deny:
637 - "WebFetch"637 - "WebFetch"
638 - "Read(./.env)"638 - "Read(./.env)"
639 - "Read(./secrets/**)"639 - "Read(./secrets/**)"
640 disableBypassPermissionsMode: disable # blockiert --dangerously-skip-permissions640 disableBypassPermissionsMode: disable # blocks --dangerously-skip-permissions
641 allowManagedPermissionRulesOnly: true # ignoriert Benutzer-/Projektberechtigungsregeln641 allowManagedPermissionRulesOnly: true # ignore user/project permission rules
642 642
643 # Umgebung in den CLI-Prozess gepusht. DISABLE_UPDATES blockiert643 # Environment pushed into the CLI process. DISABLE_UPDATES blocks
644 # Hintergrund- und manuelle Updates; DISABLE_AUTOUPDATER stoppt nur644 # background and manual updates; DISABLE_AUTOUPDATER stops only
645 # Hintergrund-Updates.645 # background updates.
646 env:646 env:
647 DISABLE_UPDATES: "1" # pin-Versionen über Ihre eigene Verteilung647 DISABLE_UPDATES: "1" # pin versions via your own distribution
648 648
649 # Org-weite Hooks. Hook-Befehle laufen auf Entwicklermaschinen, nicht dem649 # Org-wide hooks. Hook commands run on developer machines, not the
650 # Gateway, sodass der Pfad auf jedem Client-OS in der Richtlinie existieren muss.650 # gateway, so the path must exist on every client OS in the policy.
651 hooks:651 hooks:
652 PostToolUse:652 PostToolUse:
653 - matcher: "Edit|Write"653 - matcher: "Edit|Write"
655 - { type: command, command: /usr/local/bin/audit-edit.sh }655 - { type: command, command: /usr/local/bin/audit-edit.sh }
656```656```
657 657
658| Schlüssel | Durchgesetzt von | Effekt |658| Schlüssel | Erzwungen von | Auswirkung |
659| ------------------------------------------ | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |659| ------------------------------------------ | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
660| `availableModels` | Gateway + CLI | Modell-Zulassungsliste. Auch unter `/v1/messages` überprüft, sodass ein gepatchter Client ihn nicht umgehen kann. |660| `availableModels` | Gateway + CLI | Modell-Zulassungsliste. Auch unter `/v1/messages` geprüft, sodass ein gepatchter Client sie nicht umgehen kann. |
661| `permissions.allow` / `.deny` | CLI | Tool- und Befehlsregeln. Siehe [Berechtigungen](/docs/de/permissions). |661| `permissions.allow` / `.deny` | CLI | Tool- und Befehlsregeln. Siehe [Berechtigungen](/docs/de/permissions). |
662| `permissions.disableBypassPermissionsMode` | CLI | Setzen Sie auf `disable`, um [`bypassPermissions`](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode), den Modus, der Berechtigungsaufforderungen überspringt, und das `--dangerously-skip-permissions`-Flag zu blockieren |662| `permissions.disableBypassPermissionsMode` | CLI | Setzen Sie auf `disable`, um [`bypassPermissions`](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode), den Modus, der Berechtigungsaufforderungen überspringt, und das Flag `--dangerously-skip-permissions` zu blockieren |
663| `allowManagedPermissionRulesOnly` | CLI | Wenn `true`, werden verwaltete Einstellungen die einzige Einstellungsquelle von Berechtigungsregeln. Der [`allowManagedPermissionRulesOnly`](/docs/de/settings-reference#allowmanagedpermissionrulesonly)-Eintrag listet jede Quelle auf, die Claude Code dann ignoriert. |663| `allowManagedPermissionRulesOnly` | CLI | Wenn `true`, werden verwaltete Einstellungen zur einzigen Einstellungsquelle von Berechtigungsregeln. Der Eintrag [`allowManagedPermissionRulesOnly`](/docs/de/settings-reference#allowmanagedpermissionrulesonly) listet jede Quelle auf, die Claude Code dann ignoriert. |
664| `env` | CLI | Umgebungsvariablen, die in den CLI-Prozess zusammengeführt werden. Verwenden Sie für Telemetrie, Auto-Update und Modellnamen-Überschreibungen. |664| `env` | CLI | Umgebungsvariablen, die in den CLI-Prozess zusammengeführt werden. Verwenden Sie für Telemetrie, Auto-Update und Modellnamen-Überschreibungen. |
665| `hooks` | CLI | Org-weite [Hooks](/docs/de/hooks) |665| `hooks` | CLI | Organisationsweite [Hooks](/docs/de/hooks) |
666| `managedMcpServers` | CLI | Remote MCP-Server [bereitgestellt für jeden passenden Entwickler](/docs/de/managed-mcp#provide-servers-through-managed-settings) neben den Servern, die sie selbst hinzufügen, `http` und `sse` nur. Siehe [MCP-Server in einer Richtlinie](#mcp-servers-in-a-policy). Erfordert Claude Code v2.1.259 oder später auf dem Gateway-Server und auf Clients. Frühere Clients ignorieren den Schlüssel. |666| `managedMcpServers` | CLI | Remote-MCP-Server, [die jedem abgleichenden Entwickler bereitgestellt werden](/docs/de/managed-mcp#provide-servers-through-managed-settings) neben den Servern, die sie selbst hinzufügen, nur `http` und `sse`. Siehe [MCP-Server in einer Richtlinie](#mcp-servers-in-a-policy). Erfordert Claude Code v2.1.259 oder später auf dem Gateway-Server und auf Clients. Frühere Clients ignorieren den Schlüssel. |
667 667
668Da diese Einstellungen über das Netzwerk ankommen, zeigt die CLI jedem Entwickler einen Sicherheitsgenehmigungsdialog, bevor die unten aufgelisteten Einstellungen angewendet werden:668Da diese Einstellungen über das Netzwerk ankommen, zeigt die CLI jedem Entwickler einen Sicherheitsgenehmigungsdialog, bevor die unten aufgelisteten Einstellungen angewendet werden:
669 669
670* `hooks`670* `hooks`
671* `env`-Variablen, die die Genehmigung des Entwicklers erfordern, wie Proxy- und Base-URL-Variablen671* `env`-Variablen, die die Genehmigung des Entwicklers erfordern, wie Proxy- und Basis-URL-Variablen
672* Shell-Ausführungseinstellungen wie `apiKeyHelper` und `statusLine`672* Shell-Ausführungseinstellungen wie `apiKeyHelper` und `statusLine`
673* die Sandbox-Binärdatei-Einstellungen `sandbox.bwrapPath`, `sandbox.socatPath` und `sandbox.ripgrep`673* die Sandbox-Binäreinstellungen `sandbox.bwrapPath`, `sandbox.socatPath` und `sandbox.ripgrep`
674* Sandbox-Einstellungen, die Traffic abfangen, Anmeldedaten injizieren oder Isolation schwächen, wie `sandbox.network.tlsTerminate` und die Proxy-Port-Einstellungen. [Sicherheitsgenehmigungsdialoge](/docs/de/server-managed-settings#security-approval-dialogs) listet sie alle auf.674* Sandbox-Einstellungen, die Datenverkehr abfangen, Anmeldedaten injizieren oder die Isolation schwächen, wie `sandbox.network.tlsTerminate` und die Proxy-Port-Einstellungen. [Sicherheitsgenehmigungsdialoge](/docs/de/server-managed-settings#security-approval-dialogs) listet sie alle auf.
675 675
676[Genehmigungsspeicher](/docs/de/server-managed-settings#approval-memory) behandelt, wie lange eine Genehmigung dauert und wann der Dialog wieder angezeigt wird.676[Genehmigungsspeicher](/docs/de/server-managed-settings#approval-memory) behandelt, wie lange eine Genehmigung dauert und wann der Dialog erneut angezeigt wird.
677 677
678Claude Code wendet einige bereitgestellte `env`-Variablen ohne Anzeige des Genehmigungsdialogs an, wie Modellauswahleinstellungen und numerische Limits. Andere bereitgestellte Variablen können die Genehmigung des Entwicklers erfordern, bevor sie wirksam werden; ein nicht leerer Proxy-, Base-URL- oder `OTEL_EXPORTER_OTLP_ENDPOINT`-Wert tut dies immer. Wenn eine bereitgestellte Variable Genehmigung benötigt, benennt der Dialog sie.678Claude Code wendet einige bereitgestellte `env`-Variablen an, ohne dem Entwickler den Genehmigungsdialog zu zeigen, wie Modellauswahleinstellungen und numerische Limits. Andere bereitgestellte Variablen können die Genehmigung des Entwicklers erfordern, bevor sie wirksam werden; ein nicht leerer Proxy-, Basis-URL- oder `OTEL_EXPORTER_OTLP_ENDPOINT`-Wert tut dies immer. Wenn eine bereitgestellte Variable Genehmigung benötigt, benennt der Dialog sie.
679 679
680[Umgebungsvariablen und der Genehmigungsdialog](/docs/de/server-managed-settings#environment-variables-and-the-approval-dialog) hat die Details, einschließlich vier Datenschutz-Umschalter, deren bereitgestellter Wert entscheidet, ob sie Genehmigung benötigen. Vor v2.1.218 wendete Claude Code weniger Variablen ohne Fragen an den Entwickler an, sodass mehr bereitgestellte Variablen den Dialog auslösten.680[Umgebungsvariablen und der Genehmigungsdialog](/docs/de/server-managed-settings#environment-variables-and-the-approval-dialog) hat die Details, einschließlich vier Datenschutz-Umschalter, deren bereitgestellter Wert entscheidet, ob sie Genehmigung benötigen. Vor v2.1.218 wendete Claude Code weniger Variablen an, ohne den Entwickler zu fragen, sodass mehr bereitgestellte Variablen den Dialog auslösten.
681 681
682Die [Telemetrie](#telemetry)-Konfiguration des Gateways pusht `OTEL_EXPORTER_OTLP_ENDPOINT`, sodass das Setzen von `telemetry.forward_to` den Dialog bei jedem interaktiven Client auslöst. Der Dialog schützt die Maschine des Entwicklers vor einem kompromittierten oder feindseligem Gateway, nicht die Organisation vor dem Entwickler.682Die [Telemetrie](#telemetry)-Konfiguration des Gateways drückt `OTEL_EXPORTER_OTLP_ENDPOINT`, sodass das Setzen von `telemetry.forward_to` den Dialog auf jedem interaktiven Client auslöst. Der Dialog schützt die Maschine des Entwicklers vor einem kompromittierten oder feindseligem Gateway, nicht die Organisation vor dem Entwickler.
683 683
684Ein nicht-interaktiver Lauf mit dem `-p`-Flag kann den Dialog nicht anzeigen. Er wendet die gepushten Einstellungen nur für diesen Lauf an und speichert sie nicht als genehmigt, sodass die nächste interaktive Session des Entwicklers immer noch den Dialog anzeigt. Vor v2.1.207 speicherte ein nicht-interaktiver Lauf die Einstellungen als genehmigt und keine spätere interaktive Session zeigte den Dialog dafür.684Ein nicht-interaktiver Lauf mit dem Flag `-p` kann den Dialog nicht anzeigen. Er wendet die gepushten Einstellungen nur für diesen Lauf an und speichert sie nicht als genehmigt, sodass die nächste interaktive Sitzung des Entwicklers immer noch den Dialog für sie anzeigt. Vor v2.1.207 speicherte ein nicht-interaktiver Lauf die Einstellungen als genehmigt und keine spätere interaktive Sitzung zeigte den Dialog dafür.
685 685
686Wenn ein Entwickler ablehnt, beendet Claude Code diese Session, anstatt die Richtlinie anzuwenden. Wenn Sie einen neuen Hook oder eine Env-Variable, die den Dialog auslöst, zu einer breiten Richtlinie pushen, zeigt Claude Code daher den Dialog jedem passenden Entwickler. Es zeigt den Dialog in einer laufenden Session bei der nächsten stündlichen Abfrage und ansonsten beim nächsten Start des Entwicklers.686Wenn ein Entwickler ablehnt, beendet Claude Code diese Sitzung, anstatt die Richtlinie anzuwenden. Wenn Sie einen neuen Hook oder eine beliebige Env-Variable, die den Dialog auslöst, an eine breite Richtlinie pushen, zeigt Claude Code daher den Dialog jedem abgleichenden Entwickler. Es zeigt den Dialog in einer laufenden Sitzung bei der nächsten stündlichen Abfrage und ansonsten beim nächsten Start des Entwicklers.
687 687
688Der `cli`-Schlüssel wurde in früheren Releases `settings` genannt. Diese Schreibweise wird immer noch als Alias akzeptiert, aber neue Bereitstellungen sollten `cli` verwenden.688Der `cli`-Schlüssel hieß in früheren Versionen `settings`. Diese Schreibweise wird immer noch als Alias akzeptiert, aber neue Bereitstellungen sollten `cli` verwenden.
689 689
690<h4 id="mcp-servers-in-a-policy">690<h4 id="mcp-servers-in-a-policy">
691 MCP-Server in einer Richtlinie691 MCP-Server in einer Richtlinie
692</h4>692</h4>
693 693
694Um MCP-Server für die Claude Code-Clients bereitzustellen, die eine Richtlinie passt, setzen Sie [`managedMcpServers`](/docs/de/managed-mcp#provide-servers-through-managed-settings) im `cli`-Block dieser Richtlinie. Sie benötigen Claude Code v2.1.259 oder später auf dem Gateway-Server und auf Clients.694Um MCP-Server für die Claude-Code-Clients bereitzustellen, die eine Richtlinie abgleicht, setzen Sie [`managedMcpServers`](/docs/de/managed-mcp#provide-servers-through-managed-settings) im `cli`-Block dieser Richtlinie. Sie benötigen Claude Code v2.1.259 oder später auf dem Gateway-Server und auf Clients.
695 695
696Das Gateway überprüft jeden Eintrag beim Start mit [den gleichen Regeln, die Claude Code auf dem Client anwendet](/docs/de/managed-mcp#what-an-entry-can-contain), und wenn ein Eintrag eine Prüfung nicht besteht, weigert sich das Gateway zu starten und benennt den Eintrag.696Das Gateway prüft jeden Eintrag beim Start mit [den gleichen Regeln, die Claude Code auf dem Client anwendet](/docs/de/managed-mcp#what-an-entry-can-contain), und wenn ein Eintrag eine Prüfung nicht besteht, weigert sich das Gateway zu starten und benennt den Eintrag.
697 697
698Wenn Sie eine `${VAR}`-Referenz in `gateway.yaml` schreiben, löst das Gateway sie aus seiner Umgebung beim Start durch [Geheimnis-Erweiterung](#secret-expansion) auf, bevor es die Eintrag-Prüfungen ausführt, sodass jeder passende Client den Literalwert erhält und ihn lesen kann. Die [Header-Anleitung für bereitgestellte Server](/docs/de/managed-mcp#provide-servers-through-managed-settings) gilt für den erweiterten Wert.698Wenn Sie eine `${VAR}`-Referenz in `gateway.yaml` schreiben, löst das Gateway sie beim Start aus seiner Umgebung durch [Geheimnis-Erweiterung](#secret-expansion) auf, bevor es die Eintragsprüfungen ausführt, sodass jeder abgleichende Client den Literalwert erhält und ihn lesen kann. Die [Header-Anleitung für bereitgestellte Server](/docs/de/managed-mcp#provide-servers-through-managed-settings) gilt für den erweiterten Wert.
699 699
700Das Gateway lehnt die `.mcp.json`-Schreibweise `mcpServers` in einem `cli`-Block ab, und sein Boot-Fehler benennt `managedMcpServers` als den zu verwendenden Schlüssel. Vor v2.1.259 lehnte das Gateway jede MCP-Server-Definition in einem `cli`-Block ab.700Das Gateway lehnt die `.mcp.json`-Schreibweise `mcpServers` in einem `cli`-Block ab, und sein Boot-Fehler benennt `managedMcpServers` als den zu verwendenden Schlüssel. Vor v2.1.259 lehnte das Gateway jede MCP-Server-Definition in einem `cli`-Block ab.
701 701
703 Claude Desktop-Überlagerung703 Claude Desktop-Überlagerung
704</h4>704</h4>
705 705
706Wenn Ihre Organisation auch [Claude Desktop](/docs/de/desktop) bereitstellt, bedient das gleiche Gateway beide Clients. Zeigen Sie `bootstrapUrl` in Claude Desktops [verwalteter Konfiguration](https://claude.com/docs/third-party/claude-desktop/configuration) auf `<listen.public_url>/user/bootstrap`. Claude Desktop leitet den OAuth-Aussteller von dieser URL ab, führt die gleiche Gerätecode-Anmeldung gegen dieses Gateway durch und ruft seine Konfiguration aus der Antwort ab.706Wenn Ihre Organisation auch [Claude Desktop](/docs/de/desktop) bereitstellt, bedient das gleiche Gateway beide Clients. Zeigen Sie `bootstrapUrl` in Claude Desktops [verwalteter Konfiguration](https://claude.com/docs/third-party/claude-desktop/configuration) auf `<listen.public_url>/user/bootstrap`. Claude Desktop leitet den OAuth-Aussteller von dieser URL ab, führt die gleiche Geräte-Code-Anmeldung gegen dieses Gateway durch und ruft seine Konfiguration aus der Antwort ab.
707 707
708<Note>708<Note>
709 Erfordert Claude Code v2.1.203 oder später auf dem Gateway-Server und ein explizites Opt-In: `/user/bootstrap` gibt 404 zurück, es sei denn, die Richtlinie, die dem Benutzer entspricht, trägt einen `desktop`-Schlüssel. Ein leerer `desktop: {}` meldet eine Richtlinie an, und ein `desktop`-Schlüssel auf der `match: {}`-Basisschicht meldet jede Richtlinie an, die ihn erbt. Das Audit-Log zeichnet jede Anfrage als `desktop_bootstrap.serve` oder `desktop_bootstrap.denied` auf.709 Erfordert Claude Code v2.1.203 oder später auf dem Gateway-Server und ein explizites Opt-In: `/user/bootstrap` gibt 404 zurück, es sei denn, die Richtlinie, die den Benutzer abgleicht, trägt einen `desktop`-Schlüssel. Ein leerer `desktop: {}` meldet eine Richtlinie an, und ein `desktop`-Schlüssel auf der `match: {}`-Basisschicht meldet jede Richtlinie an, die ihn erbt. Das Audit-Log zeichnet jede Anfrage als `desktop_bootstrap.serve` oder `desktop_bootstrap.denied` auf.
710</Note>710</Note>
711 711
712Das Gateway leitet viel der Antwort aus dem passenden Richtlinien-`cli`-Block und aus der Top-Level-Gateway-Konfiguration ab:712Das Gateway leitet einen Großteil der Antwort von der abgleichenden Richtlinie des `cli`-Blocks und von der Top-Level-Gateway-Konfiguration ab:
713 713
714* Die Modellliste, aus `availableModels`714* Die Modellliste aus `availableModels`
715* Deaktivierte Tools, aus bloßen Tool-Namen-`permissions.deny`-Einträgen. Wenn Sie `disabledBuiltinTools` im `desktop`-Block der Richtlinie setzen, bedient das Gateway die Vereinigung Ihres Wertes und der abgeleiteten Liste, sodass Sie auf diese Weise mehr Tools deaktivieren können, aber eines, das Sie durch `permissions.deny` deaktiviert haben, nicht wieder aktivieren können715* Deaktivierte Tools aus Bare-Tool-Namen-`permissions.deny`-Einträgen. Wenn Sie `disabledBuiltinTools` im `desktop`-Block der Richtlinie setzen, bedient das Gateway die Vereinigung Ihres Wertes und der abgeleiteten Liste, sodass Sie auf diese Weise mehr Tools deaktivieren können, aber eines, das Sie durch `permissions.deny` deaktiviert haben, nicht erneut aktivieren können
716* Die Egress-Zulassungsliste, aus `sandbox.network.allowedDomains`. Wenn Sie `coworkEgressAllowedHosts` im `desktop`-Block der Richtlinie setzen, verwendet das Gateway stattdessen diesen Wert716* Die Egress-Zulassungsliste aus `sandbox.network.allowedDomains`. Wenn Sie `coworkEgressAllowedHosts` im `desktop`-Block der Richtlinie setzen, verwendet das Gateway diesen Wert statt der abgeleiteten Liste
717* Ein OTLP-Endpunkt, der auf das Gateway selbst zeigt, und die Identitätsattribute des angemeldeten Benutzers. Das Gateway leitet die Exporte weiter, die es bei diesem Endpunkt erhält, an Ihre `forward_to`-Ziele. Es schließt den Endpunkt und die Attribute ein, wenn Sie sowohl [`telemetry.forward_to`](#telemetry) als auch `listen.public_url` setzen.717* Ein OTLP-Endpunkt, der auf das Gateway selbst zeigt, und die Identitätsattribute des angemeldeten Benutzers. Das Gateway leitet die Exporte, die es an diesem Endpunkt erhält, an Ihre `forward_to`-Ziele weiter. Es enthält den Endpunkt und die Attribute, wenn Sie sowohl [`telemetry.forward_to`](#telemetry) als auch `listen.public_url` setzen.
718 718
719 Claude Desktop exportiert jedes Signal mit einer Codierung: `http/protobuf`, oder `http/json`, wenn Sie `OTEL_EXPORTER_OTLP_PROTOCOL` oder eine seiner Pro-Signal-Varianten auf `http/json` im `env` der Richtlinie setzen. Vor Claude Code v2.1.261 auf dem Gateway-Server setzte die Antwort `http/json` unabhängig davon, sodass ein Collector, der nur Protobuf akzeptiert, Claude Desktops Exporte ablehnte719 Claude Desktop exportiert jedes Signal mit einer Kodierung: `http/protobuf` oder `http/json`, wenn Sie `OTEL_EXPORTER_OTLP_PROTOCOL` oder eine seiner Pro-Signal-Varianten auf `http/json` im `env` der Richtlinie setzen. Vor Claude Code v2.1.261 auf dem Gateway-Server setzte die Antwort `http/json` unabhängig, sodass ein Collector, der nur Protobuf akzeptiert, Claude Desktops Exporte ablehnte
720 720
721Um `disabledBuiltinTools`, `coworkEgressAllowedHosts` oder Claude Desktops eigene `managedMcpServers`-Einstellung im `desktop`-Block einer Richtlinie zu setzen, benötigen Sie Claude Code v2.1.232 oder später auf dem Gateway-Server. Claude Desktops `managedMcpServers` nimmt einen Array-Wert statt eines Objekts.721Um `disabledBuiltinTools`, `coworkEgressAllowedHosts` oder Claude Desktops eigene `managedMcpServers`-Einstellung im `desktop`-Block einer Richtlinie zu setzen, benötigen Sie Claude Code v2.1.232 oder später auf dem Gateway-Server. Claude Desktops `managedMcpServers` nimmt einen Array-Wert statt eines Objekts.
722 722
723Das Gateway lässt Schlüssel ohne Claude Desktop-Äquivalent weg, wie `hooks` und gesteuerter Berechtigungsregeln wie `Bash(npm *)`, aus der Bootstrap-Antwort.723Das Gateway lässt Schlüssel ohne Claude-Desktop-Äquivalent weg, wie `hooks` und scoped-Berechtigungsregeln wie `Bash(npm *)`, aus der Bootstrap-Antwort.
724 724
725Fügen Sie den optionalen `desktop`-Block neben `cli` hinzu, um Claude Desktop-Einstellungen direkt zu setzen. Schreiben Sie Einstellungen aus Claude Desktops [verwalteter Konfigurationsreferenz](https://claude.com/docs/third-party/claude-desktop/configuration) als flache Schlüsselnamen. Lassen Sie Schlüssel weg, die Claude Desktop nur aus MDM oder lokalen Dateien liest, wie `bootstrapUrl`; das Gateway lehnt sie beim Start ab. Vor v2.1.232 akzeptierte das Gateway eine feste Liste von 11 Feature-Gate-Schlüsseln, wie `chatTabEnabled` und `disableAutoUpdates`, und lehnte jeden anderen Schlüssel beim Start ab. Vor v2.1.227 lehnte das Gateway auch `chatTabEnabled` und `chatAdvancedFileAnalysisEnabled` beim Start ab.725Fügen Sie den optionalen `desktop`-Block neben `cli` hinzu, um Claude-Desktop-Einstellungen direkt zu setzen. Schreiben Sie Einstellungen aus Claude Desktops [verwalteter Konfigurationsreferenz](https://claude.com/docs/third-party/claude-desktop/configuration) als flache Schlüsselnamen. Lassen Sie Schlüssel weg, die Claude Desktop nur aus MDM oder lokalen Dateien liest, wie `bootstrapUrl`; das Gateway lehnt sie beim Start ab. Vor v2.1.232 akzeptierte das Gateway eine feste Liste von 11 Feature-Gate-Schlüsseln, wie `chatTabEnabled` und `disableAutoUpdates`, und lehnte jeden anderen Schlüssel beim Start ab. Vor v2.1.227 lehnte das Gateway auch `chatTabEnabled` und `chatAdvancedFileAnalysisEnabled` beim Start ab.
726 726
727```yaml theme={null}727```yaml theme={null}
728managed:728managed:
736 banner: { text: "Contractor build: internal use only" }736 banner: { text: "Contractor build: internal use only" }
737```737```
738 738
739Jeder Schlüssel ist optional; Claude Desktop wendet seinen eigenen Standard für jeden Schlüssel an, den Sie weglassen. Das Gateway validiert jeden `desktop`-Block beim Start gegen das Konfigurationsschema, das Claude Desktop selbst verwendet, sodass ein Fehler beim Gateway-Start als Fehler auftaucht, der den Schlüssel benennt, anstatt jeden verbundenen Desktop zu erreichen. Das Gateway schlägt beim Start fehl, wenn ein Block enthält:739Jeder Schlüssel ist optional; Claude Desktop wendet seinen eigenen Standard für jeden Schlüssel an, den Sie weglassen. Das Gateway validiert jeden `desktop`-Block beim Start gegen das Konfigurationsschema, das Claude Desktop selbst verwendet, sodass ein Fehler beim Gateway-Start als Fehler auftaucht, der den Schlüssel benennt, statt jeden verbundenen Desktop zu erreichen. Das Gateway schlägt beim Start fehl, wenn ein Block Folgendes enthält:
740 740
741* Ein unbekannter Schlüssel741* Ein unbekannter Schlüssel
742* Ein erkannter Schlüssel, dessen Wert Claude Desktop ablehnen oder stillschweigend löschen würde, wie ein leerer Wert oder ein falsch geschriebener Unterschlüssel in einem verschachtelten Eintrag. Vor v2.1.260 ließ das Gateway ein falsch geschriebenes Feld in einem verschachtelten Objekt eines `managedMcpServers`- oder `orgPluginSettings`-Eintrags stillschweigend fallen, anstatt beim Start zu fehlschlagen.742* Ein erkannter Schlüssel, dessen Wert Claude Desktop ablehnen oder stillschweigend löschen würde, wie ein leerer Wert oder ein falsch geschriebener Unterschlüssel in einem verschachtelten Eintrag. Vor v2.1.260 ließ das Gateway ein falsch geschriebenes Feld in einem verschachtelten Objekt eines `managedMcpServers`- oder `orgPluginSettings`-Eintrags stillschweigend fallen, anstatt beim Start fehlzuschlagen.
743* Ein Schlüssel, den das Gateway selbst berechnet: die Inferenzverbindung, die Modellliste und das OTLP-Relais. Konfigurieren Sie diese durch [`upstreams`](#upstreams), [`models`](#models) und den [`telemetry`](#telemetry)-Abschnitt `forward_to`.743* Ein Schlüssel, den das Gateway selbst berechnet: die Inferenzverbindung, die Modellliste und das OTLP-Relay. Konfigurieren Sie diese durch [`upstreams`](#upstreams), [`models`](#models) und den [`telemetry`](#telemetry)-Abschnitt `forward_to`.
744* Ein Legacy-Alias eines aktuellen Schlüssels. Im Boot-Fehler benennt das Gateway den kanonischen Schlüssel zum Schreiben.744* Ein Legacy-Alias eines aktuellen Schlüssels. Im Boot-Fehler benennt das Gateway den kanonischen Schlüssel zum Schreiben.
745 745
746Wenn Sie einen veralteten Wert oder eine Eintrag-Form verwenden, wie einen `managedMcpServers`-Eintrag ohne `transport`, startet das Gateway und protokolliert eine Warnung, die den Ersatz benennt.746Wenn Sie einen veralteten Wert oder eine Eintragform verwenden, wie einen `managedMcpServers`-Eintrag ohne `transport`, startet das Gateway und protokolliert eine Warnung, die den Ersatz benennt.
747 747
748Das Gateway validiert einen `desktop`-Block gegen das Schema, das mit seiner installierten Version gebündelt ist, wie es den `cli`-Block tut. Um eine Einstellung bereitzustellen, die von einer neueren Claude Desktop-Version eingeführt wurde, aktualisieren Sie das Gateway zuerst. Zum Beispiel benötigen `userPluginMarketplacesEnabled` und `userPluginUploadsEnabled` Claude Code v2.1.260 oder später auf dem Gateway-Server und Claude Desktop 1.37937.0 oder später auf den Maschinen der Mitglieder.748Das Gateway validiert einen `desktop`-Block gegen das Schema, das mit seiner installierten Version gebündelt ist, wie es den `cli`-Block tut. Um eine Einstellung bereitzustellen, die von einer neueren Claude-Desktop-Version eingeführt wurde, aktualisieren Sie das Gateway zuerst. Zum Beispiel benötigen `userPluginMarketplacesEnabled` und `userPluginUploadsEnabled` Claude Code v2.1.260 oder später auf dem Gateway-Server und Claude Desktop 1.37937.0 oder später auf den Maschinen der Mitglieder.
749 749
750Wenn Sie `orgPluginSettings` im `desktop`-Block einer Richtlinie setzen, bedient das Gateway es in der Array-Form, die Claude Desktop 1.15200.0 und später liest. Ältere Desktops ignorieren das Array und erzwingen keine Plugin-Tool-Richtlinie, also aktualisieren Sie Mitglieder auf 1.15200.0 oder später, bevor Sie sich darauf verlassen.750Wenn Sie `orgPluginSettings` im `desktop`-Block einer Richtlinie setzen, bedient das Gateway es in der Array-Form, die Claude Desktop 1.15200.0 und später liest. Ältere Desktops ignorieren das Array und erzwingen keine Plugin-Tool-Richtlinie, daher aktualisieren Sie Mitglieder auf 1.15200.0 oder später, bevor Sie sich darauf verlassen.
751 751
752Das Gateway füllt Schlüssel, die der `desktop`-Block einer Richtlinie nicht setzt, aus dem `match: {}`-Catch-All-`desktop`-Block, auf die gleiche Weise, wie es den `cli`-Block einer Richtlinie aus der Basis füllt. Wenn Sie `disabledBuiltinTools` oder `builtinToolPolicy` sowohl in der Basis als auch in einer Rollen-Richtlinie setzen, behält das Gateway die Einschränkung der Basis:752Das Gateway füllt Schlüssel, die der `desktop`-Block einer Richtlinie nicht setzt, aus dem `match: {}`-Catch-All-`desktop`-Block, auf die gleiche Weise, wie es den `cli`-Block einer Richtlinie ausfüllt. Wenn Sie `disabledBuiltinTools` oder `builtinToolPolicy` sowohl in der Basis als auch in einer Rollen-Richtlinie setzen, behält das Gateway die Einschränkung der Basis:
753 753
754* `disabledBuiltinTools`: Das Gateway verwendet die Vereinigung der Liste der Basis und der Liste der Richtlinie754* `disabledBuiltinTools`: Das Gateway verwendet die Vereinigung der Liste der Basis und der Richtlinie
755* `builtinToolPolicy`: Wenn Sie ein Tool in der Basis auf einen anderen Wert als `allow` setzen, behält das Gateway diesen Wert, auch wenn Sie `allow` für das gleiche Tool in einer Rollen-Richtlinie setzen755* `builtinToolPolicy`: Wenn Sie ein Tool in der Basis auf einen anderen Wert als `allow` setzen, behält das Gateway diesen Wert, auch wenn Sie `allow` für das gleiche Tool in einer Rollen-Richtlinie setzen
756 756
757Für jeden anderen Schlüssel, wenn Sie ihn in der Rollen-Richtlinie setzen, verwendet das Gateway den Wert der Rollen-Richtlinie. Das Gateway ersetzt ein Array oder ein verschachteltes Objekt wie `banner` ganz, sodass wenn Sie `banner.text` in einer Rollen-Richtlinie setzen, das Gateway das `banner.backgroundColor` der Basis löscht.757Für jeden anderen Schlüssel, wenn Sie ihn in der Rollen-Richtlinie setzen, verwendet das Gateway den Wert der Rollen-Richtlinie. Das Gateway ersetzt ein Array oder ein verschachteltes Objekt wie `banner` ganz, sodass wenn Sie `banner.text` in einer Rollen-Richtlinie setzen, das Gateway die `banner.backgroundColor` der Basis löscht.
758 758
759Wenn Sie Claude Desktop nicht bereitstellen, lassen Sie `desktop` vollständig aus Ihren Richtlinien weg; das Gateway gibt dann 404 von `/user/bootstrap` für jeden Benutzer zurück.759Wenn Sie Claude Desktop nicht bereitstellen, lassen Sie `desktop` vollständig aus Ihren Richtlinien weg; das Gateway gibt dann 404 von `/user/bootstrap` für jeden Benutzer zurück.
760 760
762 Vorrang mit anderen verwalteten Quellen762 Vorrang mit anderen verwalteten Quellen
763</h4>763</h4>
764 764
765Wenn ein Gerät auch eine MDM-bereitgestellte Richtlinie oder eine lokale `managed-settings.json` hat, rangieren Gateway-bereitgestellte Einstellungen zuerst. [Vorrang innerhalb der verwalteten Ebene](/docs/de/managed-settings#precedence-within-the-managed-tier) auf der verwalteten Einstellungsseite sagt, wann die lokalen Quellen gelten, und hat die [Schlüssel, die Claude Code aus jeder Admin-Quelle liest](/docs/de/managed-settings#keys-read-from-every-admin-source) unabhängig davon, welche Quelle es ausgewählt hat, wie die Sandbox-Sperr-Schlüssel, `forceRemoteSettingsRefresh` und die Pro-Variable `env`-Zusammenführung. Ein [`policyHelper`](/docs/de/settings-reference#policyhelper), der in einem MDM-Profil oder der verwalteten Einstellungsdatei konfiguriert ist, läuft nur, wenn das Gateway keine Einstellungen bereitgestellt hat; der Eintrag sagt, was seine Ausgabe ersetzt.765Wenn ein Gerät auch eine MDM-bereitgestellte Richtlinie oder eine lokale `managed-settings.json` hat, rangieren Gateway-bereitgestellte Einstellungen zuerst. [Vorrang innerhalb der verwalteten Ebene](/docs/de/managed-settings#precedence-within-the-managed-tier) auf der Seite der verwalteten Einstellungen sagt, wann die lokalen Quellen gelten, und hat die [Schlüssel, die Claude Code aus jeder Admin-Quelle liest](/docs/de/managed-settings#keys-read-from-every-admin-source) unabhängig davon, welche Quelle es ausgewählt hat, wie die Sandbox-Lock-Schlüssel, `forceRemoteSettingsRefresh` und die Pro-Variable `env`-Zusammenführung. Ein [`policyHelper`](/docs/de/settings-reference#policyhelper), der in einem MDM-Profil oder der Datei der verwalteten Einstellungen konfiguriert ist, wird nur ausgeführt, wenn das Gateway keine Einstellungen bereitstellt; der Eintrag sagt, was seine Ausgabe ersetzt.
766 766
767Einbettungs-Hosts wie [Claude Desktop](/docs/de/desktop) können Richtlinie durch die SDK-`managedSettings`-Option bereitstellen. [Übergeordnete Einstellungen von Einbettungs-Hosts](/docs/de/managed-settings#parent-settings-from-embedding-hosts) sagt, wann Claude Code sie anwendet, und [Übergeordnete Einstellungen einschränken](/docs/de/claude-apps-gateway#restrict-parent-settings) listet auf, welche Zulassungs-Richtungs-Einstellungen immer noch ohne die `allowManaged*Only`-Sperren gelten.767Einbettungs-Hosts wie [Claude Desktop](/docs/de/desktop) können Richtlinien durch die SDK-Option `managedSettings` bereitstellen. [Übergeordnete Einstellungen von Einbettungs-Hosts](/docs/de/managed-settings#parent-settings-from-embedding-hosts) sagt, wann Claude Code sie anwendet, und [Übergeordnete Einstellungen einschränken](/docs/de/claude-apps-gateway#restrict-parent-settings) listet auf, welche Zulassungs-Richtungs-Einstellungen immer noch ohne die `allowManaged*Only`-Sperren gelten.
768 768
769Gateway-Richtlinien gelten für jeden Claude Code-Aufruf auf der Maschine, einschließlich nicht-interaktiver `claude -p`-Läufe und Sessions, die vom Agent SDK erzeugt werden. Wenn das Gateway beim Start nicht erreichbar ist, beenden sich angemeldete Sessions mit einem Fehler, anstatt ohne ihre Richtlinie zu laufen.769Gateway-Richtlinien gelten für jeden Claude-Code-Aufruf auf der Maschine, einschließlich nicht-interaktiver `claude -p`-Läufe und Sitzungen, die vom Agent SDK erzeugt werden. Wenn das Gateway beim Start nicht erreichbar ist, beenden sich angemeldete Sitzungen mit einem Fehler, anstatt ohne ihre Richtlinie zu laufen.
770 770
771<h3 id="telemetry">771<h3 id="telemetry">
772 `telemetry`772 `telemetry`
773</h3>773</h3>
774 774
775Die CLI sendet Metriken, Logs und, wenn aktiviert, Traces an das Gateway, das sie wörtlich an jedes konfigurierte Ziel weiterleitet. Die Exporte verwenden OpenTelemetry Protocol (OTLP) über HTTP. Um das Relais zu überspringen und Sessions direkt an Ihren Collector exportieren zu lassen, [benennen Sie den Collector in einer Richtlinie](#export-directly-to-your-collector). Siehe [Überwachung der Nutzung](/docs/de/monitoring-usage) für die Metriken und Ereignisse, die die CLI ausgibt.775Die CLI sendet Metriken, Protokolle und, wenn aktiviert, Traces an das Gateway, das sie wörtlich an jedes konfigurierte Ziel weitergeleitet. Die Exporte verwenden OpenTelemetry Protocol (OTLP) über HTTP. Um das Relay zu überspringen und Sitzungen direkt an Ihren Collector exportieren zu lassen, [benennen Sie den Collector in einer Richtlinie](#export-directly-to-your-collector). Siehe [Überwachung der Nutzung](/docs/de/monitoring-usage) für die Metriken und Ereignisse, die die CLI ausgibt.
776 776
777Die CLI stempelt jeden Export mit der Identität des authentifizierten Benutzers, gelesen aus dem Gateway-ausgegebenen JWT: die `user.id`-, `user.email`- und `user.groups`-Attribute. Pro-Entwickler-Kosten- und Nutzungszuordnung funktioniert daher ohne Entwickler-seitige Konfiguration.777Die CLI stempelt jeden Export mit der Identität des authentifizierten Benutzers, gelesen aus dem vom Gateway ausgegebenen JWT: die Attribute `user.id`, `user.email` und `user.groups`. Die Kostenattribution pro Entwickler und Nutzungsattribution funktioniert daher ohne Konfiguration auf der Entwicklerseite.
778 778
779[Claude Desktop](#claude-desktop-overlay) und Cowork-Sessions, die sich durch das Gateway anmelden, stempeln ihre Telemetrie mit `user.email` und `user.groups` neben `enduser.id`, sodass Sie Terminal-, Desktop- und Cowork-Nutzung mit einer Abfrage auf `user.email` oder `user.groups` abdecken können. `user.groups` ist die kommagetrennte IdP-Gruppenliste.779[Claude Desktop](#claude-desktop-overlay) und Cowork-Sitzungen, die sich durch das Gateway anmelden, stempeln ihre Telemetrie mit `user.email` und `user.groups` neben `enduser.id`, sodass Sie Terminal-, Desktop- und Cowork-Nutzung mit einer Abfrage auf `user.email` oder `user.groups` abdecken können. `user.groups` ist die kommagetrennte IdP-Gruppenliste.
780 780
781Wie alle OpenTelemetry-Daten von Claude Code gehen diese Attribute nur an Ziele, die Ihre Organisation konfiguriert, niemals an Anthropic.781Wie alle OpenTelemetry-Daten von Claude Code gehen diese Attribute nur an Ziele, die Ihre Organisation konfiguriert, niemals an Anthropic.
782 782
783Wenn die Gruppenliste eines Benutzers länger als 255 Zeichen ist, sobald sie prozentcodiert ist, oder ein Gruppenname ein Komma oder Gleichheitszeichen enthält, lässt das Gateway `user.groups` aus der Desktop- und Cowork-Telemetrie dieses Benutzers weg, anstatt es zu kürzen. Die Terminal-Sessions dieses Benutzers tragen immer noch die vollständige Liste.783Wenn die Gruppenliste eines Benutzers länger als 255 Zeichen ist, sobald sie prozentual kodiert ist, oder ein Gruppenname ein Komma oder Gleichheitszeichen enthält, lässt das Gateway `user.groups` aus der Desktop- und Cowork-Telemetrie dieses Benutzers weg, anstatt es zu kürzen. Die Terminal-Sitzungen dieses Benutzers tragen immer noch die vollständige Liste.
784 784
785Sie benötigen Claude Code v2.1.265 oder später auf dem Gateway-Server für `user.email` und `user.groups` auf Desktop- und Cowork-Telemetrie, und Claude Desktop 1.24012 oder später auf der Maschine jedes Entwicklers für `user.groups`.785Sie benötigen Claude Code v2.1.265 oder später auf dem Gateway-Server für `user.email` und `user.groups` auf Desktop- und Cowork-Telemetrie, und Claude Desktop 1.24012 oder später auf der Maschine jedes Entwicklers für `user.groups`.
786 786
790 - url: https://otel-collector.internal.example.com790 - url: https://otel-collector.internal.example.com
791 headers:791 headers:
792 Authorization: ${OTLP_TOKEN}792 Authorization: ${OTLP_TOKEN}
793 # Pro-Signal-Opt-In. Standard: nur Metriken.793 # Per-signal opt-in. Default: metrics only.
794 metrics: true794 metrics: true
795 logs: false795 logs: false
796 traces: false796 traces: false
800```800```
801 801
802<Warning>802<Warning>
803 Jedes Ziel meldet sich unabhängig in `metrics`, `logs` und `traces` an, und der Standard ist nur Metriken. Die Signale unterscheiden sich in Empfindlichkeit:803 Jedes Ziel meldet sich unabhängig für `metrics`, `logs` und `traces` an, und der Standard ist nur Metriken. Die Signale unterscheiden sich in der Empfindlichkeit:
804 804
805 * **Metriken**: Aggregatzähler wie Token-Zähler, Anfragezähler und Latenz805 * **Metriken**: Aggregatzähler wie Token-Zählungen, Anfragezählungen und Latenz
806 * **Logs und Traces**: können vollständige Bash-Befehle, Tool-Eingaben und Dateipfade tragen, die alles abdecken, was Claude Code auf einer Entwicklermaschine tut806 * **Protokolle und Traces**: können vollständige Bash-Befehle, Tool-Eingaben und Dateipfade tragen, die alles abdecken, was Claude Code auf der Maschine eines Entwicklers tut
807 807
808 Aktivieren Sie Logs und Traces nur auf Zielen mit den Zugriffskontrolle und Aufbewahrungsrichtlinie, die Daten rechtfertigen.808 Aktivieren Sie Protokolle und Traces nur auf Zielen mit den Zugriffskontrolle und Aufbewahrungsrichtlinie, die diese Daten rechtfertigen.
809</Warning>809</Warning>
810 810
811Jede `forward_to`-URL muss `https://` verwenden, mit einer Ausnahme für einen Collector auf der Loopback-Schnittstelle des Gateways selbst:811Jede `forward_to`-URL muss `https://` verwenden, mit einer Ausnahme für einen Collector auf der Loopback-Schnittstelle des Gateways selbst:
812 812
813* `http://localhost:<port>` besteht die Konfigurationsvalidierung, aber die [SSRF-Schutz](/docs/de/claude-apps-gateway-deploy#threat-model-summary) blockiert jeden Export mit `ECONNREFUSED_SSRF`, es sei denn, Sie setzen `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` in der Umgebung des Gateways813* `http://localhost:<port>` besteht die Konfigurationsvalidierung, aber der [SSRF-Guard](/docs/de/claude-apps-gateway-deploy#threat-model-summary) blockiert jeden Export mit `ECONNREFUSED_SSRF`, es sei denn, Sie setzen `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` in der Umgebung des Gateways
814* `http://127.0.0.1:<port>` oder `http://[::1]:<port>` schlägt beim Start fehl, es sei denn, diese Variable ist gesetzt814* `http://127.0.0.1:<port>` oder `http://[::1]:<port>` schlägt beim Start fehl, es sei denn, diese Variable ist gesetzt
815 815
816Für einen In-Cluster-Collector stellen Sie ihn über HTTPS unter seiner eigenen internen Adresse bereit, oder führen Sie ihn als Sidecar mit der Variable gesetzt aus.816Für einen In-Cluster-Collector stellen Sie ihn über HTTPS unter seiner eigenen internen Adresse bereit, oder führen Sie ihn als Sidecar mit der gesetzten Variable aus.
817 817
818Telemetrie ist in der CLI standardmäßig aus. Wenn Sie sowohl `telemetry.forward_to` als auch `listen.public_url` setzen, schaltet das Gateway es für verbundene Clients ein, indem es sechs Umgebungsvariablen durch `/managed/settings` pusht:818Telemetrie ist in der CLI standardmäßig deaktiviert. Wenn Sie sowohl `telemetry.forward_to` als auch `listen.public_url` setzen, schaltet das Gateway sie für verbundene Clients ein, indem es sechs Umgebungsvariablen durch `/managed/settings` drückt:
819 819
820* `CLAUDE_CODE_ENABLE_TELEMETRY=1`820* `CLAUDE_CODE_ENABLE_TELEMETRY=1`
821* `OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER` und `OTEL_TRACES_EXPORTER`, jeweils auf `otlp` gesetzt, wenn mindestens ein `forward_to`-Ziel dieses Signal aktiviert, und auf `none` ansonsten821* `OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER` und `OTEL_TRACES_EXPORTER`, jeweils auf `otlp` gesetzt, wenn mindestens ein `forward_to`-Ziel dieses Signal aktiviert, und auf `none` andernfalls
822* `OTEL_EXPORTER_OTLP_ENDPOINT=<public_url>`822* `OTEL_EXPORTER_OTLP_ENDPOINT=<public_url>`
823* `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`823* `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`
824 824
825Vor Claude Code v2.1.265 auf dem Gateway-Server pushte das Gateway alle drei Exporter-Selektoren als `otlp`, einschließlich für Signale, die kein Ziel aktivierte.825Vor Claude Code v2.1.265 auf dem Gateway-Server drückte das Gateway alle drei Exporter-Selektoren als `otlp`, einschließlich für Signale, die kein Ziel aktiviert hat.
826 826
827Der gepushte Endpunkt wird aus der öffentlichen URL erstellt, sodass Metriken und Logs keine OTEL-Konfiguration von Entwicklern oder Richtlinien benötigen.827Der gepushte Endpunkt wird aus der öffentlichen URL erstellt, sodass Metriken und Protokolle keine OTEL-Konfiguration von Entwicklern oder Richtlinien benötigen.
828 828
829Entwickler, die sich durch `/login` anmelden, können ihre Exporte nicht mit ihrer eigenen OTEL-Konfiguration umleiten:829Entwickler, die sich durch `/login` anmelden, können Exporte nicht mit ihrer eigenen OTEL-Konfiguration umleiten:
830 830
831* **Lokal gesetzte Variablen**: Claude Code wendet die gepushten Variablen auf der verwalteten Ebene an, sodass jede den Wert überschreibt, den ein Entwickler lokal dafür setzt.831* **Lokal gesetzte Variablen**: Claude Code wendet die gepushten Variablen auf der verwalteten Ebene an, sodass jede den Wert überschreibt, den ein Entwickler lokal dafür setzt.
832* **Lokal konfigurierte Endpunkte**: Mit OTLP/HTTP-Export aktiviert ignoriert die CLI jeden lokal konfigurierten Endpunkt, unabhängig davon, ob das Gateway die Telemetrie-Variablen gepusht hat. Seine Exporte gehen an das Gateway, es sei denn, eine Richtlinie [benennt Ihren Collector als Endpunkt](#export-directly-to-your-collector).832* **Lokal konfigurierte Endpunkte**: Mit OTLP/HTTP-Export aktiviert ignoriert die CLI jeden lokal konfigurierten Endpunkt, unabhängig davon, ob das Gateway die Telemetrie-Variablen gepusht hat. Seine Exporte gehen an das Gateway, es sei denn, eine Richtlinie [benennt Ihren Collector als Endpunkt](#export-directly-to-your-collector).
833 833
834Ohne ein `forward_to`-Ziel für ein Signal akzeptiert das Gateway es und verwirft es. Wenn Entwickler bereits Claude Code-Telemetrie an einen Ihrer Collector exportieren, fügen Sie ihn als `forward_to`-Ziel hinzu, mit Logs oder Traces aktiviert, wenn sie diese exportieren, sodass er ihre Daten weiterhin erhält, nachdem sie sich anmelden. Um das Relais stattdessen zu überspringen, [benennen Sie den Collector in einer Richtlinie](#export-directly-to-your-collector).834Ohne ein `forward_to`-Ziel für ein Signal akzeptiert das Gateway es und verwirft es. Wenn Entwickler bereits Claude-Code-Telemetrie an einen Ihrer Collector exportieren, fügen Sie ihn als `forward_to`-Ziel hinzu, mit Protokollen oder Traces aktiviert, wenn sie diese exportieren, sodass er ihre Daten weiterhin erhält, nachdem sie sich anmelden. Um das Relay stattdessen zu überspringen, [benennen Sie den Collector in einer Richtlinie](#export-directly-to-your-collector).
835 835
836[Traces](/docs/de/monitoring-usage#traces-beta) erfordern zusätzlich `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1` auf jedem Client. Setzen Sie es in einem verwalteten Richtlinien-`env`-Block, da das Gateway es nicht pusht. Entwickler genehmigen es im gleichen [Sicherheitsgenehmigungsdialog](#managed), den der gepushte Endpunkt bereits auslöst.836[Traces](/docs/de/monitoring-usage#traces-beta) erfordern auch `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1` auf jedem Client. Setzen Sie es im `env`-Block einer verwalteten Richtlinie, da das Gateway es nicht drückt. Entwickler genehmigen es im gleichen [Sicherheitsgenehmigungsdialog](#managed), den der gepushte Endpunkt bereits auslöst.
837 837
838Setzen Sie es auf `1` nur in den Richtlinien, deren Gruppen Sie verfolgen möchten. Eine Richtlinie, die es nicht setzt, erbt den Wert von Ihrer `match: {}`-Catch-All-Richtlinie, wenn diese einen setzt, pro den [Zusammenführungsregeln](#managed). Um zu verhindern, dass die Clients einer Gruppe Traces senden, auch wenn ein Entwickler die Variable lokal setzt, setzen Sie sie auf `0` in der Richtlinie dieser Gruppe.838Setzen Sie es auf `1` nur in den Richtlinien, deren Gruppen Sie verfolgen möchten. Eine Richtlinie, die es nicht setzt, erbt den Wert von Ihrer `match: {}`-Catch-All-Richtlinie, wenn diese Richtlinie einen setzt, pro den [Zusammenführungsregeln](#managed). Um zu verhindern, dass die Clients einer Gruppe Traces senden, auch wenn ein Entwickler die Variable lokal setzt, setzen Sie sie auf `0` in der Richtlinie dieser Gruppe.
839 839
840Sowohl Protobuf- als auch JSON-OTLP-Codierungen werden weitergeleitet, und jedes OpenTelemetry-kompatible Backend funktioniert als Ziel.840Sowohl Protobuf- als auch JSON-OTLP-Kodierungen werden weitergeleitet, und jedes OpenTelemetry-kompatible Backend funktioniert als Ziel.
841 841
842<h4 id="export-directly-to-your-collector">842<h4 id="export-directly-to-your-collector">
843 Direkt an Ihren Collector exportieren843 Direkt an Ihren Collector exportieren
844</h4>844</h4>
845 845
846Um Sessions, die sich durch `/login` anmelden, Telemetrie direkt an Ihren Collector senden zu lassen, anstatt durch das Relais, setzen Sie `OTEL_EXPORTER_OTLP_ENDPOINT` auf die `https://`-Basis-URL des Collectors im `env`-Block einer [verwalteten Richtlinie](#managed). Claude Code hängt `/v1/metrics`, `/v1/logs` oder `/v1/traces` an die URL an, die Sie setzen, wie `https://otel-collector.example.com:4318`, und exportiert jedes Signal dort über OTLP/HTTP. Erfordert Claude Code v2.1.265 oder später auf der Maschine jedes Entwicklers. Frühere Clients exportieren durch das Relais.846Um Sitzungen, die sich durch `/login` anmelden, Telemetrie direkt an Ihren Collector senden zu lassen, anstatt durch das Relay, setzen Sie `OTEL_EXPORTER_OTLP_ENDPOINT` auf die `https://`-Basis-URL des Collectors im `env`-Block einer [verwalteten Richtlinie](#managed). Claude Code hängt `/v1/metrics`, `/v1/logs` oder `/v1/traces` an die URL an, die Sie setzen, wie `https://otel-collector.example.com:4318`, und exportiert jedes Signal dort über OTLP/HTTP. Erfordert Claude Code v2.1.265 oder später auf der Maschine jedes Entwicklers. Frühere Clients exportieren durch das Relay.
847 847
848Um sich beim Collector zu authentifizieren, setzen Sie `OTEL_EXPORTER_OTLP_HEADERS` im gleichen `env`-Block. Sessions senden niemals das Gateway-Sitzungstoken des Entwicklers an einen Collector, der auf diese Weise benannt wird.848Um sich beim Collector zu authentifizieren, setzen Sie `OTEL_EXPORTER_OTLP_HEADERS` im gleichen `env`-Block. Sitzungen senden niemals das Gateway-Sitzungstoken des Entwicklers an einen Collector, der auf diese Weise benannt wird.
849 849
850Wenn Sie diesen Endpunkt in einer Richtlinie hinzufügen oder ändern, fragt Claude Code jeden Entwickler, ihn im [Sicherheitsgenehmigungsdialog](#managed) zu genehmigen, bevor er ihn in einer interaktiven Session anwendet.850Wenn Sie diesen Endpunkt in einer Richtlinie hinzufügen oder ändern, fragt Claude Code jeden Entwickler, ihn im [Sicherheitsgenehmigungsdialog](#managed) zu genehmigen, bevor er ihn in einer interaktiven Sitzung anwendet.
851 851
852Claude Code überprüft den Endpunkt, bevor es ein Signal direkt exportiert, und behält dieses Signal auf dem Relais, wenn eine Prüfung fehlschlägt. Die Prüfungen schließen ein:852Claude Code prüft den Endpunkt, bevor es ein Signal direkt exportiert, und behält dieses Signal auf dem Relay, wenn eine Prüfung fehlschlägt. Die Prüfungen umfassen:
853 853
854* Der Endpunkt kommt vom Gateway selbst. Wenn Sie die gleiche Variable in einem MDM-Profil oder einer lokalen `managed-settings.json` setzen, bleiben Exporte auf dem Relais.854* Der Endpunkt kommt vom Gateway selbst. Wenn Sie die gleiche Variable in einem MDM-Profil oder einer lokalen `managed-settings.json` setzen, bleiben Exporte auf dem Relay.
855* Die URL verwendet `https://`, oder `http://` zu einer Loopback-Adresse855* Die URL verwendet `https://` oder `http://` zu einer Loopback-Adresse
856* Die URL wird zu einem Pfad aufgelöst, der mit `/v1/<signal>` endet, ohne Abfrage oder Fragment. Claude Code erstellt diesen Pfad selbst aus der generischen Variablen. Es verwendet eine Pro-Signal-Variable wie `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` wie geschrieben, also schließen Sie den vollständigen Pfad dort ein.856* Die URL wird zu einem Pfad aufgelöst, der mit `/v1/<signal>` endet, ohne Abfrage oder Fragment. Claude Code erstellt diesen Pfad selbst aus der generischen Variable. Es verwendet eine Pro-Signal-Variable wie `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` wie geschrieben, daher den vollständigen Pfad dort einschließen.
857* Die URL ist nicht der eigene Host des Gateways. Ein Endpunkt, der an das Gateway adressiert ist, behält den Relais-Pfad und sein Sitzungstoken.857* Die URL ist nicht der eigene Host des Gateways. Ein Endpunkt, der auf das Gateway adressiert ist, behält den Relay-Pfad und sein Sitzungstoken.
858* Weder Sie noch der Entwickler haben [`otelHeadersHelper`](/docs/de/settings-reference#otelheadershelper) in einer Einstellungsquelle konfiguriert. Mit einem Helper konfiguriert, bleibt jedes Signal auf dem Relais.858* Weder Sie noch der Entwickler haben [`otelHeadersHelper`](/docs/de/settings-reference#otelheadershelper) in einer Einstellungsquelle konfiguriert. Mit einem konfigurierten Helper bleibt jedes Signal auf dem Relay.
859 859
860Der Endpunkt, den Sie benennen, ändert nur, wohin Exporte gehen. Sie wählen immer noch, welche Signale überhaupt exportieren, mit den `OTEL_*_EXPORTER`-Selektoren.860Der Endpunkt, den Sie benennen, ändert nur, wohin Exporte gehen. Sie wählen immer noch, welche Signale überhaupt exportieren, mit den `OTEL_*_EXPORTER`-Selektoren.
861 861
862Der Endpunkt allein schaltet Export nicht ein, also setzen Sie auch die Variablen, die es tun, es sei denn, das Gateway pusht sie bereits:862Der Endpunkt allein schaltet Export nicht ein, daher setzen Sie auch die Variablen, die dies tun, es sei denn, das Gateway drückt sie bereits:
863 863
864* Wenn das Gateway bereits [die Telemetrie-Variablen pusht](#telemetry), decken sie Aktivierung, Selektoren und Protokoll ab, und Ihr expliziter Endpunkt überschreibt den gepushten `<public_url>`-Wert. Setzen Sie einen `OTEL_*_EXPORTER`-Selektor auf `otlp` selbst nur für ein Signal, das kein `forward_to`-Ziel aktiviert.864* Wenn das Gateway bereits [die Telemetrie-Variablen drückt](#telemetry), decken sie Aktivierung, Selektoren und Protokoll ab, und Ihr expliziter Endpunkt überschreibt den gepushten `<public_url>`-Wert. Setzen Sie einen `OTEL_*_EXPORTER`-Selektor auf `otlp` selbst nur für ein Signal, das kein `forward_to`-Ziel aktiviert.
865* Wenn es nicht, setzen Sie auch `CLAUDE_CODE_ENABLE_TELEMETRY=1`, die `OTEL_*_EXPORTER`-Selektoren und `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`.865* Wenn nicht, setzen Sie auch `CLAUDE_CODE_ENABLE_TELEMETRY=1`, die `OTEL_*_EXPORTER`-Selektoren und `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`.
866 866
867Wenn sich der Entwickler abmeldet oder bei einem anderen Gateway anmeldet, stoppen Exporte an den Collector und Claude Code verwirft jeden verbleibenden Batch, anstatt ihn zu senden.867Wenn sich der Entwickler abmeldet oder bei einem anderen Gateway anmeldet, stoppen Exporte an den Collector und Claude Code verwirft jeden verbleibenden Batch, anstatt ihn zu senden.
868 868
870 Wenn ein Ziel fehlschlägt870 Wenn ein Ziel fehlschlägt
871</h4>871</h4>
872 872
873Das Gateway puffert, wiederholt oder speichert Telemetrie nicht, sodass es einen Export verwirft, der einen Ziel nicht erreicht, anstatt ihn spät zu liefern. Jedes Ziel erfolgreich oder schlägt auf eigene Faust fehl, und der exportierende Client erhält eine Erfolgsmeldung in jedem Fall, sodass eine fehlgeschlagene Lieferung nur im Log des Gateways angezeigt wird.873Das Gateway puffert, wiederholt oder speichert Telemetrie nicht, daher verwirft es einen Export, der ein Ziel nicht erreicht, anstatt ihn verspätet zu liefern. Jedes Ziel erfolgreich oder schlägt fehl auf eigene Faust, und der exportierende Client erhält eine Erfolgsmeldung auf jeden Fall, sodass eine fehlgeschlagene Lieferung nur im Protokoll des Gateways angezeigt wird.
874 874
875Nach fünf aufeinanderfolgenden fehlgeschlagenen Lieferungen an ein Ziel pausiert das Gateway die Weiterleitung daran in 30-Sekunden-Abschnitten, protokolliert jede Pause, bis eine Lieferung erfolgreich ist. Jede Fehlerantwort, Timeout oder Verbindungsfehler zählt als fehlgeschlagene Lieferung, außer `400`, `413`, `415`, `422` und `431`, die bedeuten, dass der Collector diese Exports Payload als fehlgeformt oder zu groß ablehnte.875Nach fünf aufeinanderfolgenden fehlgeschlagenen Lieferungen an ein Ziel pausiert das Gateway die Weiterleitung dorthin in 30-Sekunden-Abständen, protokolliert jede Pause, bis eine Lieferung erfolgreich ist. Jede Fehlerantwort, Timeout oder Verbindungsfehler zählt als fehlgeschlagene Lieferung, außer `400`, `413`, `415`, `422` und `431`, die bedeuten, dass der Collector diese Export-Nutzlast als fehlerhaft oder zu groß ablehnt.
876 876
877Eine abgelehnte Payload rückt weder vor noch setzt den Fehlerzähler zurück: Das Gateway leitet weiterhin an das Ziel weiter und protokolliert eine Warnung, die es und den Status benennt, bei der ersten Ablehnung des Ziels und alle hundert danach.877Eine abgelehnte Nutzlast weder voranschreitet noch setzt den Fehlerzähler zurück: Das Gateway leitet weiterhin an das Ziel weiter und protokolliert eine Warnung, die es und den Status benennt, bei der ersten Ablehnung des Ziels und alle hundert danach.
878 878
879<h3 id="http-tuning">879<h3 id="http-tuning">
880 HTTP-Abstimmung880 HTTP-Optimierung
881</h3>881</h3>
882 882
883Vier optionale Top-Level-Blöcke, `access_control`, `limits`, `timeouts` und `rate_limits`, stimmen die HTTP-Oberfläche ab. Die Standardwerte passen zu den meisten Bereitstellungen.883Vier optionale Top-Level-Blöcke, `access_control`, `limits`, `timeouts` und `rate_limits`, optimieren die HTTP-Oberfläche. Die Standards passen zu den meisten Bereitstellungen.
884 884
885| Block | Schlüssel | Standard | Beschreibung |885| Block | Schlüssel | Standard | Beschreibung |
886| ---------------- | ---------------------------------------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |886| ---------------- | ---------------------------------------------- | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
887| `access_control` | `allow_cidrs` / `deny_cidrs` | leer | Eingehende IP-Zulassung/Ablehnung nach Client-Adresse, nach `trusted_proxies`-Auflösung. `deny_cidrs` wird zuerst überprüft; ein Client, den es passt, wird abgelehnt, auch wenn `allow_cidrs` auch passt. Wenn `allow_cidrs` nicht leer ist, ist das Gateway Standard-Ablehnung. `/healthz` und `/readyz` sind von `allow_cidrs` ausgenommen. Wenn ein vertrauenswürdiger Proxy einen `X-Forwarded-For`-Eintrag sendet, der keine IP-Adresse ist, ist der echte Client unbekannt und das Gateway protokolliert eine Warnung einmal, die benennt, was zu überprüfen ist. Wo eine der Listen auf die Anfrage zutrifft, lehnt es sie mit `403` und Audit-Grund `xff_unparseable` ab. Wo keine zutrifft, bedient es die Anfrage und verwendet die Adresse des Proxy selbst als Client-IP für Pro-IP-Rate-Limits und Audit. |887| `access_control` | `allow_cidrs` / `deny_cidrs` | leer | Eingehende IP-Zulassung/Ablehnung nach Client-Adresse, nach `trusted_proxies`-Auflösung. `deny_cidrs` wird zuerst geprüft; ein Client, den es abgleicht, wird abgelehnt, auch wenn `allow_cidrs` auch abgleicht. Wenn `allow_cidrs` nicht leer ist, ist das Gateway standardmäßig Ablehnung. `/healthz` und `/readyz` sind von `allow_cidrs` ausgenommen. Wenn ein vertrauenswürdiger Proxy einen `X-Forwarded-For`-Eintrag sendet, der keine IP-Adresse ist, ist der echte Client unbekannt und das Gateway protokolliert eine Warnung einmal, die benennt, was zu prüfen ist. Wo eine der Listen auf die Anfrage zutrifft, lehnt sie sie mit `403` und Audit-Grund `xff_unparseable` ab. Wo keine zutrifft, bedient es die Anfrage und verwendet die Adresse des Proxys selbst als Client-IP für Pro-IP-Ratenlimits und Audit. |
888| `limits` | `max_request_bytes` | 32 MiB | Max eingehende Anfragebody; übergroße Anfragen erhalten `413`, bevor der Body gepuffert wird. Erhöhen Sie für große Datei- oder Bildanfragen. |888| `limits` | `max_request_bytes` | 32 MiB | Max eingehender Anfragekörper; übergroße Anfragen erhalten `413`, bevor der Körper gepuffert wird. Erhöhen Sie für große Datei- oder Bildanfragen. |
889| `limits` | `max_request_header_bytes` | nicht gesetzt | Wenn gesetzt, geben übergroße Header `431` zurück |889| `limits` | `max_request_header_bytes` | nicht gesetzt | Wenn gesetzt, geben übergroße Header `431` zurück |
890| `limits` | `max_url_length` | nicht gesetzt | Wenn gesetzt, gibt eine zu lange URL `414` zurück |890| `limits` | `max_url_length` | nicht gesetzt | Wenn gesetzt, gibt eine zu lange URL `414` zurück |
891| `timeouts` | `upstream_ttfb_ms` | 120000 | Max Wartezeit für die Response-Header des Upstream (Zeit bis erstes Byte). Der Response-Body streamt dann ohne Wall-Clock-Cap. Gilt für den direkten Anthropic-Upstream-Pfad; jeder andere Provider ist durch die eigenen Timeouts des Provider-SDK begrenzt. |891| `timeouts` | `upstream_ttfb_ms` | 120000 | Max Wartezeit auf die Antwortheader des Upstream (Zeit zum ersten Byte). Der Antwortkörper streamt dann ohne Wall-Clock-Obergrenze. Gilt für den direkten Anthropic-Upstream-Pfad; jeder andere Anbieter ist durch das eigene Timeout des Anbieter-SDK begrenzt. |
892| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Pro-IP-Rate-Limit auf dem nicht authentifizierten Gerätegenehmigungsendpunkt. Erhöhen Sie für eine große Org hinter einer gemeinsamen Egress-IP oder NAT. Diese Limits gelten nur für den Gerätezuschuss-Anmeldungsfluss, nicht für `/v1/messages`-Inferenz. Siehe [Benutzercode-Brute-Force-Widerstand](/docs/de/claude-apps-gateway-deploy#user-code-brute-force-resistance). |892| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Pro-IP-Ratenlimit auf dem nicht authentifizierten Geräteautorisierungs-Endpunkt. Erhöhen Sie für eine große Organisation hinter einer gemeinsamen Egress-IP oder NAT. Diese Limits gelten nur für den Geräte-Grant-Anmeldungsfluss, nicht für `/v1/messages`-Inferenz. Siehe [Benutzer-Code-Brute-Force-Widerstand](/docs/de/claude-apps-gateway-deploy#user-code-brute-force-resistance). |
893| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | Pro-IP-Rate-Limit auf `user_code`-Einreichungen unter `/device` |893| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | Pro-IP-Ratenlimit bei `user_code`-Einreichungen unter `/device` |
894 894
895<h2 id="complete-example">895<h2 id="complete-example">
896 Vollständiges Beispiel896 Vollständiges Beispiel