BirdID
  • Apresentação
  • Fluxo recomendado
    • Autenticação na API Pública
      • Descoberta
      • Autenticação (Password)
    • Autenticação no BirdID Pro
    • BirdID Pro - Assinatura Síncrona
  • Arquitetura da suíte de soluções
  • Nuvem Pública
    • Public API
      • Autenticação de usuários
        • OAuth2 - Authorization Code
        • OAuth2 - Password
        • QR Code e Push
      • Autenticação de aplicação
        • OAuth2 - Client Credentials
      • Uso de certificado
        • Assinatura digital
      • Auxiliares
        • Localização de usuário
        • Recuperação de certificado
      • Manutenção da aplicação
        • Cadastro de aplicação
        • Alteração de aplicação
        • Auto-cadastro de aplicação
  • BirdID Pro
    • Recursos
    • Arquitetura da plataforma
    • Instalação e configuração
    • API
      • Autenticação e Autorização
        • OAuth2 - Password
      • Preparação de documento(s)
      • Assinatura de documento(s)
      • Validação de integridade do documento
      • Monitor & HealthCheck
      • Informações do certificado
      • Integração S3
      • Integração GCP Storage
      • Integração FTP (File Transfer Protocol)
      • Licença
      • Juntar assinatura
    • Monitoramento
    • Dúvidas frequentes
    • Licença
  • CEAS
    • Arquitetura da plataforma
    • Recursos
    • API
      • Autenticação de usuários
        • OAuth2 - Authorization Code
        • OAuth2 - Password
      • Informações do certificado
      • Monitor & HealthCheck
    • Console
      • Auto registro da aplicação
    • Instalação e configuração
  • Middleware
    • Assistente Utilitário
      • Console
        • Aplicação
        • Usuários
        • Usuário selecionado
      • API
        • Aplicação
        • Usuários
        • Usuário selecionado
    • PKCS#11
    • CSP (Microsoft Crypto API)
    • Engine OpenSSL
    • JCA/JCE
  • Códigos de Retorno
  • Emissão Online
    • API
      • Autenticação / Login
      • Emissão
      • Dados da AR
  • Gateway ACT
    • Carimbo
    • Assinatura + Carimbo
    • Assinatura + Carimbo em Lote
  • Wings
    • Autenticação
      • Autenticação de Usuário
      • Definir Corporação
      • Credenciais de cliente externo
    • Corporativo
      • Consultar Usuários
      • Alterar Usuário
      • Cadastrar Assinante PJ
      • Alterar Usuário em Lote
    • Usuário Varejo
      • Alteração Tipo Usuário Varejo
      • Obter dados do Usuário
      • Consulta de crédito
Powered by GitBook
On this page
  • Pré-requisitos
  • Configurações
  • Atenção (ambiente de homologação):
  • Executando
  • LOG
  • Configuração do cluster (Redis) - Docker

Was this helpful?

  1. BirdID Pro

Instalação e configuração

Pré-requisitos

Para a configuração do endpoint, utilizamos como base o Docker CE, um gerenciador de containers que permite simplificar a configuração e gestão da solução. Consulte a documentação oficial para mais informações sobre o Docker e seu funcionamento.

***A ferramenta oficial utilizada para execução do motor de assinaturas é o Docker. Qualquer outra ferramenta ou método de execução, que não seja o Docker, não será suportado pela equipe técnica da Soluti.

***A responsabilidade pela máquina onde estão instalados o componente de assinaturas, Docker e Docker-Compose é inteiramente da instituição. Isso inclui a gestão, manutenção, configuração e suporte técnico do ambiente onde esses serviços estão em execução.

A Soluti fornece o suporte necessário para a utilização do componente de assinaturas, mas qualquer questão relacionada à infraestrutura da máquina em si, como permissões, disponibilidade, atualizações e conectividade, deve ser gerenciada diretamente pela equipe de TI da instituição.

Segue abaixo as especificações:

  • Linux Docker para Debian

    • Versões:

      • Debian 8+ x86_64

      • Docker versão 18+

    • Acesso à internet para instalação de aplicativos.

    • Acesso por parte das aplicações integradas à aplicação.

Requisitos de máquina conforme consumo

Até 5.000 assinaturas por dia:

  • 2 Gb de memória RAM

  • 1 núcleo de processamento

  • 25 Gb de armazenamento

A partir de 5.000 assinaturas por dia:

  • 4 Gb de memória RAM

  • 2 núcleo de processamento

  • 25 Gb de armazenamento

