For the complete documentation index, see llms.txt. This page is also available as Markdown.

Instalação e implantação do serviço

Pré-requisitos

Antes de instalar o IAD Service, verifique se você tem:

  • Docker instalado e em execução

  • Um arquivo de licença válido da Facephi

  • Acesso ao registro Docker da Facephi

Acesso ao registro Docker

Faça login no registro Docker da Facephi:

docker login facephicorp.jfrog.io

Você precisará das credenciais fornecidas pela Facephi.

Instalação

Baixar a imagem Docker

Substitua 2.2.0 pela versão desejada.

Preparar os diretórios

Crie os diretórios para a licença, a configuração e os logs:

Colocar o arquivo de licença

Copie o seu arquivo de licença para o diretório de licença:

Implantação com Docker Compose

Crie docker-compose.yml:

Iniciar o serviço

Verificar a implantação

Mitigação experimental de ataques de repetição (replay)

O serviço pode aplicar uma janela de vigência (freshness window) aos payloads de captura recebidos. Essa proteção experimental está desabilitada por padrão.

  • Ative-a com FACEPHI_IAD_REPLAY_ATTACK_CHECKER_ENABLED=true

  • Ajuste a janela de vigência com FACEPHI_IAD_REPLAY_ATTACK_TOLERANCE_TIME=<seconds>

  • Janela de vigência padrão: 300 segundos

  • Quando a janela de vigência é excedida, a API pública retorna HTTP 400 com message igual a Ataque de replay detectado

Essa funcionalidade é configurada na inicialização por meio de variáveis de ambiente. Não faz parte de config.json nem é exposta por GET|POST /api/v1/iad/config.

Exemplo com docker run:

Exemplo com Docker Compose:

Configuração da licença

O arquivo de licença deve estar em /app/license/license.lic dentro do contêiner.

Formato do arquivo de licença

Campos opcionais:

  • LICENSE_URLS= — URLs dos servidores de licença separadas por vírgulas (obrigatório para o tipo LOCAL)

  • LICENSE_PATH_OFFLINE= — Caminho para o arquivo de ativação offline (obrigatório para MACHINE + OFFLINE)

LICENSE_ID e LICENSE_DATA, se estiverem presentes, são ignorados pelo serviço a partir da versão 2.0.0. As credenciais do produto IAD são incorporadas em tempo de compilação, portanto esses campos devem ser omitidos nos modelos de implantação.

Resumo da API pública

Endpoints operacionais expostos pelo serviço:

  • POST /api/v1/iad/liveness/evaluate

  • POST /api/v1/iad/extract

  • GET /api/v1/iad/version

  • GET /api/v1/iad/health

  • GET|POST /api/v1/iad/config

Autenticação JWT

A autenticação JWT é opcional e está desabilitada por padrão.

  • Configure-a na inicialização em /app/config/config.json com auth_enabled, auth_jwt_secret, auth_accept_authorization_header, auth_accept_api_key_header e auth_api_key_header_name

  • Substitua esses valores pelas variáveis de ambiente FACEPHI_IAD_REST_AUTH_*

  • GET /api/v1/iad/config nunca retorna as chaves de autenticação JWT

  • POST /api/v1/iad/config rejeita as chaves de autenticação JWT; gerencie-as apenas na inicialização

Exemplo de configuração na inicialização:

Exemplo de variáveis de ambiente:

Configuração do firewall para a validação da licença

Adicione regras de firewall para permitir o tráfego HTTPS de saída para os servidores de licença da Facephi:

IP
Porta
Protocolo

52.223.22.71

443

TCP/IP

35.71.188.31

443

TCP/IP

75.2.113.112

443

TCP/IP

99.83.149.57

443

TCP/IP

Permita o tráfego HTTPS para:

  • https://api.cryptlex.com:443

  • https://api.eu.cryptlex.com:443

Configuração do serviço

Crie /app/config/config.json para personalizar o comportamento do serviço.

Localização do arquivo de configuração

  • Localização padrão: /app/config/config.json (dentro do contêiner)

  • Montar um arquivo externo: Use o mapeamento de volumes em docker-compose

Exemplo de configuração completa (valores padrão atuais)

Parâmetros do serviço

Parâmetro
Tipo
Padrão
Descrição

port

integer

6982

Porta de escuta do serviço

number_of_threads

integer

1

Threads de trabalho para o processamento de solicitações

connection_timeout

integer

60

Timeout de conexão em segundos (0 = sem Timeout)

keep_alive_request_number

integer

0

Solicitações keep-alive (0 = desabilitado)

client_max_body_size

integer

100

Tamanho máximo do corpo da solicitação em MB

logger_path

string

""

Caminho do arquivo de log (vazio = stdout)

logger_level

string

"info"

Nível de log: trace, debug, info, warn, error

logger_rotation

string

"daily"

Rotação de logs: daily, hourly, size

logger_max_files

integer

7

Número máximo de arquivos de log a serem mantidos

auth_enabled

boolean

false

Exige autenticação JWT para os endpoints protegidos

auth_jwt_secret

string

""

Segredo compartilhado HS256 usado para validar os JWT

auth_accept_authorization_header

boolean

true

Aceita Authorization: Bearer <jwt>

auth_accept_api_key_header

boolean

true

Aceita JWT no cabeçalho de API key configurado

auth_api_key_header_name

string

"x-api-key"

Nome do cabeçalho usado quando a extração de token por API key está habilitada

Parâmetros do engine

Parâmetro
Tipo
Padrão
Descrição

engine_connection_timeout

integer

10000

Timeout de conexão (ms)

engine_request_timeout

integer

60000

Timeout da solicitação (ms)

engine_max_retries

integer

3

Número máximo de tentativas

engine_retry_delay

integer

1000

Atraso entre tentativas (ms)

engine_verify_ssl

boolean

false

Verifica os certificados SSL da análise de capturas

engine_verbose

boolean

false

Ativa o logging HTTP detalhado da análise de capturas

engine_pool_size

integer

4

Tamanho do pool de conexões

engine_url

string

http://localhost:8080

URL base do runtime de análise de capturas

Configuração de produção

Para implantações em produção:

Configuração de desenvolvimento

Para desenvolvimento local:

Atualizações dinâmicas de configuração

Atualize a configuração sem reiniciar:

POST /api/v1/iad/config espera um objeto JSON com o campo config_json_string, que contém a configuração completa serializada como uma string JSON. As chaves de autenticação JWT são rejeitadas por este endpoint e devem ser configuradas apenas na inicialização.

Observação: As atualizações em tempo de execução não são persistidas automaticamente. Para fazer alterações permanentes, atualize o arquivo de configuração em disco e reinicie o serviço se necessário.

Solução de problemas

O serviço não inicia

Verifique o arquivo de licença:

Verifique os logs:

Falha na validação da licença

  • Verifique as permissões do arquivo de licença: chmod 644 license.lic

  • Certifique-se de que o firewall permite o tráfego HTTPS de saída para os servidores de licença

  • Verifique a data de expiração da licença

  • Confirme que a licença corresponde ao produto IAD Service

Problemas de desempenho

  • Aumente engine_pool_size para lidar com mais solicitações simultâneas

  • Ajuste number_of_threads de acordo com os núcleos de CPU disponíveis

  • Monitore o uso de recursos: docker stats facephi-iad-service

  • Revise os logs em busca de erros de Timeout ou de novas tentativas

Atualização

Para atualizar para uma nova versão:

Revise sempre as notas de versão antes de atualizar.

Atualizado