Usuarios de sistemas externos en tiempo real

Usuarios de sistemas externos en tiempo real Elemento remoto GMRCUEX El elemento remoto GMRCUEX se encarga por un lado de recibir peticiones de uno o ...
9 downloads 2 Views 138KB Size
Usuarios de sistemas externos en tiempo real Elemento remoto GMRCUEX El elemento remoto GMRCUEX se encarga por un lado de recibir peticiones de uno o varios servidores ELIZA y por otro de recoger datos de fuentes con SQL o servicios web. En la comunicación con ELIZA (potencialmente insegura al transcurrir normalmente por Internet) se emplea un protocolo basado TCP que autentifica remitente y destinatario, cifra la información y comprueba su integridad. Se asemeja bastante al uso de SSL, pero más liviano.

Despliegue de GMRCUEX Una vez decidido el emplazamiento del elemento remoto, basta con copiar en una carpeta sus ficheros (gmrcuex.jar y gmrcuex.exe), establecer que gmrcuex.exe esté siempre abierto (se trata de un simple lanzador del .jar) y configurar los parámetros de conexión y datos (gmrcuex.ini).

Cualquier petición de usuarios que se requiera en el servidor ELIZA conectado, provocará una consulta de usuario en el elemento remoto, y este la consultará a la base de datos SQL o a un servicio web.

En otras plataformas, se puede lanzar directamente gmrcuex.jar y prescindir de gmrcuex.exe que es un simple lanzador específico para Windows®. Si se lanza gmrcuex.jar con el parámetro CONSOLE no habrá interfaz gráfico y es útil para despliegues en modo servicio del sistema. Siempre se genera un fichero de registro de sucesos en la carpeta de funcionamiento, cuyo nombre es gmrcuex.log.

Configuración en ubicación remota de GMRCUEX En la carpeta de ejecución, se busca el fichero gmrcuex.ini que define el modo de funcionamiento con los siguientes valores:

SERVER_DATA

SERVER_ID SERVER_MODE SERVER_PORT SERVER_SECRET

SQL_SERVER SQL_PORT SQL_TABLE SQL_TYPE

SQL_USER SQL_PASS SQL_DB SQL_F_CODE

SQL_F_PASS

SQL_F_PASS_TYPE

Valores globales Define el origen de los datos que utilizará este elemento remoto, ‘ws’ para web service o ‘sql’. Debe indicarse la cadena ‘sql’, que de momento es el único valor soportado, y que obtendrá los datos de un servidor sql cuyos parámetros se definen también en este fichero de configuración. ID de conversación, debe ser igual que en el servidor Eliza para que se acepten las peticiones recibidas. Modo de conversación, dejar en blanco para modo seguro Puerto de recepción de comandos de Eliza, por defecto es el puerto TCP 21844. Clave conocida por el servidor de Eliza y este elemento remoto. Se utiliza para autentificar en ambos sentidos las comunicaciones. Valores para el modo SQL Dirección o nombre del servidor sql Puerto de acceso al servidor sql (si no se indica, se establece el valor por defecto). Tabla sql a usar (dentro de la base de datos indicada) Tipo de base de datos sql, se aceptan: ‘ms2000’ Microsoft Sql Server 2000 ‘ms2005’ Microsoft Sql Server 2005 ‘ms2008’ Microsoft Sql Server 2008 ‘mysql’ MySql ‘oracle’ Oracle SQL Usuario sql para realizar la conexión a la base de datos Contraseña sql del usuario para realizar conexión Nombre de la base de datos sql a usar Campo de la base de datos que identifica al usuario mediante un valor único. Es obligatorio y se usa para buscar un usuario con el código dado en la base de datos. Toda petición de datos llega con un código de usuario solicitado y se usa este campo para buscarlo. Campo de la base de datos que indica la contraseña del usuario. Opcional. Permite comprobar contraseña que venga en la petición de datos y retornar un indicador de igualdad a quien realiza la petición de datos. Se indica contenido y forma de uso en otros valores descritos a continuación. Tipo de contraseña en la base de datos: ‘texto’ o cualquier valor indica contraseña en texto plano que permite una comparación directa. ‘ab1’ indica contraseña cifrada en modo AB que requiere descifrar los datos almacenados para poder comprobar.

