Freigeben über


Sicherheit und Einsatz

DevUI ist als Beispielanwendung für die lokale Entwicklung konzipiert. Diese Seite behandelt Sicherheitsaspekte und bewährte Methoden, wenn Sie DevUI über localhost hinaus verfügbar machen müssen.

Warnung

DevUI ist nicht für die Produktionsverwendung vorgesehen. Erstellen Sie für Produktionsbereitstellungen ihre eigene benutzerdefinierte Schnittstelle mit dem Agent Framework SDK mit entsprechenden Sicherheitsmaßnahmen.

In Kürze verfügbar

DevUI-Dokumentation für C# wird in Kürze verfügbar sein. Bitte schauen Sie später wieder vorbei, oder lesen Sie die Python-Dokumentation, um konzeptionelle Anleitungen zu erhalten.

Benutzeroberflächenmodi

DevUI bietet zwei Modi, die den Zugriff auf Features steuern:

Entwicklermodus (Standard)

Vollzugriff auf alle Features:

  • Debug-Panel mit Trace-Informationen
  • Hot reload für schnelle Entwicklung (/v1/entities/{id}/reload)
  • Bereitstellungstools (/v1/deployments)
  • Ausführliche Fehlermeldungen für das Debuggen
devui ./agents  # Developer mode is the default

Benutzermodus

Vereinfachte, eingeschränkte Schnittstelle:

  • Chatschnittstelle und Unterhaltungsverwaltung
  • Entitätsauflistung und grundlegende Informationen
  • Deaktivierte Entwickler-APIs (Heißneuladen, Bereitstellung)
  • Generische Fehlermeldungen (serverseitig protokolliert)
devui ./agents --mode user

Authentifizierung

Aktivieren Sie die Bearertokenauthentifizierung mit der --auth Kennzeichnung:

devui ./agents --auth

Wenn die Authentifizierung aktiviert ist:

  • Für localhost: Ein Token wird automatisch generiert und in der Konsole angezeigt.
  • Für Netzwerkbereitstellungen : Sie müssen ein Token über DEVUI_AUTH_TOKEN die Umgebungsvariable oder --auth-token das Flag bereitstellen.
# Auto-generated token (localhost only)
devui ./agents --auth

# Custom token via CLI
devui ./agents --auth --auth-token "your-secure-token"

# Custom token via environment variable
export DEVUI_AUTH_TOKEN="your-secure-token"
devui ./agents --auth --host 0.0.0.0

Alle API-Anforderungen müssen ein gültiges Bearertoken im Authorization Header enthalten:

curl http://localhost:8080/v1/entities \
  -H "Authorization: Bearer your-token-here"

Wenn Sie DevUI für Endbenutzer verfügbar machen müssen (nicht für die Produktion empfohlen):

devui ./agents --mode user --auth --host 0.0.0.0

Diese Konfiguration:

  • Beschränkt entwicklerorientierte APIs
  • Authentifizierung erforderlich
  • Bindet an alle Netzwerkschnittstellen

Sicherheitsfeatures

DevUI umfasst mehrere Sicherheitsmaßnahmen:

Merkmal Description
Localhost-Bindung Bindet standardmäßig an 127.0.0.1
Benutzermodus Schränkt Entwickler-APIs ein
Bearer-Authentifizierung Optionale tokenbasierte Authentifizierung
Lokales Einheitenladen Nur Entitäten aus lokalen Verzeichnissen oder im Arbeitsspeicher werden geladen.
Keine Remoteausführung Keine Remotecodeausführungsfunktionen

Bewährte Methoden

Verwaltung von Anmeldeinformationen

  • Speichern von API-Schlüsseln und geheimen Schlüsseln in .env Dateien
  • Niemals .env Dateien ins Versionskontrollsystem einchecken.
  • Verwenden von .env.example Dateien zum Dokumentieren erforderlicher Variablen
# .env.example (safe to commit)
OPENAI_API_KEY=your-api-key-here
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/

# .env (never commit)
OPENAI_API_KEY=sk-actual-key
AZURE_OPENAI_ENDPOINT=https://my-resource.openai.azure.com/

Netzwerksicherheit

  • DevUI für die Entwicklung an localhost gebunden halten
  • Verwenden eines Reverseproxys (nginx, Caddy), wenn externer Zugriff erforderlich ist
  • Aktivieren von HTTPS über den Reverseproxy
  • Implementieren der richtigen Authentifizierung auf Proxyebene

Entitätssicherheit

  • Überprüfen des gesamten Agent-/Workflowcodes vor der Ausführung
  • Nur Entitäten aus vertrauenswürdigen Quellen laden
  • Seien Sie vorsichtig mit Tools, die Nebenwirkungen haben (Dateizugriff, Netzwerkaufrufe)

Ressourcenbereinigung

Registrieren Sie Bereinigungs-Hooks, um Anmeldeinformationen und Ressourcen beim Herunterfahren ordnungsgemäß zu schließen:

from azure.identity.aio import DefaultAzureCredential
from agent_framework import Agent
from agent_framework.azure import AzureOpenAIChatClient
from agent_framework_devui import register_cleanup, serve

credential = DefaultAzureCredential()
client = AzureOpenAIChatClient()
agent = Agent(name="MyAgent", chat_client=client)

# Register cleanup hook - credential will be closed on shutdown
register_cleanup(agent, credential.close)
serve(entities=[agent])

Überlegungen zu MCP-Tools

Bei Verwendung von MCP-Tools (Model Context Protocol) mit DevUI:

# Correct - DevUI handles cleanup automatically
mcp_tool = MCPStreamableHTTPTool(url="http://localhost:8011/mcp", chat_client=chat_client)
agent = Agent(tools=mcp_tool)
serve(entities=[agent])

Von Bedeutung

Verwenden Sie die async with Kontextmanager nicht, wenn Sie Agents mit MCP-Tools für DevUI erstellen. Verbindungen werden vor der Ausführung geschlossen. MCP-Tools verwenden faule Initialisierung und automatische Verbindung bei der ersten Verwendung.

Nächste Schritte

  • Beispiele – Durchsuchen von Beispiel-Agents und Workflows
  • API-Referenz – Erfahren Sie mehr über die API-Endpunkte