Actionsオブジェクト構造
Actionsを使用すると、OpenAPI仕様からツールを動的に作成できます。actionsオブジェクトの構造により、エージェント/アシスタントのアクションに対して許可するドメインを指定できます。
詳細情報: Agents - Actions
例
# Example Actions Object Structure
actions:
# Strict whitelist mode:
# allowedDomains:
# - "swapi.dev"
# - "librechat.ai"
# - "google.com"
# - "https://api.example.com:8443" # With protocol and port
# Default SSRF mode with private service exemptions:
allowedAddresses:
- "host.docker.internal:11434" # Permit one private host on one port
- "10.0.0.5:8080" # Permit one private IP on one portallowedDomains
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| allowedDomains | Array of Strings | エージェント/アシスタントのアクションに対して許可されるドメインを指定するリスト。 | When configured, only listed domains are allowed. When not configured, SSRF targets are blocked but all other domains are allowed. |
任意
セキュリティコンテキスト (SSRF保護)
LibreChatには、以下の動作を伴うSSRF(Server-Side Request Forgery)保護が含まれています。
allowedDomains が設定されていない場合:
- SSRFの脆弱性があるターゲットはデフォルトでブロックされます
- その他のすべての外部ドメインは許可されています
allowedDomains が設定されている場合:
- リストにあるドメインのみが許可されます
- 内部/SSRFターゲットは、リストに明示的に追加することで許可できます。
ブロックされたSSRFターゲットには以下が含まれます:
- Localhost アドレス (
localhost,127.0.0.1,::1) - プライベートIP範囲 (
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16) - リンクローカルアドレス (
169.254.0.0/16、クラウドメタデータIPを含む) - 内部 TLD (
.internal,.local,.localhost) - 一般的な内部サービス名 (
redis,mongodb,postgres,apiなど)
アクションが内部サービスにアクセスする必要がある場合は、厳格な allowedDomains ホワイトリストに追加するか、allowedDomains を設定しないままにして、対象のプライベートサービスを allowedAddresses に正確に追加してください。
パターンフォーマット
allowedDomains 配列は、いくつかの形式をサポートしています:
-
ドメインのみ - すべてのプロトコルとポートを許可します:
allowedDomains: - "api.example.com" -
プロトコル指定 - 特定のプロトコルに制限します:
allowedDomains: - "https://api.example.com" -
プロトコルとポートを指定する場合 - 特定のプロトコルとポートに制限します:
allowedDomains: - "https://api.example.com:8443" -
内部アドレス (明示的に許可する必要があります):
allowedDomains: - "192.168.1.100" - "internal-api.local"
例:
allowedDomains:
- "swapi.dev"
- "librechat.ai"
- "google.com"
- "https://secure-api.example.com:443"
- "192.168.1.50" # Internal service (explicitly allowed)allowedAddresses
allowedAddresses は、SSRFのプライベートIPブロックに対する除外リストであり、ドメインのホワイトリストではありません。これは、Actionsがパブリックインターネット上で到達できる範囲を制限することなく、特定のプライベート/内部サービスを1つまたは2つ許可したい場合に適したツールです。
allowedDomains の代わりに使用すべき場合
allowedDomains は厳格なホワイトリストです。これが設定されている場合、リストに記載されたエントリのみが到達可能になります。例えば、セルフホストの内部APIを許可するためにプライベートIPを追加すると、リストに含めていないすべてのパブリックなアクション用 endpoint もブロックされます。
allowedAddresses は、allowedDomains が設定されていない場合にのみ使用されます。これは、特定のプライベートな host:port ターゲットへのアクセスを許可しつつ、それ以外についてはデフォルトの SSRF ポリシーを通じてパブリックインターネットへのアクセスを維持します。
actions:
allowedAddresses:
- "host.docker.internal:11434"
- "10.0.0.5:8080"
# allowedDomains is intentionally not set — public destinations
# remain reachable, only listed private host:port services are exempted.allowedDomains が設定されている場合、それが優先されます。プライベートサービスは allowedAddresses に頼るのではなく、そこにリストアップする必要があります。
許容されるエントリ
- ポート番号を含むホスト名:
host.docker.internal:11434,ollama.internal:8080,localhost:11434 - ポート付きプライベートIPv4リテラル:
10.0.0.5:8080,127.0.0.1:11434,192.168.1.10:443,169.254.169.254:80 - ポート付きの角括弧で囲まれたプライベートIPv6リテラル:
[::1]:11434,[fc00::1]:8080,[fe80::1]:8080
拒否されたエントリ(設定読み込み時に検証)
- URL / パス / CIDR 範囲:
http://10.0.0.5,10.0.0.0/24,/path - ベアホスト名またはIP:
localhost、10.0.0.5、::1、[::1]— すべてのエントリにはポートを含める必要があります - 無効なポート:
localhost:0,localhost:65536,localhost:http - パブリックIPリテラル:
8.8.8.8:53、1.1.1.1:53、[2001:4860::8888]:443— このフィールドはプライベートIP空間にスコープされています。パブリックIPはSSRFのターゲットではなく、パブリックIPの除外設定には防御上の目的はありません。
Hostname trust
ホスト名エントリは、実行時にそのホスト名が解決されるIPアドレスを、指定されたポートで信頼します。リストされたホスト名のDNSがローテーションされたり、ハイジャックされて別のプライベートIPを指すようになった場合、その免除も追従します。自身でDNSを管理しているホスト名のみをリストしてください。可能な限り、リテラルなIPアドレスを使用することを推奨します。
このガイドはいかがでしたか?