1. Introdução

Esse manual descreve a configuração dos componentes do lado do servidor da aplicação GBS Home Screen.

O procedimento de configuração deve ser realizado somente após a etapa de instalação. Para mais informações, consulte o Manual de Instalação do GBS Apps.

2. Configuração

Os passos para configuração são:

  1. Configure o Tomcat;
  2. Configure os certificados;
  3. Gere a senha criptografada;
  4. Configure outras propriedades no arquivo config.properties;
  5. Instale e configure o Nginx;
  6. Configure as permissões;
  7. Configure o logotipo do cliente;

Todos os passos estão descritos abaixo. Um exemplo do arquivo config.properties pode ser encontrado na seção Exemplo do Arquivo de Configuração.

Danger

Todas as linhas devem estar presentes no arquivo de configuração. Comentar ou deletar linhas pode causar comportamentos inesperados. Para informações adicionais, contate o Time de Suporte da Griaule.

2.1. Configuração do Tomcat

Edite o arquivo de configuração do Tomcat para configurar os certificados e a porta que a aplicação usará.

vim /var/lib/tomcats/home-screen/conf/server.xml

Para mudar a porta, procure por Connector port=. Essa é a porta para operações backend.

A porta padrão do GBS Home Screen é 8128.

2.2. Configuração de Certificados

Para habilitar autenticação SSL, procure por Connector port= no arquivo /conf/server.xml.

Há várias entradas. Procure pela que define um SSL HTTP/1.1 Connector. Se necessário, remova os delimitadores de comentário <!-- e -->. Em seguida, ajuste as seguintes configurações:

port="8127"
keystoreFile="/home/griaule/keystore"
keystorePass="password"
keyAlias="1"
clientAuth="true"
truststoreFile="/home/griaule/keystore"
truststorePass="password"

O parâmetro port deve ser a porta de rede desejada para a aplicação.

Mude o caminho de keystoreFile e truststoreFile para os valores corretos. Faça o mesmo para keystorePass e truststorePass.

O parâmetro clientAuth="true" irá requerer autenticação do servidor para o cliente e do cliente para o servidor. Isso significa que o cliente necessitará importar o certificado no navegador para poder acessar a aplicação.

Warning

Quando clientAuth está definido como true, o administrador do sistema deve fornecer o arquivo certificate.pfx para os usuários finais.

2.3. Criptografia da Senha do Banco de Dados

No arquivo config.properties, o parâmetro jdbc.password é uma senha criptografada. Para gerar a senha criptografada, siga os passos abaixo:

Note

Se o diretório /var/lib/tomcats/home-screen/webapps/gbs-home-screen-server/WEB-INF/lib não existir, inicie a aplicação (systemctl start tomcat@home-screen.service) uma vez para que o diretório seja criado. Em seguida, pare a aplicação (systemctl stop tomcat@home-screen.service) e continue o procedimento de configuração.

  1. Acesse o seguinte diretório:

    cd /var/lib/tomcats/home-screen/webapps/gbs-home-screen-server/WEB-INF/lib
    
  2. Execute o comando:

    java -cp gbs-common-db-<version>.jar com.griaule.commons.util.EncryptUtil <desiredPassword>
    
  3. A senha criptografada aparecerá após a mensagem: “Encrypted password is:”

Note

Guarde a senha criptografada. Ela será usada no próximo passo.

2.4. Arquivo de Configuração da Aplicação

Abra o arquivo de configuração:

vim /var/lib/tomcats/home-screen/conf/config.properties

Algumas mudanças importantes nesse arquivo são os parâmetros jdbc.url, jdbc.username, jdbc.password e gbds.url. Configure-os de acordo com seu ambiente.

Um exemplo do arquivo de configuração completo é mostrado na seção Exemplo do Arquivo de Configuração.

Note

Lembre-se de substituir a senha criptografada gerada na seção Criptografia da senha do Banco de Dados neste arquivo.

2.4.1. Configurações do Home Screen

Em seguida, configure o IP, a porta e o protocolo de acesso à aplicação. O IP e porta devem ser os mesmos configurados na seção Configuração do Tomcat.

home-screen.ip=<ip>
home-screen.port=<port>
home-screen.protocol=<protocol>

Important

Certifique-se de que os parâmetros de configuração home-screen.ip, home-screen.port e home-screen.protocol estejam corretamente especificados no arquivo config.properties. Em diversos casos, o IP será o mesmo para diversas aplicações. Contudo, cada aplicação possuirá uma porta diferente e única.

2.5. Nginx

Instale e configure o Nginx para que o GBS Home Screen funcione com login único (SSO) junto às demais aplicações.

2.5.1. Instalação do Nginx

Note

Se o Nginx já estiver instalado, pule para a seção Configuração do Nginx.

Instale o Nginx:

sudo yum install nginx -y

Inicie o Nginx:

sudo systemctl start nginx