A partir de 10.000 assinaturas por dia:

  • 8 Gb de memória RAM

  • 2 núcleo de processamento

  • 50 Gb de armazenamento

A partir de 50.000 assinaturas por dia:

  • 10 Gb de memória RAM

  • 5 núcleo de processamento

  • 500 Gb de armazenamento

A partir de 100.000 assinaturas por dia:

  • 20 Gb de memória RAM

  • 10 núcleo de processamento

  • 1 Tb de armazenamento

Atenção É necessário a instalação do Docker-compose.

Rede e conectividade Para o funcionamento do BirdID Pro é necessário acesso aos endpoints do provedor de assinaturas nas URLs:

  • https://apicloudid.vaultid.com.br (produção)

  • https://api.birdid.com.br (produção)

  • https://apicloudid.hom.vaultid.com.br (homologação)

  • https://apihom.birdid.com.br (homologação)

  • https://harbor.lab.vaultid.com.br (endpoint do harbor para baixar imagem do BirdID Pro)

  • https://cess.lab.vaultid.com.br (homologação)

  • https://billing.vaultid.com.br (endpoint do Wings para fazer o download da licença do BirdID Pro - ambiente de produção)

Também é necessário acesso aos repositórios de LCR's (lista de certificados revogados) referentes aos certificados utilizados. Os repositórios variam de acordo com a Autoridade Certificadora responsável pela emissão do certificado.

Para clientes emitindo pela AC Soluti, os endpoints são:

  • http://ccd.acsoluti.com.br

  • http://ccd2.acsoluti.com.br

Para a utilização de carimbo no tempo é necessário liberar o endpoint do TSA. Esse endpoint varia de acordo com a solução escolhida.

A comunicação entre o BirdID Pro e os endpoints citados não pode ser realizada com inspeção SSL/TLS(proxy) ou algum tipo de homem do meio que intercepte e interfira na abertura de sessão.

A solução não inicia acessos à rede interna. O tráfego de saída pode ser limitado aos clientes que consomem os serviços e aos endpoints citados.

Configurações

Para iniciar o download da imagem e execução do software utilizando o docker-compose, faça o download do arquivo yaml de exemplo, ou um clone do repositório de demonstração.

