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.ioVocê precisará das credenciais fornecidas pela Facephi.
Instalação
Aviso de alteração incompatível (2.0.0) A versão 2.0.0 não é retrocompatível com as integrações 1.x.x. Antes de atualizar um cliente implantado, revise e atualize:
os caminhos dos endpoints públicos
os nomes dos campos das solicitações multipart (
file-> obrigatóriocapture; as solicitações que incluem apenasfilesão rejeitadas)a análise das respostas corretas (os campos
capture_livenesse relacionados não são mais retornados)
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=trueAjuste a janela de vigência com
FACEPHI_IAD_REPLAY_ATTACK_TOLERANCE_TIME=<seconds>Janela de vigência padrão:
300segundosQuando a janela de vigência é excedida, a API pública retorna HTTP
400commessageigual aAtaque 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
Nota de compatibilidade Os caminhos a seguir correspondem ao contrato da versão 2.0.0. Os clientes construídos para 1.x.x devem ser migrados antes de poder chamar corretamente esta versão.
Endpoints operacionais expostos pelo serviço:
POST /api/v1/iad/liveness/evaluatePOST /api/v1/iad/extractGET /api/v1/iad/versionGET /api/v1/iad/healthGET|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.jsoncomauth_enabled,auth_jwt_secret,auth_accept_authorization_header,auth_accept_api_key_headereauth_api_key_header_nameSubstitua esses valores pelas variáveis de ambiente
FACEPHI_IAD_REST_AUTH_*GET /api/v1/iad/confignunca retorna as chaves de autenticação JWTPOST /api/v1/iad/configrejeita 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:
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:443https://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
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
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.licCertifique-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_sizepara lidar com mais solicitações simultâneasAjuste
number_of_threadsde acordo com os núcleos de CPU disponíveisMonitore o uso de recursos:
docker stats facephi-iad-serviceRevise os logs em busca de erros de Timeout ou de novas tentativas
Atualização
Para atualizar para uma nova versão:
Importante Atualizar de 1.x.x para 2.0.0 é uma migração de API com alterações incompatíveis, não uma substituição direta. Valide todas as chamadas do cliente em relação aos novos nomes de endpoints e aos exemplos de solicitação/resposta antes de promover a implantação.
Revise sempre as notas de versão antes de atualizar.
Atualizado