Sdílet prostřednictvím


Zabezpečení a nasazení

DevUI je navržená jako ukázková aplikace pro místní vývoj. Tato stránka se zabývá aspekty zabezpečení a osvědčenými postupy, pokud potřebujete vystavit DevUI mimo localhost.

Výstraha

DevUI není určen pro produkční použití. V případě produkčních nasazení vytvořte vlastní rozhraní pomocí sady SDK pro rozhraní Agent Framework s příslušnými bezpečnostními opatřeními.

Již brzy

Dokumentace k DevUI pro C# bude brzy k dispozici. Zkontrolujte to prosím později nebo se obraťte na dokumentaci k Pythonu pro konceptuální pokyny.

Režimy uživatelského rozhraní

DevUI nabízí dva režimy, které řídí přístup k funkcím:

Vývojářský režim (výchozí)

Úplný přístup ke všem funkcím:

  • Panel ladění s trasovacím informacemi
  • Opětovné načítání za provozu pro rychlý vývoj (/v1/entities/{id}/reload)
  • Nástroje pro nasazení (/v1/deployments)
  • Podrobné chybové zprávy pro ladění
devui ./agents  # Developer mode is the default

Uživatelský režim

Zjednodušené, omezené rozhraní:

  • Rozhraní chatu a správa konverzací
  • Výpis entit a základní informace
  • Zakázaná rozhraní API pro vývojáře (opětovné načítání za provozu, nasazení)
  • Obecné chybové zprávy (podrobnosti protokolované na straně serveru)
devui ./agents --mode user

Autentizace

Povolte ověřování nosným tokenem pomocí příznaku --auth :

devui ./agents --auth

Pokud je povolené ověřování:

  • Pro localhost: Token se automaticky vygeneruje a zobrazí v konzole.
  • Pro nasazení vystavené síti: Musíte zadat token prostřednictvím DEVUI_AUTH_TOKEN proměnné prostředí nebo --auth-token přepínače.
# 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

Všechny požadavky rozhraní API musí v hlavičce obsahovat platný nosný token Authorization :

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

Pokud potřebujete zpřístupnit DevUI koncovým uživatelům (nedoporučuje se pro produkční prostředí):

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

Tato konfigurace:

  • Omezuje rozhraní API určená pro vývojáře.
  • Vyžaduje ověření.
  • Vazby ke všem síťovým rozhraním

Funkce zabezpečení

DevUI zahrnuje několik bezpečnostních opatření:

Vlastnost Description
Propojení na localhost Připojuje se k 127.0.0.1 ve výchozím nastavení
Uživatelský režim Omezení rozhraní API pro vývojáře
Autentizace pomocí přenositele Volitelné ověřování založené na tokenech
Načítání místní entity Načítá pouze entity z místních adresářů nebo z paměti.
Žádné vzdálené spuštění Žádné možnosti vzdáleného spouštění kódu

Osvědčené postupy

Správa přihlašovacích údajů

  • Ukládání klíčů rozhraní API a tajných kódů v .env souborech
  • Nikdy neschovávejte .env soubory do správy zdrojového kódu
  • Použití .env.example souborů k dokumentaci požadovaných proměnných
# .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/

Zabezpečení sítě

  • Udržte DevUI přiřazený k localhostu pro vývoj
  • Pokud je potřeba externí přístup, použijte reverzní proxy server (nginx, Caddy).
  • Povolení HTTPS prostřednictvím reverzního proxy serveru
  • Implementace správného ověřování na úrovni proxy serveru

Zabezpečení entit

  • Kontrola veškerého kódu agenta nebo pracovního postupu před spuštěním
  • Načítejte pouze entity z důvěryhodných zdrojů
  • Buďte opatrní u nástrojů, které mají vedlejší účinky (přístup k souborům, síťová volání)

Vyčištění zdrojů

Registrace čisticích háčků pro správné zavření přihlašovacích údajů a prostředků při vypínání.

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])

Důležité informace o nástrojích MCP

Při použití nástrojů MCP (Model Context Protocol) s 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])

Důležité

Při vytváření agentů s nástroji MCP pro DevUI nepoužívejte async with kontextové manažery. Připojení se před provedením zavřou. Nástroje MCP používají opožděnou inicializaci a automaticky se připojují při prvním použití.

Další kroky