2.5.2. Configuração do Nginx

Habilite o Nginx para iniciar com o sistema:

sudo systemctl enable nginx

Danger

Se o Nginx já estava instalado, verifique se um arquivo de configuração já existe no diretório /etc/nginx/conf.d/. Se existir, verifique no arquivo se o server block está configurado para a porta 80 (listen 80) e para o mesmo server_name do host do GBS Home Screen. Em caso afirmativo, pule as instruções de criação de um novo arquivo de configuração e adicione as configurações abaixo ao arquivo existente.

Em seguida, crie um arquivo de configuração para o Nginx:

sudo vim /etc/nginx/conf.d/web-apps.conf

Adicione as seguintes informações ao arquivo. Em server, substitua <ip_hostname_or_domain> pelo IP, hostname ou domínio do servidor:

server {
   listen 80;
   server_name <ip_hostname_or_domain>;
   client_max_body_size 50M;
}

Em seguida, ainda em server, adicione um bloco de configuração para cada aplicação, mapeando-a para seu IP e porta. Substitua <app_name>, <protocol>, <app_name_ip> e <app_name_port> pelos valores corretos:

Tip

O <app_name> pode ser: bcc, cardscan, etr, mir, best, intelligence, smart-sense, print, control-panel ou home-screen.

location /gbs-<app_name>-server {
   proxy_pass <protocol>://<app_name_ip>:<app_name_port>;
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-Forwarded-Proto $scheme;
}

Exemplo de arquivo de configuração completo do Nginx, contendo rotas para todas as aplicações, utilizando suas portas padrão. Substitua <ip_hostname_or_domain>, <protocol> e <app_name_ip> pelos valores corretos:

server {
   listen 80;
   server_name <ip_hostname_or_domain>;
   client_max_body_size 50M;

   # HOME SCREEN:
   location /gbs-home-screen-server {
      proxy_pass <protocol>://<home-screen_ip>:8128;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
   }

   # BCC
   location /gbs-bcc-server {
      proxy_pass <protocol>://<bcc_ip>:8124;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
   }

   # CARDSCAN
   location /gbs-cardscan-server {
      proxy_pass <protocol>://<cardscan_ip>:8087;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
   }


   # ETR
   location /gbs-etr-server {
      proxy_pass <protocol>://<etr_ip>:8089;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
   }

   # MIR
   location /gbs-mir-server {
      proxy_pass <protocol>://<mir_ip>:8120;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
   }

   # BEST
   location /gbs-best-server {
      proxy_pass <protocol>://<best_ip>:8123;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
   }

   # INTELLIGENCE
   location /gbs-intelligence-server {
      proxy_pass <protocol>://<intelligence_ip>:8122;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
   }

   # SMART SENSE
   location /gbs-smart-sense-server {
      proxy_pass <protocol>://<smart-sense_ip>:8127;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
   }

   # PRINT
   location /gbs-print-server {
      proxy_pass <protocol>://<print_ip>:8127;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
   }

   # CONTROL PANEL
   location /gbs-control-panel-server {
      proxy_pass <protocol>://<control-panel_ip>:8121;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
   }
}

Salve e feche o arquivo de configuração.

Finalmente, recarregue as configurações do Nginx:

sudo systemctl reload nginx

2.6. Permissões

Para que os ícones das aplicações apareçam na Home Screen, é necessário que o usuário possua as permissões necessárias. Cada permissão concedida ao usuário (via integração LDAP) corresponde a uma aplicação, conforme a tabela abaixo:

Aplicação Permissão
BCC bccdesktop_user
CardScan cardscan_user
ETR exception_treatment_user
MIR quality_control_user
BEST forensic_user
Intelligence intelligence_user
SmartSense smartsense_user
Print printservice_user
Control Panel controlpanel_user

2.7. Logotipo do cliente

No canto superior direito dos web apps, é possível adicionar o logotipo do cliente.

Note

Isso é uma configuração de ambiente. Assim, todos os usuários que acessarem a aplicação verão o mesmo logotipo.

../../../../_images/logo2.png

Para isso, na tabela sphinx.settings do banco de dados, crie ou altere a configuração organization.logo (type APPS) para o caminho do logotipo desejado. É necessário que a aplicação (usuário tomcat) tenha acesso de leitura ao arquivo para poder carregá-lo.

Important

As dimensões do logotipo devem ser de 320x132 pixels para que toda a área seja preenchida. Se a imagem for maior, menor ou em outra proporção, ela será redimensionada e a área restante será preenchida com a cor branca.

O formato de imagem deve ser preferencialmente PNG ou JPG.

../../../../_images/logo_config2.png

3. Acesso à aplicação

O GBS Home Screen, assim como as demais aplicações, deve ser acessado sem o uso da porta, uma vez que o Nginx irá redirecionar automaticamente a requisição para a porta correta. Assim, ao realizar um único login (SSO), o usuário terá acesso a todas as aplicações que possui permissão para utilizar.

