Aracılığıyla paylaş


Güvenlik ve Dağıtım

DevUI, yerel geliştirme için örnek bir uygulama olarak tasarlanmıştır. Bu sayfada, DevUI'yi localhost'un ötesinde kullanıma sunmanız gerekiyorsa güvenlikle ilgili önemli noktalar ve en iyi yöntemler ele alınıyor.

Uyarı

DevUI, üretim kullanımı için tasarlanmamıştır. Üretim dağıtımları için uygun güvenlik önlemleriyle Agent Framework SDK'sını kullanarak kendi özel arabiriminizi oluşturun.

Çok Yakında

C# için DevUI belgeleri yakında kullanıma sunulacaktır. Kavramsal yönergeler için lütfen daha sonra tekrar kontrol edin veya Python belgelerine bakın.

UI Modları

DevUI, özelliklere erişimi denetleen iki mod sunar:

Geliştirici Modu (Varsayılan)

Tüm özelliklere tam erişim:

  • İzleme bilgileriyle hata ayıklama paneli
  • Hızlı geliştirme için anında yeniden yükleme (/v1/entities/{id}/reload)
  • Dağıtım araçları (/v1/deployments)
  • Hata ayıklama için ayrıntılı hata iletileri
devui ./agents  # Developer mode is the default

Kullanıcı Modu

Basitleştirilmiş, kısıtlanmış arabirim:

  • Sohbet arabirimi ve konuşma yönetimi
  • Varlık listesi ve temel bilgiler
  • Geliştirici API'leri devre dışı bırakıldı (hızlı yeniden yükleme, dağıtım)
  • Genel hata iletileri (sunucu tarafında günlüğe kaydedilen ayrıntılar)
devui ./agents --mode user

Authentication

Taşıyıcı belirteci kimlik doğrulamasını --auth şu bayrakla etkinleştirin:

devui ./agents --auth

Kimlik doğrulaması etkinleştirildiğinde:

  • localhost için: Belirteç otomatik olarak oluşturulur ve konsolda görüntülenir
  • Ağa maruz kalan dağıtımlar için: DEVUI_AUTH_TOKEN ortam değişkeni veya --auth-token bayrağı aracılığıyla bir belirteç sağlamalısınız
# 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

Tüm API istekleri, üst bilgide Authorization geçerli bir Bearer belirteci içermelidir.

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

DevUI'yi son kullanıcılara sunmanız gerekiyorsa (üretim için önerilmez):

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

Bu yapılandırma:

  • Geliştiriciye yönelik API'leri kısıtlar
  • kimlik doğrulaması gereklidir
  • Tüm ağ arabirimlerine bağlanır

Güvenlik Özellikleri

DevUI çeşitli güvenlik önlemleri içerir:

Özellik Description
Localhost bağlantısı Varsayılan olarak 127.0.0.1'e bağlanır
Kullanıcı modu Geliştirici API'lerini kısıtlar
Taşıyıcı kimlik doğrulaması İsteğe bağlı belirteç tabanlı kimlik doğrulaması
Yerel varlık yükleme Yalnızca yerel dizinlerden veya bellek içindeki varlıkları yükler
Uzaktan yürütme yok Uzaktan kod yürütme özelliği yok

En İyi Yöntemler

Kimlik Bilgileri Yönetimi

  • API anahtarlarını ve gizli dizilerini dosyalarda depolama .env
  • Dosyaları hiçbir zaman .env kaynak denetimine yüklemeyin.
  • Gerekli değişkenleri belge etmek için dosyaları kullanma .env.example
# .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/

Ağ Güvenliği

  • Geliştirme için DevUI'yi localhost'a bağlı tutun
  • Dış erişim gerekiyorsa ters ara sunucu (nginx, Caddy) kullanın
  • Ters ara sunucu aracılığıyla HTTPS'yi etkinleştirme
  • Proxy düzeyinde doğru kimlik doğrulamasını uygulama

Varlık Güvenliği

  • Çalıştırmadan önce tüm aracı/iş akışı kodunu gözden geçirin
  • Yalnızca güvenilen kaynaklardan varlıkları yükleme
  • Yan etkileri olan araçlarla (dosya erişimi, ağ çağrıları) dikkatli olun

Kaynak Temizleme

Sistem kapanışında kimlik bilgilerini ve kaynakları doğru bir şekilde kapatmak için temizleme kancalarını kaydedin.

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

MCP Araçlarıyla İlgili Dikkat Edilmesi Gerekenler

DevUI ile MCP (Model Bağlam Protokolü) araçlarını kullanırken:

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

Önemli

DevUI için MCP araçlarıyla aracı oluştururken bağlam yöneticilerini kullanmayın async with . Bağlantılar çalıştırılmadan önce kapatılır. MCP araçları yavaş başlatma kullanır ve ilk kullanımda otomatik olarak bağlanır.

Sonraki Adımlar

  • Örnekler - Örnek aracılara ve iş akışlarına göz atma
  • API Başvurusu - API uç noktaları hakkında bilgi edinin