Delen via


Beveiliging en implementatie

DevUI is ontworpen als voorbeeldtoepassing voor lokale ontwikkeling. Op deze pagina worden beveiligingsoverwegingen en aanbevolen procedures behandeld als u DevUI buiten localhost beschikbaar wilt maken.

Waarschuwing

DevUI is niet bedoeld voor productiegebruik. Voor productie-implementaties bouwt u uw eigen aangepaste interface met behulp van de Agent Framework SDK met de juiste beveiligingsmaatregelen.

Binnenkort beschikbaar

De DevUI-documentatie voor C# is binnenkort beschikbaar. Kom later terug of raadpleeg de Python-documentatie voor conceptuele richtlijnen.

UI-modi

DevUI biedt twee modi waarmee de toegang tot functies wordt beheerd:

Ontwikkelaarsmodus (standaard)

Volledige toegang tot alle functies:

  • Foutopsporingsvenster met traceringsgegevens
  • Dynamisch opnieuw laden voor snelle ontwikkeling (/v1/entities/{id}/reload)
  • Implementatiehulpprogramma's (/v1/deployments)
  • Uitgebreide foutberichten voor foutopsporing
devui ./agents  # Developer mode is the default

Gebruikersmodus

Vereenvoudigde, beperkte interface:

  • Chatinterface en gespreksbeheer
  • Entiteitsvermelding en basisgegevens
  • Ontwikkelaars-API's uitgeschakeld (hot reload, implementatie)
  • Algemene foutberichten (details vastgelegd aan de serverzijde)
devui ./agents --mode user

Authenticatie

Bearer-tokenverificatie inschakelen met de --auth vlag:

devui ./agents --auth

Wanneer verificatie is ingeschakeld:

  • Voor localhost: Een token wordt automatisch gegenereerd en weergegeven in de console
  • Voor netwerkimplementaties : U moet een token opgeven via DEVUI_AUTH_TOKEN omgevingsvariabele of --auth-token vlag
# 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-aanvragen moeten een geldig Bearer-token bevatten in de Authorization header:

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

Als u DevUI beschikbaar moet maken voor eindgebruikers (niet aanbevolen voor productie):

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

Deze configuratie:

  • Beperk ontwikkelaarsgerichte API's
  • Vereist authenticatie
  • Bindt aan alle netwerkinterfaces

Beveiligingsfuncties

DevUI bevat verschillende beveiligingsmaatregelen:

Eigenschap Description
localhostbinding Wordt standaard gebonden aan 127.0.0.1
Gebruikersmodus Hiermee beperkt u api's voor ontwikkelaars
Bearer-authenticatie Optionele verificatie op basis van tokens
Laden van lokale entiteit Alleen entiteiten uit lokale mappen of in het geheugen laden
Geen externe uitvoering Geen mogelijkheden voor uitvoering van externe code

Beste praktijken

Referentiesbeheer

  • API-sleutels en -geheimen opslaan in .env bestanden
  • Nooit bestanden doorvoeren .env in broncodebeheer
  • Gebruik .env.example bestanden om vereiste variabelen te documenteren
# .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/

Netwerkbeveiliging

  • DevUI gebonden houden aan localhost voor ontwikkeling
  • Gebruik een omgekeerde proxy (nginx, Caddy) als externe toegang nodig is
  • HTTPS inschakelen via de omgekeerde proxy
  • De juiste verificatie implementeren op proxyniveau

Entiteitsbeveiliging

  • Alle agent-/werkstroomcode controleren voordat u deze uitvoert
  • Alleen entiteiten uit vertrouwde bronnen laden
  • Wees voorzichtig met hulpprogramma's met bijwerkingen (bestandstoegang, netwerkaanroepen)

Opschonen van middelen

Registreer schoonmaakhooks om referenties en bronnen goed af te sluiten bij het afsluiten.

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

Overwegingen voor MCP-hulpprogramma's

Wanneer u MCP-hulpprogramma's (Model Context Protocol) gebruikt met 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])

Belangrijk

Gebruik geen async with contextbeheerders bij het maken van agents met MCP-hulpprogramma's voor DevUI. Verbindingen worden gesloten voordat ze worden uitgevoerd. MCP-hulpprogramma's maken gebruik van luie initialisatie en maken automatisch verbinding bij eerste gebruik.

Volgende stappen