Compartir a través de


Seguridad e implementación

DevUI está diseñado como una aplicación de ejemplo para el desarrollo local. En esta página se describen las consideraciones de seguridad y los procedimientos recomendados si necesita exponer DevUI más allá de localhost.

Advertencia

DevUI no está pensado para su uso en producción. En el caso de las implementaciones de producción, cree su propia interfaz personalizada mediante el SDK de Agent Framework con las medidas de seguridad adecuadas.

Próximamente.

La documentación de DevUI para C# estará disponible próximamente. Por favor, vuelva a comprobar más tarde o consulte la documentación de Python para obtener instrucciones conceptuales.

Modos de interfaz de usuario

DevUI ofrece dos modos que controlan el acceso a las características:

Modo de desarrollador (valor predeterminado)

Acceso total a todas las características:

  • Panel de depuración con información de seguimiento
  • Recarga en caliente para un desarrollo rápido (/v1/entities/{id}/reload)
  • Herramientas de implementación (/v1/deployments)
  • Mensajes de error detallados para la depuración
devui ./agents  # Developer mode is the default

Modo de usuario

Interfaz simplificada y restringida:

  • Interfaz de chat y administración de conversaciones
  • Descripción de entidades e información básica
  • APIs de desarrollador deshabilitadas (recarga en caliente, implementación)
  • Mensajes de error genéricos (detalles registrados en el servidor)
devui ./agents --mode user

Autenticación

Habilite la autenticación de token de portador con la --auth marca :

devui ./agents --auth

Cuando la autenticación está habilitada:

  • Para localhost: se genera automáticamente un token y se muestra en la consola.
  • Para las implementaciones expuestas a la red: debe proporcionar un token a través de DEVUI_AUTH_TOKEN una variable de entorno o --auth-token un indicador
# 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

Todas las solicitudes de API deben incluir un token de portador válido en el Authorization encabezado:

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

Si necesita exponer DevUI a los usuarios finales (no se recomienda para producción):

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

Esta configuración:

  • Restringe las API orientadas al desarrollador.
  • Requiere autenticación
  • Enlaza a todas las interfaces de red

Características de seguridad

DevUI incluye varias medidas de seguridad:

Característica Description
Enlace de Localhost Enlaza a 127.0.0.1 de forma predeterminada
Modo de usuario Restringe las API de desarrollador.
Autenticación de portador Autenticación opcional basada en tokens
Carga de entidades locales Solo carga entidades de directorios locales o en memoria
Sin ejecución remota Sin funcionalidades de ejecución remota de código

Procedimientos recomendados

Administración de credenciales

  • Almacenar claves y secretos de API en .env archivos
  • Nunca confirme .env archivos en el control de código fuente
  • Uso de .env.example archivos para documentar las variables necesarias
# .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/

Seguridad de redes

  • Mantener DevUI vinculado a localhost para el desarrollo
  • Usar un proxy inverso (nginx, Caddy) si se necesita acceso externo
  • Habilitación de HTTPS a través del proxy inverso
  • Implementación de la autenticación adecuada en el nivel de proxy

Seguridad de la entidad

  • Revise todo el código de agente o flujo de trabajo antes de ejecutarse.
  • Cargar solo entidades de orígenes de confianza
  • Tenga cuidado con las herramientas que tienen efectos secundarios (acceso a archivos, llamadas de red)

Limpieza de recursos

Registre enlaces de limpieza para cerrar correctamente las credenciales y los recursos al apagar:

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

Consideraciones sobre las herramientas de MCP

Al usar herramientas de MCP (Protocolo de contexto de modelo) con 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])

Importante

No use async with administradores de contexto al crear agentes con herramientas de MCP para DevUI. Las conexiones se cerrarán antes de la ejecución. Las herramientas de MCP usan la inicialización diferida y se conectan automáticamente al primer uso.

Pasos siguientes