Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
DevUI est conçu comme exemple d’application pour le développement local. Cette page aborde les considérations relatives à la sécurité et les bonnes pratiques si vous devez exposer DevUI au-delà de localhost.
Avertissement
DevUI n’est pas destiné à une utilisation en production. Pour les déploiements de production, créez votre propre interface personnalisée à l’aide du Kit de développement logiciel (SDK) Agent Framework avec les mesures de sécurité appropriées.
Bientôt disponible
La documentation DevUI pour C# sera bientôt disponible. Consultez la documentation Python ultérieurement ou reportez-vous à la documentation Python pour obtenir des conseils conceptuels.
Modes d’interface utilisateur
DevUI propose deux modes qui contrôlent l’accès aux fonctionnalités :
Mode développeur (par défaut)
Accès complet à toutes les fonctionnalités :
- Panneau Debug avec des informations de trace
- Rechargement à chaud pour le développement rapide (
/v1/entities/{id}/reload) - Outils de déploiement (
/v1/deployments) - Messages d’erreur détaillés pour le débogage
devui ./agents # Developer mode is the default
Mode utilisateur
Interface simplifiée et restreinte :
- Interface de conversation et gestion des conversations
- Liste d’entités et informations de base
- API développeur désactivées (rechargement à chaud, déploiement)
- Messages d’erreur génériques (détails consignés côté serveur)
devui ./agents --mode user
Authentication
Activez l’authentification par jeton du porteur avec l’indicateur --auth :
devui ./agents --auth
Lorsque l’authentification est activée :
- Pour localhost : un jeton est généré automatiquement et affiché dans la console
- Pour les déploiements exposés au réseau : vous devez fournir un jeton via
DEVUI_AUTH_TOKENune variable d’environnement ou--auth-tokenun indicateur
# 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
Toutes les demandes d’API doivent inclure un jeton porteur valide dans l’en-tête Authorization :
curl http://localhost:8080/v1/entities \
-H "Authorization: Bearer your-token-here"
Configuration de déploiement recommandée
Si vous devez exposer DevUI aux utilisateurs finaux (non recommandés pour la production) :
devui ./agents --mode user --auth --host 0.0.0.0
Cette configuration :
- Limite les API destinées aux développeurs
- Authentification requise
- Se lie à toutes les interfaces réseau
Fonctionnalités de sécurité
DevUI comprend plusieurs mesures de sécurité :
| Caractéristique | Descriptif |
|---|---|
| Liaison à Localhost | Lie à 127.0.0.1 par défaut |
| Mode utilisateur | Restreint les API des développeurs |
| Authentification du porteur | Authentification basée sur un jeton facultatif |
| Chargement d’entité locale | Charge uniquement des entités à partir de répertoires locaux ou en mémoire |
| Aucune exécution à distance | Aucune capacité d’exécution de code distant |
Meilleures pratiques
Gestion des identifiants
- Stocker des clés API et des secrets dans des
.envfichiers - Ne jamais valider
.envles fichiers dans le contrôle de code source - Utiliser des
.env.examplefichiers pour documenter les variables requises
# .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/
Sécurité réseau
- Conserver DevUI lié à localhost pour le développement
- Utiliser un proxy inverse (nginx, Caddy) si l’accès externe est nécessaire
- Activer HTTPS via le proxy inverse
- Implémenter une authentification appropriée au niveau du proxy
Sécurité d'une entité
- Passez en revue tout le code de l’agent/flux de travail avant d’exécuter
- Charger uniquement des entités à partir de sources approuvées
- Soyez prudent avec les outils qui ont des effets secondaires (accès aux fichiers, appels réseau)
Nettoyage des ressources
Enregistrez les hooks de nettoyage pour fermer correctement les identifiants et les ressources lors de l’arrêt.
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])
Considérations relatives aux outils MCP
Lors de l’utilisation des outils MCP (Model Context Protocol) avec 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])
Important
N’utilisez async with pas de gestionnaires de contexte lors de la création d’agents avec des outils MCP pour DevUI. Les connexions sont fermées avant l’exécution. Les outils MCP utilisent l’initialisation différée et se connectent automatiquement lors de la première utilisation.
Étapes suivantes
- Exemples - Parcourir des exemples d’agents et de flux de travail
- Informations de référence sur l’API - En savoir plus sur les points de terminaison d’API