O formato da URL de acesso é:

<protocol>://<ip_or_domain>/gbs-<app_name>-server/react/
^^^^^^^^^^   ^^^^^^^^^^^^^^     ^^^^^^^^^^

Tip

O <app_name> pode ser: bcc, cardscan, etr, mir, best, intelligence, smart-sense, print, control-panel ou home-screen.

Exemplos:


Error

Caso as aplicações não sejam acessadas pela URL no formato descrito acima (sem porta), isto é, se forem acessadas usando suas portas diretamente, o login único (SSO) não funcionará e deverá ser feito login em cada aplicação separadamente.

4. Finalizando as Configurações

Após finalizar todos os passos de configuração, retorne ao Manual de Instalação do GBS Apps - Seção de Configuração.

5. Exemplo do Arquivo de Configuração

Essa seção mostra um exemplo do arquivo config.properties.

Warning

Os parâmetros <rdb_ip>, <rdb_username>, <rdb_encrypted_password>, <gbds_ip>, <gbds_username>, <gbds_password>, <home_screen_ip>, <protocol>, <keystore_path>, <keystore_password>, <truststore_path>, <truststore_password>, <ldap_ip>, <ldap_username>, <ldap_password>, <email_password> e <email_address> devem ser substituídos pelos valores adequados.

# **********************************************************************************************
#
#      /$$   /$$  /$$$$$$  /$$      /$$ /$$$$$$$$
#     | $$  | $$ /$$__  $$| $$$    /$$$| $$_____/
#     | $$  | $$| $$  \ $$| $$$$  /$$$$| $$
#     | $$$$$$$$| $$  | $$| $$ $$/$$ $$| $$$$$
#     | $$__  $$| $$  | $$| $$  $$$| $$| $$__/
#     | $$  | $$| $$  | $$| $$\  $ | $$| $$
#     | $$  | $$|  $$$$$$/| $$ \/  | $$| $$$$$$$$
#     |__/  |__/ \______/ |__/     |__/|________/
#
#       /$$$$$$   /$$$$$$  /$$$$$$$  /$$$$$$$$ /$$$$$$$$ /$$   /$$
#      /$$__  $$ /$$__  $$| $$__  $$| $$_____/| $$_____/| $$$ | $$
#     | $$  \__/| $$  \__/| $$  \ $$| $$      | $$      | $$$$| $$
#     |  $$$$$$ | $$      | $$$$$$$/| $$$$$   | $$$$$   | $$ $$ $$
#      \____  $$| $$      | $$__  $$| $$__/   | $$__/   | $$  $$$$
#      /$$  \ $$| $$    $$| $$  \ $$| $$      | $$      | $$\  $$$
#     |  $$$$$$/|  $$$$$$/| $$  | $$| $$$$$$$$| $$$$$$$$| $$ \  $$
#      \______/  \______/ |__/  |__/|________/|________/|__/  \__/
#
# **********************************************************************************************
# DATABASE (RDB)
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://<rdb_ip>:3306/sphinx?useSSL=false
jdbc.username=<rdb_username>
jdbc.password=<rdb_encrypted_password>
jdbc.dialect=org.hibernate.dialect.MySQLDialect
jdbc.showSql=false

# **********************************************************************************************
# GBDS CONNECTION (& AUTHENTICATION LDAP ONLY)
gbds.url=http://<gbds_ip>:8085
gbds.user=<gbds_username>
gbds.key=<gbds_password>
gbds.logLevel=INFO
gbds.additionalHeaders={}
gbds.flushDebugRequests=false
gbds.timeout=300
gbds.listExceptions.labels=

# **********************************************************************************************
# GUI SETTINGS
home-screen.ip=<home_screen_ip>
home-screen.port=8128
home-screen.protocol=<protocol>
locale=en_us

# **********************************************************************************************
# OTHER SETTINGS
gbds.latent.search.url=null
gbds.proxy.url=null
gbds.proxy.port=0

keystore.path=<keystore_path>
keystore.password=<keystore_password>
truststore.path=<truststore_path>
truststore.password=<truststore_password>

# **********************************************************************************************
# SESSION SETTINGS
same.user.simultaneous.login=true
fingerprint.useSDK=false
image.convert.useJnbis=false
filter.people.pguid=ALL
faceQuality.qtdeMinErrors=2
session.expirationTime.server=8h
session.expirationTime.web=8h
notification.last.timestamp=15

ldap.url=http://<ldap_ip>:8082/
ldap.user=<ldap_username>
ldap.password=<ldap_password>
codeValidTime=10
deviceTime=6

# **********************************************************************************************
# EMAIL
email.host=smtp.gmail.com
email.host.port=587
email.from=<email_address>
email.password=<email_password>
email.python.path=python
email.use.script.python=true

profile.cacheSize=100
profile.cacheTime=5m
locale=pt_br