Notiz 38 · Microsoft Foundry (2/4)

Sichere KI-Shells: Sollte der Browser direkt mit Foundry sprechen oder nur über einen Proxy?

Vergleiche Optionen zur Härtung von Proxys zwischen Browser und API vor Agent-Backends, inklusive Laufzeitabweichungen und Fehlerbildern bei Front Door.

27. Juni 2026 9 Min. Lesezeit

Das Wichtigste in Kürze

  • Benenne den Proxy als Produktkomponente mit einem Verantwortlichen (Front Door, App Gateway oder App API).
  • Gleiche die Ablehnungsregeln lokal und live an: Authentifizierung, Routen, Body-Größe und Payloads.
  • Wähle das Edge-Muster passend zum Bedrohungsmodell, nicht als nachträglich angeschraubtes TLS.
  • Setze Reasoning- und Passthrough-Felder auf eine Allowlist und verwirf unbekannte Formen.
  • Erzwinge die Autorisierung auf dem Weiterleitungspfad, bevor Foundry oder die Agent-API den Aufruf sieht.
  • Beginne Security-Reviews beim Proxy, dann folgen Prompts und Kontrollen für den Korpus.

Browser-Shells verleiten Teams dazu, der SPA zu sehr zu vertrauen. Die Chat-Oberfläche sieht aus wie das Produkt. Der Proxy vor dem Agent-Backend ist aber die Stelle, an der aus Authentifizierung Autorisierung wird, an der ausgehender Verkehr begrenzt wird und an der gefährliche Payloads per Allowlist zugelassen oder verworfen werden.

Behandle den Proxy als Sicherheitsgrenze. Entscheide dich bewusst für Front Door, Application Gateway oder ein gleichwertiges Muster. Schraube TLS und Autorisierung nicht später an. Laufzeitabweichungen zwischen lokalem und Live-Proxy erzeugen falsche Sicherheit. Reasoning- und Passthrough-Payloads brauchen ausdrückliche Allowlists. Security-Reviews sollten beim Proxy beginnen, nicht beim System-Prompt.

Benanntes Modell: der Proxy als Control Plane

  • SPA-Frontend: Die Browser-Shell hält Tokens und UI-Zustand. Sie ist nicht die Sicherheitsgrenze.
  • Benannter Proxy: terminiert TLS, prüft die Identität, erzwingt Scopes, begrenzt ausgehenden Verkehr und lässt nur erlaubte Payload-Formen durch.
  • Foundry / Agent-API: bekommt nur, was der Proxy schon autorisiert und geformt hat.
  • Parität: Lokal und live gelten dieselben Ablehnungsregeln, auch wenn die Anbieter verschieden sind.
  • Vertrag: Die SPA fragt, der benannte Proxy entscheidet, was die Agent-Ebene erreicht.

Die Browser-SPA spricht mit einem benannten Proxy, der TLS, Autorisierung, ausgehenden Verkehr und Allowlist vor Foundry oder der Agent-API verantwortet

Abbildung 1. Der Proxy als Control Plane. Die SPA ist ein Frontend. Der benannte Proxy verantwortet Identität, Scopes, ausgehenden Verkehr und Payload-Form, bevor Foundry oder deine Agent-API die Anfrage sieht.

Kontext und Rahmenbedingung

Ein typischer Fehler ist ein lokaler Proxy, der Demos sicher wirken lässt, während die Live-Edge mehr durchreicht, als je jemand geprüft hat. Die Prompts des Modells können in Ordnung sein, während die Grenze es nicht ist. Behandle den Proxy als Control Plane für Autorisierung und ausgehenden Verkehr, dann werden Reviews kürzer.

Tokens im Browser erzählen nicht die ganze Geschichte. Der Proxy muss die Identität prüfen, Scopes erzwingen, ausgehenden Verkehr auf freigegebene Backends begrenzen und überraschende Payload-Formen ablehnen. Wenn dein Bedrohungsmodell mit Prompt Injection beginnt und die Edge überspringt, optimierst du zuerst die falsche Ebene.

