Configuração do Home Screen Server

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.

Configuração

Os passos para configuração são:

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.

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.

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.

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:

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 [email protected]) uma vez para que o diretório seja criado. Em seguida, pare a aplicação (systemctl stop [email protected]) 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:"

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

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.

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

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>

Nginx

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

Instalação do Nginx

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

Configuração do Nginx

Habilite o Nginx para iniciar com o sistema:

sudo systemctl enable nginx

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:

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

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

Logotipo do cliente

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

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

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.

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/
^^^^^^^^^^   ^^^^^^^^^^^^^^     ^^^^^^^^^^

Exemplos:


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.

Exemplo do Arquivo de Configuração

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

# **********************************************************************************************
#
#      /$$   /$$  /$$$$$$  /$$      /$$ /$$$$$$$$
#     | $$  | $$ /$$__  $$| $$$    /$$$| $$_____/
#     | $$  | $$| $$  \ $$| $$$$  /$$$$| $$
#     | $$$$$$$$| $$  | $$| $$ $$/$$ $$| $$$$$
#     | $$__  $$| $$  | $$| $$  $$$| $$| $$__/
#     | $$  | $$| $$  | $$| $$\  $ | $$| $$
#     | $$  | $$|  $$$$$$/| $$ \/  | $$| $$$$$$$$
#     |__/  |__/ \______/ |__/     |__/|________/
#
#       /$$$$$$   /$$$$$$  /$$$$$$$  /$$$$$$$$ /$$$$$$$$ /$$   /$$
#      /$$__  $$ /$$__  $$| $$__  $$| $$_____/| $$_____/| $$$ | $$
#     | $$  \__/| $$  \__/| $$  \ $$| $$      | $$      | $$$$| $$
#     |  $$$$$$ | $$      | $$$$$$$/| $$$$$   | $$$$$   | $$ $$ $$
#      \____  $$| $$      | $$__  $$| $$__/   | $$__/   | $$  $$$$
#      /$$  \ $$| $$    $$| $$  \ $$| $$      | $$      | $$\  $$$
#     |  $$$$$$/|  $$$$$$/| $$  | $$| $$$$$$$$| $$$$$$$$| $$ \  $$
#      \______/  \______/ |__/  |__/|________/|________/|__/  \__/
#
# **********************************************************************************************
# 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

Atualizado