Estrutura do Objeto Actions
As Actions podem ser usadas para criar ferramentas dinamicamente a partir de especificaƧƵes OpenAPI. A estrutura do objeto actions permite que vocĆŖ especifique domĆnios permitidos para aƧƵes de agentes/assistentes.
Mais informaƧƵes: Agents - Actions
Exemplo
# 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
Chave:
| Key | Type | Description | Example |
|---|---|---|---|
| allowedDomains | Array of Strings | Uma lista que especifica domĆnios permitidos para aƧƵes de agentes/assistentes. | When configured, only listed domains are allowed. When not configured, SSRF targets are blocked but all other domains are allowed. |
Opcional
Contexto de Segurança (Proteção SSRF)
O LibreChat inclui proteção contra SSRF (Server-Side Request Forgery) com o seguinte comportamento:
Quando allowedDomains NĆO estiver configurado:
- Alvos suscetĆveis a SSRF sĆ£o bloqueados por padrĆ£o
- Todos os outros domĆnios externos sĆ£o permitidos
Quando allowedDomains ESTĆ configurado:
- Apenas domĆnios na lista sĆ£o permitidos
- Alvos internos/SSRF podem ser permitidos adicionando-os explicitamente Ć lista
Os alvos de SSRF bloqueados incluem:
- EndereƧos Localhost (
localhost,127.0.0.1,::1) - Intervalos de IP privados (
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16) - EndereƧos link-local (
169.254.0.0/16, inclui IPs de metadados de nuvem) - TLDs Internos (
.internal,.local,.localhost) - Nomes comuns de serviƧos internos (
redis,mongodb,postgres,api, etc.)
Se suas ações precisarem acessar serviços internos, adicione-os à lista de permissões estrita allowedDomains ou deixe allowedDomains sem definição e adicione o serviço privado exato a allowedAddresses.
Formatos de Padrão
O array allowedDomains suporta vƔrios formatos:
-
Apenas domĆnio - Permite todos os protocolos e portas:
allowedDomains: - "api.example.com" -
Com protocolo - Restringe a um protocolo especĆfico:
allowedDomains: - "https://api.example.com" -
Com protocolo e porta - Restringe a um protocolo e porta especĆficos:
allowedDomains: - "https://api.example.com:8443" -
EndereƧos internos (devem ser explicitamente permitidos):
allowedDomains: - "192.168.1.100" - "internal-api.local"
Exemplo:
allowedDomains:
- "swapi.dev"
- "librechat.ai"
- "google.com"
- "https://secure-api.example.com:443"
- "192.168.1.50" # Internal service (explicitly allowed)allowedAddresses
allowedAddresses Ć© uma lista de exceƧƵes para o bloqueio de IP privado SSRF ā nĆ£o uma lista de permissƵes de domĆnio. Ć a ferramenta certa quando vocĆŖ deseja permitir um ou dois serviƧos privados/internos especĆficos sem restringir o que suas Actions podem alcanƧar na internet pĆŗblica.
Quando usar em vez de allowedDomains
allowedDomains é uma lista de permissões estrita: quando definida, apenas as entradas listadas podem ser acessadas. Adicionar um IP privado nela para permitir, por exemplo, uma API interna auto-hospedada, também bloqueia todos os endpoints de ação públicos que você não tenha listado.
allowedAddresses Ć© usado apenas quando allowedDomains nĆ£o estĆ” configurado. Ele permite alvos privados especĆficos host:port enquanto mantĆ©m o restante da internet pĆŗblica acessĆvel atravĆ©s da polĆtica SSRF padrĆ£o.
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.Se allowedDomains estiver configurado, ele Ʃ autoritativo: serviƧos privados devem ser listados lƔ em vez de depender de allowedAddresses.
Entradas aceitƔveis
- Nomes de host com porta:
host.docker.internal:11434,ollama.internal:8080,localhost:11434 - Literais IPv4 privados com porta:
10.0.0.5:8080,127.0.0.1:11434,192.168.1.10:443,169.254.169.254:80 - Literais IPv6 privados entre colchetes com porta:
[::1]:11434,[fc00::1]:8080,[fe80::1]:8080
Entradas rejeitadas (validadas no carregamento da configuração)
- URLs / caminhos / intervalos CIDR:
http://10.0.0.5,10.0.0.0/24,/path - Nomes de host ou IPs simples:
localhost,10.0.0.5,::1,[::1]ā cada entrada deve incluir uma porta - Portas invĆ”lidas:
localhost:0,localhost:65536,localhost:http - Literais de IP pĆŗblico:
8.8.8.8:53,1.1.1.1:53,[2001:4860::8888]:443ā o campo Ć© limitado ao espaƧo de IP privado; IPs pĆŗblicos nĆ£o sĆ£o alvos de SSRF e uma exceção de IP pĆŗblico nĆ£o tem propósito defensivo
ConfianƧa de hostname
Uma entrada de hostname confia em qualquer IP para o qual esse hostname seja resolvido em tempo de execução na porta listada. Se o DNS de um hostname listado for rotacionado ou sequestrado para apontar para um IP privado diferente, a isenção seguirÔ o mesmo caminho. Liste apenas hostnames cujo DNS você controla. Prefira IPs literais sempre que puder.
Como estĆ” este guia?