Os seguintes parâmetros podem ser definidos dentro do arquivo cess-compose.yaml.

  • clientIdMd - Caso o cliente esteja utilizando o cess para autenticação (/oauth), deverá configurar o clientIdMd e clientSecretMd e sua aplicação precisará passá-los na requisição.

  • clientSecretMd - Caso o cliente esteja utilizando o cess para autenticação (/oauth), deverá configurar o clientIdMd e clientSecretMd e sua aplicação precisará passá-los na requisição.

  • redisHost - Caso o cliente opte por utilizar seu cluster previamente instalado, basta configurar o redis host (opcional, default=redis);

  • redisPort - Caso o cliente opte por utilizar seu cluster previamente instalado, basta configurar o redis port (opcional, default=6379);

  • ttlCacheGeneric - Tempo (segundos) de vida do cache (opcional, default=3600);

  • lifetime - Tempo (segundos) que os arquivos (tcn) irão ficar armazenado no BirdID Pro (opcional, default=86400);

  • sleep - Intervalo (segundos) que o garbage collector irá executar para limpar os arquivos (opcional);

  • limit - Quantidade máxima de arquivos que serão apagados a cada iteração do garbage (opcional);

  • cessUrl - Define a URL utilizada para conexão ao BirdID Pro.

  • level - Level de log do BirdID Pro (opcional, default=INFO) {DEBUG/INFO/NOTICE/WARNING/ERROR/CRITICAL/ALERT/EMERGENCY};

  • urlsMultiCloud - Urls da multi-nuvem. [url => [id => 'id', adapterid => 'id', client_id => 'id client', client_secret => 'client secret]] (obrigatório);

  • redisCluster - Caso queira utilizar redis cluster, deverá setar true (opcional);

  • seedsCluster Caso habilite redisCluster=true, deverá configurar esta variável com os nós. ["ip1:port1", "ip2:port2"... , "ipn:portn"] (obrigatório apenas se redisCluster=true);

  • sendMonitoring Caso não queira que seja coletado informações do container, deverá setar a variável como false (opcional);

  • APACHE_SSL

    • Defina para true se deseja que o Apache do container forneça o serviço com TLS ativo.

    • Espera-se que o certificado digital e a respectiva chave sejam fornecidos através de um ponto de montagem no container. Descomente a sessão 'volumes' e configure os arquivos conforme orientação.

      • Arquivo path_crt

        • Espera-se um arquivo com a parte pública do certificado digital concatenado com as cadeias intermediárias da Autoridade Certificado emissora. Todos os certificados devem estar no formato PEM (codificado em base64).

      • Arquivo path_key

        • Espera-se um arquivo contendo apenas a chave privada correspondente ao certificado digital utilizado. A chave privada não pode ter senha e deve estar no formato PEM (codificada em base64).

  • PORTA_EXTERNA - Define a porta pela qual o serviço do BirdID Pro será exposto.

Exemplo:

Considerando o cenário:

  • SSL ativo;

  • Os certificados estão salvos na pasta /opt/certs/cert.pem e /opt/certs/cert.key;

  • A porta que o container deve expor é a 443;

Teremos a seguinte configuração:

    ...
      # Se necessário, edite apenas as variávies abaixo: #
      - "cessUrl=https://cess.vaultid.com.br"
      - "APACHE_SSL=true"
    ports:
      # Definir a PORTA_EXTERNA pela qual o container será exposto na rede.
      - 443:8080
    volumes:
      - /opt/certs/cert.pem:/etc/apache2/cert/cert.pem
      - /opt/certs/cert.key:/etc/apache2/cert/cert.key
    ... 

Atenção (ambiente de homologação):

Caso esteja utilizando ambiente de homologação, é necessário configurar a cadeia de confiança do mesmo. Para isso basta descomentar a linhas 33 - volumes: e 34- ./hom-truststore:/var/www/data/trust do arquivo cess-compose.yaml. Para mais detalhes, acesse https://github.com/VaultID/docker-cess.

Executando

  • Atenção: Antes de continuar é necessário solicitar o acesso ao repositório de imagens do BirdID Pro diretamente à equipe de integração da VaultID.

Após concluir e validar a instalação do docker e do docker-compose, salve e configure o arquivo cess-compose.yaml no servidor de escolhido. Pela linha de comando, navegue até a pasta de destino do arquivo e execute:

1 - Docker login.

De posse do usuário e senha fornecidos, execute:

docker login harbor.lab.vaultid.com.br

2 - Iniciando a aplicação.

docker-compose -f cess-compose.yaml up -d

3 - Verificando o estado da aplicação:

docker ps 

4 - Testando a aplicação:

Após a confirmação de execução da aplicação é possível validar o estado da mesma acessando a URL configurada em cessUrl ou, diretamente no servidor com a combinação IP_SERVIDOR:PORTA_EXTERNA.

LOG

É importante acompanhar o log do container para detectar algum erro de configuração ou falha no serviço. Também é possível aumentar o nível de detalhes para debugar eventuais problemas (veja a variável level na Configuração).

Configuração do cluster (Redis) - Docker

Nesta etapa já pressupõe que o cliente tenha 3 máquinas distintas com o docker instalado.

Será instalado 2 redis (master e slave) em cada máquina.

Como exemplo utilizaremos 3 máquinas com os respectivos IPs: 192.168.0.16, 192.168.0.19 e 192.168.0.20:

Roda os seguintes comandos nos respectivos IPs

IP [192.168.0.16]

$ docker run -d --name redis-7000 -p 7000:7000 --network host redis:alpine redis-server --port 7000 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes

$ docker run -d --name redis-7001 -p 7001:7001 --network host redis:alpine redis-server --port 7001 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes

IP [192.168.0.19]

$ docker run -d --name redis-7002 -p 7002:7002 --network host redis:alpine redis-server --port 7002 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes

$ docker run -d --name redis-7003 -p 7003:7003 --network host redis:alpine redis-server --port 7003 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes

IP [192.168.0.20]

$ docker run -d --name redis-7004 -p 7004:7004 --network host redis:alpine redis-server --port 7004 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes

$ docker run -d --name redis-7005 -p 7005:7005 --network host redis:alpine redis-server --port 7005 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes

E por fim execute o seguinte comando na máquina 1 (192.168.0.16): $ redis-cli --cluster create 192.168.0.16:7000 192.168.0.16:7001 192.168.0.19:7002 192.168.0.19:7003 192.168.0.20:7004 192.168.0.20:7005 --cluster-replicas 1

Este comando irá criar um master e um slave para cada máquina

Para testar o cluster, acesse o primeiro redis:

$ redis-cli -c -h 192.168.0.16 -p 7000 $ set chave valor

Acesse algum outro redis:

$ redis-cli -c -p 192.168.0.20 -p 7005 $ get chave

É necessário retornar "valor"

PreviousArquitetura da plataformaNextAPI

Last updated 2 months ago

Was this helpful?