Bagikan melalui


Keamanan & Penyebaran

DevUI dirancang sebagai aplikasi sampel untuk pengembangan lokal. Halaman ini mencakup pertimbangan keamanan dan praktik terbaik jika Anda perlu mengekspos DevUI di luar localhost.

Peringatan

DevUI tidak ditujukan untuk penggunaan produksi. Untuk penyebaran produksi, bangun antarmuka kustom Anda sendiri menggunakan Agent Framework SDK dengan langkah-langkah keamanan yang sesuai.

Segera hadir

Dokumentasi DevUI untuk C# akan segera hadir. Silakan periksa kembali nanti atau lihat dokumentasi Python untuk panduan konseptual.

Mode UI

DevUI menawarkan dua mode yang mengontrol akses ke fitur:

Mode Pengembang (Default)

Akses penuh ke semua fitur:

  • Panel debug dengan informasi pelacakan
  • Isi ulang panas untuk pengembangan cepat (/v1/entities/{id}/reload)
  • Alat penyebaran (/v1/deployments)
  • Pesan kesalahan terperinci untuk debugging
devui ./agents  # Developer mode is the default

Mode Pengguna

Antarmuka yang disederhanakan dan dibatasi:

  • Antarmuka obrolan dan manajemen percakapan
  • Daftar entitas dan info dasar
  • API pengembang dinonaktifkan (muat ulang cepat, penyebaran)
  • Pesan kesalahan generik (detail dicatat di sisi server)
devui ./agents --mode user

Authentication

Aktifkan autentikasi token Pembawa dengan --auth flag:

devui ./agents --auth

Saat autentikasi diaktifkan:

  • Untuk localhost: Token dibuat secara otomatis dan ditampilkan di konsol
  • Untuk penyebaran yang diekspos jaringan: Anda harus memberikan token melalui DEVUI_AUTH_TOKEN variabel lingkungan atau --auth-token flag
# 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

Semua permintaan API harus menyertakan token Pembawa yang valid di Authorization header:

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

Jika Anda perlu mengekspos DevUI ke pengguna akhir (tidak disarankan untuk produksi):

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

Konfigurasi ini:

  • Membatasi API yang menghadap pengembang
  • Memerlukan autentikasi
  • Menghubungkan ke semua antarmuka jaringan

Fitur Keamanan

DevUI mencakup beberapa langkah keamanan:

Fitur Deskripsi
Pengikatan localhost Ikatan ke 127.0.0.1 secara default
Mode pengguna Membatasi API pengembang
Autentikasi pembawa Autentikasi berbasis token opsional
Pemuatan entitas lokal Hanya memuat entitas dari direktori lokal atau dalam memori
Tidak ada eksekusi jarak jauh Tidak ada kemampuan eksekusi kode jarak jauh

Praktik Terbaik

Manajemen Kredensial

  • Menyimpan kunci dan rahasia API dalam .env file
  • Jangan pernah menerapkan .env file ke kontrol sumber
  • Menggunakan .env.example file untuk mendokumen variabel yang diperlukan
# .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/

Keamanan Jaringan

  • Menjaga DevUI terikat ke localhost untuk pengembangan
  • Gunakan proksi terbalik (nginx, Caddy) jika akses eksternal diperlukan
  • Mengaktifkan HTTPS melalui proksi terbalik
  • Menerapkan autentikasi yang tepat di tingkat proksi

Keamanan Entitas

  • Tinjau semua kode agen/alur kerja sebelum menjalankan
  • Hanya memuat entitas dari sumber tepercaya
  • Berhati-hatilah dengan alat yang memiliki efek samping (akses file, panggilan jaringan)

Pembersihan Sumber Daya

Daftarkan kait pembersihan untuk menutup kredensial dan sumber daya dengan benar saat dimatikan:

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

Pertimbangan Alat MCP

Saat menggunakan alat MCP (Model Context Protocol) dengan 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])

Penting

Jangan gunakan async with manajer konteks saat membuat agen dengan alat MCP untuk DevUI. Koneksi akan ditutup sebelum eksekusi. Alat MCP menggunakan inisialisasi lambat dan terhubung secara otomatis pada penggunaan pertama kali.

Langkah Selanjutnya

  • Sampel - Telusuri agen sampel dan alur kerja
  • Referensi API - Pelajari tentang titik akhir API