SQL_F_PASS_MODE

SQL_MODE

Modo en que se utiliza el campo de contraseña: ‘ignora’ o en blanco indica que la comparación de contraseña no de usa, aunque llegue una contraseña en la petición de datos. ‘comparar’ o ‘usar’ indica que cuando llega una petición se realiza una comparación de contraseña entre la que llega y la que hay en la base de datos. Si no llega contraseña en la petición de datos se asume esta en blanco y se realiza la comparación de igual modo. No usado.

Campo(s) sql que se obtendrán. Desde 1 hasta los que sean necesarios: SQL_F_1,SQL_F_1_ID,SQL_F_1_MODE,

SQL_F_n SQL_F_n_ID SQL_F_n_MODE

SQL_F_2,

…3

Se indica el nombre del campo en la tabla o un valor fijo para campos con MODE ‘Fixed’ o ‘Fijo’ ID que se enviará al servidor eliza como identificación de los datos del campo. (Ver apartado Campos para servidores Eliza ) ‘Required’ o ‘Requerido’ si es un campo obligatorio, ‘Fixed’ o ‘Fijo’ si es un campo con valor fijo (indicado el valor ‘SQL_F_n’), y ‘Optional’ u ‘Opcional’ si es un campo que podría no existir en la tabla de la base de datos.

Ejemplo de fichero de configuración gmrcuex.ini para una base de datos sql: SERVER_DATA=sql SERVER_ID=0 SERVER_MODE= SERVER_PORT=21844 SERVER_SECRET=skd2012d SQL_SERVER=192.168.11.34 SQL_TYPE=ms2000 SQL_DB=appdb SQL_USER=cuenta1 SQL_PASS=clave1 SQL_TABLE=users SQL_MODE= SQL_F_CODE=users SQL_F_PASS=clave SQL_F_TYPE=texto SQL_F_MODE=comparar SQL_F_1=CodUser SQL_F_1_ID=213 SQL_F_1_MODE=Required SQL_F_2=Valor concreto fijo SQL_F_2_ID=311 SQL_F_2_MODE=Fijo SQL_F_3=id_campo_opcional SQL_F_3_ID=214 SQL_F_3_MODE=Optional (… campos 4,5,6… hasta 15: …) SQL_F_15=Valor fijo SQL_F_15_ID=215 SQL_F_15_MODE=Fixed

Servidor Eliza ‘primario’ Un servidor Eliza puede ofrecer a otros servidores información de usuarios. Llamaremos a este servidor de Eliza servidor ‘primario’ y a los posibles servidores de Eliza que se le conectan ‘secundarios’. Un servidor ‘primario’ puede conectarse a su vez a un elemento remoto, ofrecer datos de usuarios directamente de su base de datos o incluso conectarse a otro servidor ‘primario’.

Para configurar la forma en que un servidor de eliza hace las veces de primario (o que ofrezca datos de usuarios al exterior) debemos dirigirnos a la configuración / configurar opciones de eliza / sección Usuarios externos.

Los parámetros son similares a los que utiliza el elemento remoto ya que su función es similar: servir datos a quien los solicite. Se ofrecen datos de usuarios

Puerto Secreto compartido ID permitida IP

Indica si este servidor de Eliza ofrecerá datos de usuarios a otros servidores de Eliza que se los soliciten. Puerto TCP de comunicación. Clave o secreto que debe indicarse en este servidor y en los que se quieran conectar. ID que debe coincidir en este servidor y en los que se quieran conectar. Dirección permitida (o en blanco).

Modo

Modo en que se procesa la comunicación. Por defecto utiliza cifrado y autentifica.

