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:
- Configure o Tomcat;
- Configure os certificados;
- Gere a senha criptografada;
- Configure outras propriedades no arquivo config.properties;
- Instale e configure o Nginx;
- Configure as permissões;
- 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.
Acesse o seguinte diretório:
cd /var/lib/tomcats/home-screen/webapps/gbs-home-screen-server/WEB-INF/lib
Execute o comando:
java -cp gbs-common-db-<version>.jar com.griaule.commons.util.EncryptUtil <desiredPassword>
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 |
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.
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.
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:
- GBS Home Screen: http://172.16.0.185/gbs-home-screen-server/react/
- GBS BCC: http://172.16.0.185/gbs-bcc-server/react/
- GBS ETR: http://172.16.0.185/gbs-etr-server/react/
- GBS Home Screen: https://my.server.com/gbs-home-screen-server/react/
- GBS CardScan: https://my.server.com/gbs-cardscan-server/react/
- GBS MIR: https://my.server.com/gbs-mir-server/react/
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