次の方法で共有


セキュリティと展開

DevUI は、 ローカル開発のサンプル アプリケーションとして設計されています。 このページでは、localhost を超えて DevUI を公開する必要がある場合のセキュリティに関する考慮事項とベスト プラクティスについて説明します。

Warnung

DevUI は運用環境での使用を目的としていません。 運用環境のデプロイでは、Agent Framework SDK と適切なセキュリティ対策を使用して独自のカスタム インターフェイスを構築します。

近日公開

C# の DevUI ドキュメントは近日公開予定です。 概念ガイダンスについては、後でもう一度確認するか、Python のドキュメントを参照してください。

UI モード

DevUI には、機能へのアクセスを制御する 2 つのモードが用意されています。

開発者モード (既定)

すべての機能へのフル アクセス:

  • トレース情報を含むデバッグ パネル
  • 迅速な開発のためのホット リロード (/v1/entities/{id}/reload)
  • 展開ツール (/v1/deployments)
  • デバッグ用の冗長エラー メッセージ
devui ./agents  # Developer mode is the default

ユーザー モード

簡略化された制限付きインターフェイス:

  • チャット インターフェイスと会話管理
  • エンティティの一覧と基本情報
  • 開発者 API が無効になっている (ホット リロード、デプロイ)
  • 一般的なエラー メッセージ (ログに記録されたサーバー側の詳細)
devui ./agents --mode user

認証

--auth フラグを使用してベアラー トークン認証を有効にします。

devui ./agents --auth

認証が有効になっている場合:

  • localhost の場合: トークンが自動生成され、コンソールに表示されます
  • ネットワークで公開されるデプロイの場合: 環境変数またはDEVUI_AUTH_TOKEN フラグ--auth-token使用してトークンを指定する必要があります
# 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

すべての API 要求は、 Authorization ヘッダーに有効なベアラー トークンを含める必要があります。

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

DevUI をエンド ユーザーに公開する必要がある場合 (運用環境では推奨されません)。

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

この構成:

  • 開発者向け API を制限する
  • 認証の必要性
  • すべてのネットワーク インターフェイスにバインドする

セキュリティ機能

DevUI には、いくつかのセキュリティ対策が含まれています。

特徴 Description
Localhost バインド 既定で 127.0.0.1 にバインドされます
ユーザー モード 開発者 API を制限する
ベアラー認証 オプションのトークン ベースの認証
ローカル エンティティの読み込み ローカル ディレクトリまたはメモリ内からエンティティのみを読み込む
リモート実行なし リモート コード実行機能なし

ベスト プラクティス

資格情報の管理

  • API キーとシークレットを .env ファイルに格納する
  • .env ファイルをソース管理にコミットしないでください
  • .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/

ネットワークのセキュリティ

  • 開発のために DevUI を localhost にバインドしたままにする
  • 外部アクセスが必要な場合は、リバース プロキシ (nginx、Caddy) を使用する
  • リバース プロキシを使用して HTTPS を有効にする
  • プロキシ レベルで適切な認証を実装する

エンティティのセキュリティ

  • 実行する前にすべてのエージェント/ワークフロー コードを確認する
  • 信頼できるソースからエンティティのみを読み込む
  • 副作用があるツール (ファイル アクセス、ネットワーク呼び出し) には注意してください

リソースのクリーンアップ

クリーンアップ フックを登録して、シャットダウン時に資格情報とリソースを適切に閉じます。

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 ツールに関する考慮事項

DevUI で MCP (モデル コンテキスト プロトコル) ツールを使用する場合:

# 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

DevUI 用の MCP ツールを使用してエージェントを作成するときは、 async with コンテキスト マネージャーを使用しないでください。 接続は実行前に閉じられます。 MCP ツールは遅延初期化を使用し、最初の使用時に自動的に接続します。

次のステップ