Abbildung 2 zeigt die Einordnung aus Learn für Gateway-Komponenten vor APIs. Behandle diese Kontrollen als Teil des Produkts, nicht als optionalen Feinschliff.

Diagramm der Komponenten von Azure API Management

Abbildung 2. Härte den Pfad vom Browser zu den Agent-APIs. Gateway-Kontrollen sind Teil des Produkts, kein optionaler Feinschliff. Quelle: Microsoft Learn: Grundbegriffe von API Management.

Design

1. Den Proxy als Produktkomponente benennen

Dokumentiere, welcher Dienst TLS terminiert, Tokens prüft und an Microsoft Foundry oder deine API weiterleitet. "Der Node-Server im App Service" oder "Front Door plus API" sollte ein ausdrücklicher Kasten sein. Unbenannte Edges werden zu Edges ohne Verantwortlichen. Abbildung 1 zeigt diesen benannten Kasten als mittlere Spur.

2. Verhalten von lokalem und Live-Proxy angleichen

Lokale Mocks, die die Autorisierung überspringen oder CORS lockern, bringen Entwicklern die falschen Standards bei. Parität heißt nicht, dass die Anbieter identisch sind. Sie heißt: dieselben Ablehnungsregeln für nicht authentifizierte Aufrufe, zu große Bodies und unbekannte Routen. Falsche Sicherheit ist ein Defekt. Abbildung 3 zeigt diese Parität als gemeinsame Ablehnungen, mit der Abweichung als Anti-Pattern.

Lokaler und Live-Proxy teilen dieselben Ablehnungsregeln. Das Anti-Pattern zeigt einen lokalen Proxy ohne Autorisierung und einen Live-Proxy, der zu viel weiterleitet

Abbildung 3. Lokal und live gelten dieselben Ablehnungsregeln für Authentifizierung, Größe und Routen. Eine Wiki-Seite, die niemand öffnet, ist keine Parität. Eine fehlschlagende Prüfung, die die Beförderung blockiert, ist Parität.

3. Front Door oder Gateway-Muster bewusst wählen

Latenz, WAF, privater Origin und Zertifikatsverwaltung unterscheiden sich. Wähle passend zum Bedrohungsmodell und zum Netzwerkaufbau, den du schon betreibst. Wer eine CDN-ähnliche Edge an eine App schraubt, die von einem freundlichen Intranet ausging, macht TLS zum Theater.

4. Reasoning- und Passthrough-Payloads auf eine Allowlist setzen

Streaming-Chunks, Blobs von Tool-Aufrufen und "Debug"-Felder wandern durch Proxys. Ausdrückliche Allowlists schlagen "alles weiterleiten, was die SPA schickt". Überraschende Felder sind der Weg, auf dem sensible Inhalte den geprüften Pfad verlassen. Abbildung 4 zeigt die Allowlist-Schranke.

Die Payload der SPA trifft auf eine Allowlist im Proxy, die geprüfte Felder weiterleitet und unbekannte Debug-Felder verwirft

Abbildung 4. Lass per Allowlist zu, was durchgeht. Bekannte Felder gehen an das Agent-Backend. Unbekannte und Debug-Felder werden verworfen, damit sie nie zu einem im Browser sichtbaren Leck werden.

5. Autorisierung auf dem Weiterleitungspfad erzwingen

Lehne fehlende oder falsche Scopes ab, bevor das Agent-Backend die Anfrage sieht. Buttons in React zu verstecken ist keine Grenze. Proxy und API teilen eine einzige Geschichte zur Autorisierung.

6. Security-Reviews an der Edge beginnen

System-Prompts zählen. RBAC für den Korpus zählt. Trotzdem beginnt das Review mit der Frage, wer den Proxy erreichen kann, was er aufrufen kann und wohin Antworten gehen können. Prompt-Härtung an einer offenen Edge ist Dekoration.

Fehlerbilder bei Front Door, die man benennen sollte

Falsch konfigurierte Origins, Health Probes, die Shells als gesund melden, während die Backends falsch sind, und Caching-Verhalten, das Streaming-Chats überrascht, kommen häufig vor. Dokumentiere, welches Fehlerverhalten du akzeptierst: bei der Authentifizierung geschlossen scheitern, bei der Gesundheit des Origins sichtbar scheitern, bei Scope-Prüfungen niemals offen scheitern. Der Betrieb braucht ein Runbook, das nicht "SPA neu starten" lautet.