Comparar clave si se proporciona

Cuando llega una petición de datos se realiza una comparación de contraseñas si es que se envía la contraseña a comprobar. Aun si la comprobación de contraseña no es satisfactoria se pueden mandar los datos del usuario. En otro caso, si esta opción no está activada, solo se responde a la petición de datos indicando un resultado de comparación de clave erróneo.

Mandar datos incluso con clave incorrecta o ausente

Tiempo máximo de proceso

Máximos segundos para procesar una petición antes de indicar error.

Configuración del servidor Eliza ‘cliente’ Para configurar la forma en que un servidor de eliza accede a un elemento remoto o servidor eliza ‘primario’ debemos dirigirnos a la configuración / configurar opciones de eliza / sección Usuarios externos. Justo a continuación de los valores para que un servidor se comporte como primario.

Se requieren datos de usuarios

Puerto

Servidor

Secreto compartido

ID indicada Modo

Indica si este servidor de Eliza ha de solicitar información de usuarios cuando estos hagan uso del sistema. Siempre que se solicite entrada o se consulte información, se actualizan los datos del usuario concreto. Puerto de comunicaciones TCP en que se realiza la comunicación con un elemento remoto o un servidor ‘primario’ que ofrece datos de usuarios. Nombre o dirección del servidor que ofrece los datos: como se ha comentado, podría ser un elemento remoto o un servidor ‘primario’. Clave o secreto necesaria para que las comunicaciones entre este Eliza ‘cliente’ y el servidor ‘primario’/elemento remoto se realicen de forma segura. Ambas partes deberán tener el mismo secreto. ID que debe coincidir en este servidor y en elemento remoto-servidor ‘primario’. Modo en que se procesa la comunicación. Por defecto utiliza cifrado y autentifica que corresponde al valor 4112. En servidor ‘primario’/elemento remoto con el que conectemos tiene prioridad para cambiar este modo si es que no lo admite o fuerza otro.

Agrupaciones de edades

Cuando llega un campo que deba ser procesado como de edad (ver Campos para servidores Eliza), será agrupado solo en los valores que aparezcan en este campo. Por ejemplo, si este campo tiene valores “7,18” el proceso dará como resultado solo cadenas de edad tipo “0” para edades entre 0 y 7, “7” para edades entre 7 y 17, y “18” para edades de 18 o mayores.

Acciones según dato en lista de valores

En las respuestas del elemento remoto puede llegar un dato para realizar una comparación dentro de una lista de valores. Según ese dato esté o no en la lista se realizan ciertas acciones: -Caducar la cuenta del usuario. -Eliminar caducidad de la cuenta del usuario. -Denegar (actúa como si el usuario no existiese). -Continuar de forma norma. Si el dato no llega se presupone en blanco. En la lista de campos se indica el ID del campo de dato para lista de valores. Lista de valores para realizar la comparación con el dato que puede llegar desde el elemento remoto. Separadas por comas.

Lista de valores

Almacenar clave en ficha de usuario si es correcta

Tiempo máximo de respuesta Intervalo de comprobación

En caso de error de conexión

En las peticiones se envía la contraseña del usuario para que el elemento remoto realice su verificación. Según el tipo de servidor de datos la contraseña puede ser obligatoria. Una vez que se realiza la comparación de la contraseña recibimos la respuesta afirmativa o negativa. En caso de una clave correcta se puede almacenar en la base de datos local para posteriores usos, como por ejemplo permitir funcionamiento offline si cae el servidor. Máximos segundos que se espera una respuesta, si se supera hay error. Segundos cada los que se comprueba que el canal entre este servidor y el elemento remoto-servidor ‘primario’ sigue abierto. Si la solicitud de datos de usuario falla, define la acción a tomar con respecto al uso solicitado:  Denegar rechaza el uso sin más  Permitir lo permite  Usar datos existentes comprueba la ficha del usuario almacenada y aplica los límites que defina su patrón de uso

