1. Introducción¶
Este manual describe la configuración de los componentes del lado del servidor de la aplicación GBS Home Screen.
El procedimiento de configuración debe realizarse solo después de la etapa de instalación. Para obtener más información, consulte el Manual de Instalación de GBS Apps.
2. Configuración¶
Los pasos para la configuración son:
- Configure Tomcat;
- Configure los certificados;
- Genere la contraseña encriptada;
- Configure otras propiedades en el archivo config.properties;
- Instale y configure Nginx;
- Configure los permisos;
- Configure el logotipo del cliente;
Todos los pasos están descritos a continuación. Un ejemplo del archivo config.properties
se puede encontrar en la sección Ejemplo del Archivo de Configuración.
Danger
Todas las líneas deben estar presentes en el archivo de configuración. Comentar o eliminar líneas puede causar comportamientos inesperados. Para información adicional, contacte al Equipo de Soporte de Griaule.
2.1. Configuración de Tomcat¶
Edite el archivo de configuración de Tomcat para configurar los certificados y el puerto que utilizará la aplicación.
vim /var/lib/tomcats/home-screen/conf/server.xml
Para cambiar el puerto, busque Connector port=
. Este es el puerto para las operaciones backend.
El puerto predeterminado de GBS Home Screen es 8128
.
2.2. Configuración de Certificados¶
Para habilitar la autenticación SSL, busque Connector port=
en el archivo /conf/server.xml
.
Hay varias entradas. Busque la que define un SSL HTTP/1.1 Connector. Si es necesario, elimine los delimitadores de comentario <!--
y -->
. Luego, ajuste las siguientes configuraciones:
port="8127"
keystoreFile="/home/griaule/keystore"
keystorePass="password"
keyAlias="1"
clientAuth="true"
truststoreFile="/home/griaule/keystore"
truststorePass="password"
El parámetro port
debe ser el puerto de red deseado para la aplicación.
Cambie la ruta de keystoreFile
y truststoreFile
a los valores correctos. Haga lo mismo para keystorePass
y truststorePass
.
El parámetro clientAuth="true"
requerirá autenticación del servidor al cliente y del cliente al servidor. Esto significa que el cliente deberá importar el certificado en el navegador para poder acceder a la aplicación.
Warning
Cuando clientAuth
está configurado como true
, el administrador del sistema debe proporcionar el archivo certificate.pfx
a los usuarios finales.
2.3. Encriptación de la Contraseña de la Base de Datos¶
En el archivo config.properties
, el parámetro jdbc.password
es una contraseña encriptada. Para generar la contraseña encriptada, siga los pasos a continuación:
Note
Si el directorio /var/lib/tomcats/home-screen/webapps/gbs-home-screen-server/WEB-INF/lib
no existe, inicie la aplicación (systemctl start tomcat@home-screen.service
) una vez para que el directorio sea creado. Luego, detenga la aplicación (systemctl stop tomcat@home-screen.service
) y continúe con el procedimiento de configuración.
Acceda al siguiente directorio:
cd /var/lib/tomcats/home-screen/webapps/gbs-home-screen-server/WEB-INF/lib
Ejecute el comando:
java -cp gbs-common-db-<version>.jar com.griaule.commons.util.EncryptUtil <desiredPassword>
La contraseña encriptada aparecerá después del mensaje: “Encrypted password is:”
Note
Guarde la contraseña encriptada. Se utilizará en el próximo paso.
2.4. Archivo de Configuración de la Aplicación¶
Abra el archivo de configuración:
vim /var/lib/tomcats/home-screen/conf/config.properties
Algunos cambios importantes en este archivo son los parámetros jdbc.url
, jdbc.username
, jdbc.password
y gbds.url
. Configúrelos de acuerdo con su entorno.
Un ejemplo del archivo de configuración completo se muestra en la sección Ejemplo del Archivo de Configuración.
Note
Recuerde reemplazar la contraseña encriptada generada en la sección Encriptación de la contraseña de la Base de Datos en este archivo.
2.4.1. Configuraciones de Home Screen¶
A continuación, configure la IP, el puerto y el protocolo de acceso a la aplicación. La IP y el puerto deben ser los mismos configurados en la sección Configuración de Tomcat.
home-screen.ip=<ip>
home-screen.port=<port>
home-screen.protocol=<protocol>
Important
Asegúrese de que los parámetros de configuración home-screen.ip
, home-screen.port
y home-screen.protocol
estén correctamente especificados en el archivo config.properties
. En muchos casos, la IP será la misma para varias aplicaciones. Sin embargo, cada aplicación tendrá un puerto diferente y único.
2.5. Nginx¶
Instale y configure Nginx para que GBS Home Screen funcione con inicio de sesión único (SSO) junto con las demás aplicaciones.
2.5.1. Instalación de Nginx¶
Note
Si Nginx ya está instalado, omita la sección Configuración de Nginx.
Instale Nginx:
sudo yum install nginx -y
Inicie Nginx:
sudo systemctl start nginx
2.5.2. Configuración de Nginx¶
Habilite Nginx para que se inicie con el sistema:
sudo systemctl enable nginx
Danger
Si Nginx ya estaba instalado, verifique si ya existe un archivo de configuración en el directorio /etc/nginx/conf.d/
. Si existe, verifique en el archivo si el server block está configurado para el puerto 80 (listen 80
) y para el mismo server_name
del host de GBS Home Screen. Si es así, omita las instrucciones para crear un nuevo archivo de configuración y agregue las configuraciones a continuación al archivo existente.
Luego, cree un archivo de configuración para Nginx:
sudo vim /etc/nginx/conf.d/web-apps.conf
Agregue la siguiente información al archivo. En server, reemplace <ip_hostname_or_domain>
con la IP, nombre de host o dominio del servidor:
server {
listen 80;
server_name <ip_hostname_or_domain>;
client_max_body_size 50M;
}
Luego, aún en server, agregue un bloque de configuración para cada aplicación, mapeándola a su IP y puerto. Reemplace <app_name>
, <protocol>
, <app_name_ip>
y <app_name_port>
con los valores correctos:
Tip
El <app_name> puede ser: bcc
, cardscan
, etr
, mir
, best
, intelligence
, smart-sense
, print
, control-panel
o 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;
}
Ejemplo de archivo de configuración completo de Nginx, que contiene rutas para todas las aplicaciones, utilizando sus puertos predeterminados. Reemplace <ip_hostname_or_domain>
, <protocol>
y <app_name_ip>
con los valores correctos:
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;
}
}
Guarde y cierre el archivo de configuración.
Finalmente, recargue las configuraciones de Nginx:
sudo systemctl reload nginx
2.6. Permisos¶
Para que los íconos de las aplicaciones aparezcan en Home Screen, es necesario que el usuario tenga los permisos necesarios. Cada permiso otorgado al usuario (a través de la integración LDAP) corresponde a una aplicación, según la siguiente tabla:
Aplicación | Permiso |
---|---|
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 del cliente¶
En la esquina superior derecha de las aplicaciones web, es posible agregar el logotipo del cliente.
Note
Esto es una configuración de entorno. Por lo tanto, todos los usuarios que accedan a la aplicación verán el mismo logotipo.
Para esto, en la tabla sphinx.settings
de la base de datos, cree o modifique la configuración organization.logo
(type APPS
) para la ruta del logotipo deseado. Es necesario que la aplicación (usuario tomcat
) tenga acceso de lectura al archivo para poder cargarlo.
Important
Las dimensiones del logotipo deben ser de 320x132 píxeles para que toda el área sea cubierta. Si la imagen es más grande, más pequeña o en otra proporción, se redimensionará y el área restante se llenará con el color blanco.
El formato de imagen debe ser preferiblemente PNG o JPG.
3. Acceso a la aplicación¶
El GBS Home Screen, al igual que las demás aplicaciones, debe ser accesado sin el uso del puerto, ya que Nginx redirigirá automáticamente la solicitud al puerto correcto. De esta manera, al realizar un solo inicio de sesión (SSO), el usuario tendrá acceso a todas las aplicaciones para las que tiene permiso.
El formato de la URL de acceso es:
<protocol>://<ip_or_domain>/gbs-<app_name>-server/react/
^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^
Tip
El <app_name> puede ser: bcc
, cardscan
, etr
, mir
, best
, intelligence
, smart-sense
, print
, control-panel
o home-screen
.
Ejemplos:
- 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
Si las aplicaciones no se acceden a través de la URL en el formato descrito anteriormente (sin puerto), es decir, si se acceden usando directamente sus puertos, el inicio de sesión único (SSO) no funcionará y se deberá iniciar sesión en cada aplicación por separado.
4. Finalizando las Configuraciones¶
Después de completar todos los pasos de configuración, regrese al Manual de Instalación de GBS Apps - Sección de Configuración.
5. Ejemplo del Archivo de Configuración¶
Esta sección muestra un ejemplo del archivo config.properties
.
Warning
Los 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>
y <email_address>
deben ser reemplazados por los valores adecuados.
# **********************************************************************************************
#
# /$$ /$$ /$$$$$$ /$$ /$$ /$$$$$$$$
# | $$ | $$ /$$__ $$| $$$ /$$$| $$_____/
# | $$ | $$| $$ \ $$| $$$$ /$$$$| $$
# | $$$$$$$$| $$ | $$| $$ $$/$$ $$| $$$$$
# | $$__ $$| $$ | $$| $$ $$$| $$| $$__/
# | $$ | $$| $$ | $$| $$\ $ | $$| $$
# | $$ | $$| $$$$$$/| $$ \/ | $$| $$$$$$$$
# |__/ |__/ \______/ |__/ |__/|________/
#
# /$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$$$ /$$$$$$$$ /$$ /$$
# /$$__ $$ /$$__ $$| $$__ $$| $$_____/| $$_____/| $$$ | $$
# | $$ \__/| $$ \__/| $$ \ $$| $$ | $$ | $$$$| $$
# | $$$$$$ | $$ | $$$$$$$/| $$$$$ | $$$$$ | $$ $$ $$
# \____ $$| $$ | $$__ $$| $$__/ | $$__/ | $$ $$$$
# /$$ \ $$| $$ $$| $$ \ $$| $$ | $$ | $$\ $$$
# | $$$$$$/| $$$$$$/| $$ | $$| $$$$$$$$| $$$$$$$$| $$ \ $$
# \______/ \______/ |__/ |__/|________/|________/|__/ \__/
#
# **********************************************************************************************
# 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