Checkliste für Laufzeitabweichungen

Bevor du eine Shell produktionsreif nennst, vergleiche: Authentifizierung lokal und live erforderlich, maximale Body-Größe, erlaubte Routen, Weiterleitung von Headern, Einstellungen für Websocket oder SSE und Ziele des ausgehenden Verkehrs. Lege den Vergleich in CI oder in eine Release-Checkliste. Eine Wiki-Seite, die niemand öffnet, ist keine Parität. Eine fehlschlagende Prüfung, die die Beförderung blockiert, ist Parität.

Was in das Gespräch über die Allowlist gehört

Liste Anfragepfade, Methoden, Content-Types und Streaming-Modi der Antworten auf. Liste, welche Header zum Backend fließen dürfen. Liste, welche Formen von Tool-Ergebnissen an den Browser zurückgehen dürfen. Wenn ein Feld nur für internes Tracing gedacht ist, sollte es standardmäßig nicht im Browser sichtbar sein. Allowlists wirken pedantisch, bis zum ersten versehentlichen Leck einer internen Kennung.

Häufige Fehler

Vertrauen in die SPA. "Die Nutzer sind angemeldet" ersetzt die Prüfung der Anfrage.

Abweichung zwischen lokal und live. Dev funktioniert, Prod leitet zu viel weiter. Abbildung 3 macht genau diesen Defekt sichtbar.

TLS später. Zertifikate und HTTP-Einstellungen werden zur Hektik.

Maximales Durchreichen. Unbekannte JSON-Felder fahren mit. Abbildung 4 zeigt die Allowlist, die das stoppt.

Reviews, die mit dem Prompt beginnen. Fragen zur Edge kommen erst nach dem Release.

Ein einziger Engineer verantwortet die Edge. Abwesenheiten werden zu Risikofenstern.

So übernehmen oder anpassen

So übernehmen

  • Der Pfad vom Browser zum Agent enthält eine ausdrückliche Proxy- beziehungsweise Sicherheitsgrenze mit benanntem Verantwortlichen.
  • Lokaler und Live-Proxy teilen die Ablehnungsregeln für Authentifizierung, Routen und Payloads.
  • Die Wahl von Front Door oder Gateway (oder einem Gegenstück) ist mit einer Begründung aus dem Bedrohungsmodell dokumentiert.
  • Reasoning- und Passthrough-Felder stehen auf einer Allowlist, unbekannte Felder werden verworfen.
  • Die Autorisierung wird auf dem Weiterleitungspfad erzwungen, nicht nur durch Filtern in der UI.
  • Security-Reviews beginnen beim Proxy und gehen dann zu Prompts und Kontrollen für den Korpus über.

Vor dem Einsatz anpassen

Ein ernsthafter Proxy bringt Konfiguration und eine weitere Komponente mit Verantwortlichem mit. Wer ihn weglässt, hält Demos schnell und macht Angreifern den Einbruch leichter. Strenge Allowlists bremsen spontane Experimente, lockeres Durchreichen bremst die Aufarbeitung von Incidents. Lokal und live anzugleichen kostet Arbeit an Fixtures, die Abweichung kostet Überraschungen in Produktion. Security-Reviews, die an der Edge beginnen, kosten Kalenderzeit und sparen Zeit für Entschuldigungen.

Wichtigste Quellen: die Sicherheitshinweise zu Azure Front Door und Application Gateway auf Microsoft Learn sowie dein ADR zur API-Autorisierung. Verbinde Netzwerkdiagramme mit Payload-Allowlists, damit Reviews etwas Greifbares haben.

Fazit

Benenne die Grenze. Gleiche lokal an live an. Wähle die Edge bewusst. Lass per Allowlist zu, was durchgeht. Erzwinge die Autorisierung auf dem Weg hinein. Beginne Reviews beim Proxy. Der System-Prompt kann warten, bis er dran ist.

Verwandte Notizen