Campos para servidores Eliza Cuando la comunicación se realiza con un servidor Eliza ‘primario’, se envían todos los campos de la ficha de usuario necesarios de forma automática. Estos campos se actualizan en la ficha del usuario del servidor de Eliza ‘secundario’ o solicitante. En el caso de comunicarse con un elemento remoto, como la base de datos externa no tiene porque coincidir en campos con Eliza, definimos mediante un fichero de configuración cada campo que se obtiene y su ID (valor de ‘SQL_F_n_ID’) que describirá su contenido. Los valores de ID pueden ser: ID

Descripción

0 31 32

Campo vacío. Si se indica este ID el dato no se tendrá en cuenta. Campo interno para seguridad de la conversación. No usar. Campo interno para cifrado de la conversación. No usar.

ID

Descripción

51

Identificación de usuario. Interno e implícito. Este campo, especificado en la configuración (SQL_ID), se obtiene de la base de datos en cada operación con un usuario. No hay que indicarlo como un campo más.

ID

Descripción

61 62 63

Contraseña de usuario en texto plano. Contraseña de usuario, resultado de codificación. Uso interno. Contraseña de usuario que se encuentra cifrada en base de datos. El dato recibido será descifrado y almacenado localmente. (Modo AB1).

ID

Descripción

208 209 211 212 213 214 215

Nombre del usuario. Nombre solo sin apellidos. Opcional. Apellidos del usuario. Sin el nombre. Opcional. Nombre de usuario (con apellidos). Opcional. Grupo del usuario. Opcional. DNI. Opcional. Correo electrónico. Opcional. Mensaje (campo msg de la ficha de usuario). Opcional.

ID

Descripción

221 222 223

Fecha de alta (DD.MM.AA, DD/MM/AAAA, DDMMAA…). Opcional. Fecha de validez (fecha hasta la que es válido). Opcional. Fecha de suspensión (hasta la que está suspendido). Opcional.

ID

Descripción

221 222 223

Fecha de alta (DD.MM.AA, DD/MM/AAAA, DDMMAA…). Opcional. Fecha de validez (fecha hasta la que es válido). Opcional. Fecha de suspensión (hasta la que está suspendido). Opcional.

ID

Descripción

311

Dato para la lista de valores. Opcional. Indica el dato sobre el que se realizará una posible comparación para determinar si está en una lista de valores. Según la configuración se pueden realizar acciones según el dato este presente o no en la lista.

ID

Descripción

321

541 545 651 655

Prefijo de patrón. Opcional. Define el prefijo del patrón a usar para los tres patrones existentes (consultas, reservas y hotspot). De un solo dato se generan tres distintos. Cuando se recibe este dato, el valor presente se utiliza como prefijo añadiendo “_C”, “_R” y “_H” para cada patrón. Por ejemplo, del valor “ADULTO” se establecen los patrones “ADULTO_C” para consultas, “ADULTOS_R” para reservas y “ADULTOS_H” para hotspot. Patrón de uso para consultas. Opcional. Patrón de uso para consultas por edades. Opcional. Espera fecha de nacimiento o edad como todos los campos por edades. En el servidor de Eliza que procesa el dato, existe una configuración de rangos de edad (por ej.“0,7,13,18"). Se trata de encajar el dato en los rangos de edad, resultando una cadena con el comienzo del rango. Si se recibe por ejemplo “14”, el resultando será “13” ya que entra entre 13 y 17. Patrón de uso para reservas. Opcional. Patrón de uso para reservas por edades. Opcional. Patrón de uso para hotspot. Opcional. Patrón de uso para hotspot por edades. Opcional.

ID

Descripción

771 775 772 881 882 883

Campo tipo de usuario. Opcional. Campo tipo de usuario por edades. Opcional. Campo centro. Opcional. Campo C1. Opcional. Campo C2. Opcional. Campo C3. Opcional.

431 435