Integración en Carpeta
A d d 4 u S o l u c i o n e s p a r a G e s t i ó n y D e s a r r o l l o S . L .
D i r e c c i ó n : A n a s t a s i o N i e t o 1 1 – O 1 0 -‐ 2 8 4 0 0 C o l l a d o V i l l a l b a ( M a d r i d )
ÍNDICE
1.
Introducción ... 4
1.1. Grupos de usuarios ... 4
1.2. Personas y grupos ... 5
1.3. Accesos Directos ... 5
2.
Funcionamiento del sistema ... 6
3.
El Servicio Web ... 6
3.1. Descripción del WSDL ... 6
3.1.1. Conexión al servicio 6
3.1.2. Obtención del usuario de acceso 7
3.2. Estructuras de datos ... 7
4.
Login desde otras carpetas ... 9
4.1. Fase 1: invocación externa ... 9
4.2. Fase 2: identificación en Carpeta de Add4u ... 9
4.3. Fase 3: Retorno a la carpeta externa ... 9
1. Introducción
Carpeta del ciudadano de GestDoc permite, mediante un sistema de identificación basado en Servicios Web, integrar información proveniente de otros portales Web de terceras empresas, con un sistema de integración sencillo.
Los accesos directos a los distintos componentes de carpeta se muestran en la ventana superior. En este caso, desde “INICIO” hasta “Cambiar Contraseña” son enlaces propios de GestDoc, mientras que lo que aparece desde “Empleados municipales” hasta “Wifi Municipal” son enlaces provenientes de aplicaciones externas.
Para la definición de estos enlaces se utiliza una serie de estructuras en la base de datos de Accesos (Ver configuración de AccesoWeb).
1.1. Grupos de usuarios
Se definen en la tabla AddWebGrupos y contiene la siguiente información:
•
Id
: Numérico, clave única de referencia del grupo.
•
Nombre
: Nombre del grupo.
•
Descripción
: Del grupo a la que se refiere.
•
ConsultaSQL
: Para la determinación de una persona a un grupo de realiza una
•
UsuarioODBC
: Para realizar la conexión.
•
PasswdODBC
: Para realizar la conexión.
•
ValidoSiVacio
: 0 indica que la pertenencia del usuario al grupo se considera
cierta si la consulta realizada devuelve algún valor y 1 si no devuelve ninguno.
Como regla general, además de los que cada organización determine, existen siempre los grupos 1, que indica que siempre está activo y 4, que no es válido nunca.1.2. Personas y grupos
La pertenencia de una persona a un grupo se evalúa bien mediante una consulta SQL, bien mediante un listado de personas indicadas en una tabla. Si ConsultaSQL contiene algo distinto de “” se usa SQL y si no se usa la tabla de personas. La tabla se llama AddWebPersonasYGrupos:
•
Id: Identificador único del registro.
•
IdGrupo: Identificador de la tabla anterior.
•
DNIPersona: Documento identificativo del tercero (DNI, NIF, Tarjeta de
residencia, etc).
1.3. Accesos Directos
Es la tabla principal en esta labor. Su nombre es AddWebAccesoDirecto y contiene la siguiente estructura:
•
Id: Identificador único del acceso directo.
•
IdGrupo: Identificador del grupo al que se le aplica: 1 es todos y 4 ninguno (este
último se usa para desactivar un acceso directo).
•
Texto: Es el texto que aparece en el enlace. Por ejemplo “Documentos internos”
en el ejemplo anterior.
•
Descripción: Es un texto más largo que describe este acceso. Aparece como un
tooltip al pasar sobre el enlace.
•
EsEtiqueta: 0 indica que se trata de un acceso directo y un valor diferente que es
únicamente una etiqueta separadora (Empleados municipales y Otros servicios
en el ejemplo anterior).
•
TipoLogin: 0 indica que el enlace aparece en la ventana de inicio de Carpeta, antes
de realizar el Login, 1 que aparece si el login se hace mediante certificados
digitales, 2 si se hace mediante usuario y contraseña o 3 para cualquier tipo de
acceso.
•
PosOrden: ordinal que se utiliza para ordenar los accesos directos de menos a
mayor. Suelen dejarse huecos con el fin de poder poner en el futuro nuevos
enlaces entre medias en el futuro, por ejemplo de 5 en 5.
•
SegundosActivo: Indica el número de segundos que tiene la Web Externa para
utilizar el dato del Login que se ha pasado.
•
Identif: Indica el nombre del parámetro que se utiliza para invocar esa página
externa. Por defecto es “Identif”.
•
VentanaNueva: 0 indica que se abrirá como un marco dentro de Carpeta,
cualquier valor distinto de 0 indica que se abrirá una nueva ventana para este
servicio.
2. Funcionamiento del sistema
Con el sistema de tablas anteriormente descrito es posible mostrar una serie de enlaces en Carpeta del Ciudadano, configurables en base al usuario que ha realizado el acceso. Esto permite por ejemplo mostrar accesos al portal del empleado si es funcionario municipal, acceso al padrón de habitantes si está empadronado, etc.
Cuando el usuario hace clic sobre el acceso directo el sistema, mediante un marco o en ventana nueva, invoca a la URL configurada y pasa en el parámetro Identif un identificador de transacción:
http://www.google.es?Identif=QWERASDFO0234598A23
Una vez el portal que se desea integrar tiene este acceso, simplemente invocando el servicio web usando como parámetro el valor de la variable Identif, puede obtener el documento identificativos del usuario que ha hecho login, independientemente de que lo haya hecho por usuario y contraseña, con certificados digitales o con DNI electrónico.
3. El Servicio Web
3.1. Descripción del WSDL
3.1.1. Conexión al servicio
El primer paso es identificarse en el servicio web, para ello debe invocarse el método
int GD__Conectar(xsd__string Organizacion, xsd__int Entorno, xsd__string Secret, xsd__int &Result)
La función toma como parámetro el nombre de la organización, un identificador del entorno, la clave de acceso y retorna el identificador de la conexión que será el primer parámetro del resto de las llamadas.
Cuando se invoca el servicio externo, la primera acción que éste debe realizar (generalmente antes de 15 segundos después de que se le invoque) es llamar al método siguiente:
// Validar una conexión... dado el código de conexión devuelve un DNI del usuario int GD__ValidarConexionExterna( xsd__int Conexion,
xsd__string CodConexion,
struct GD__ValidacionConexionWeb &Result);
•
Conexion: es el valor que retorna la función Conectar.
•
CodConexion: es el valor del parámetro
Identif
que se pasa en la URL al invocar al
portal externo.
Retorna una estructura de tipo ValidacionConexionWeb, que contiene el DNI, CIF o Tarjeta de Residencia del usuario al que se refiere.
3.2. Estructuras de datos
// Información relativa a los accesos directos de la web struct GD__AccesoDirectoWeb { xsd__int Id; xsd__string Texto; xsd__string Descripcion; xsd__boolean EsEtiqueta; xsd__boolean OtraVentana; }; struct GD__sAccesoDirectoWeb { struct GD__AccesoDirectoWeb *__ptr; int __size; }; struct GD__ValidacionConexionWeb
{
xsd__string DNI; xsd__int CodAccion;
xsd__string ParametroExtra; };
// Validar una conexión... dado el código de conexión devuelve un DNI del usuario int GD__ValidarConexionExterna( xsd__int Conexion,
xsd__string CodConexion,
struct GD__ValidacionConexionWeb &Result);
El proceso de vinculación se complementa con un mecanismo de identificación semi-transparente, que no pasaría por mostrar completamente nuestra carpeta del ciudadano. Este mecanismo funciona en tres fases.
4.1. Fase 1: invocación externa
La carpeta externa, cuando determina que necesita identificar al usuario invoca una URL especial de Carpeta:
URL_CARPETA/LoginExterno.do por ejemplo:
https://carpeta.ayto-colladovillalba.org/GDCarpetaCiudadano/LoginExterno.do
Esa invocación se realiza con un parámetro llamado Param, que es un dato relevante para la carpeta externa y que nosotros simplemente almacenamos.
4.2. Fase 2: identificación en Carpeta de Add4u
Nuestra carpeta realiza una identificación menos intrusiva que la habitual, donde únicamente aparecerá el mecanismo de identificación por usuario y contraseña y por certificados digitales, no presentándose el resto de las opciones e identificaciones de la carpeta tradicional.
4.3. Fase 3: Retorno a la carpeta externa
Si la fase 2 se ha realizado correctamente se actuará sobre un enlace externo, tal y como se ha descrito anteriormente, pasando un parámetro adicional, que será Param, con el valor que se había indicado en la Fase 1, de forma que la carpeta externa pueda usar este valor para redirigirse a la página correcta.
Es responsabilidad de la carpeta externa interpretar el parámetro Param para determinar (en caso de ser necesario) la acción a realizar y si ese usuario en particular puede hacerla.
S o l u c i o n e s p a r a G e s t i ó n y D e s a r r o l l o S . L .
4.4. Ejemplo
Estoy en la página de certificados de empadronamiento y, como no tiene identificado aún al usuario desea obtener esa información. Lleva al usuarios a:
https://carpeta.ayto-colladovillalba.org/GDCarpetaCiudadano/LoginExterno.do?Param=124321
Nuestra parte realiza la validación y si todo va correctamente invocará la URL externa predefinida:
http://www.ayto-colladovillalba.org/TrasIdentif?Identif=AD023490FDS8ASDF&Param=124321 Siguiendo el mismo mecanismo que el indicado anteriormente, la página externa puede:
1. Identificar al usuario mediante el servicio web y el parámetro Identif. Aquí podrá obtener información del DNI/NIF/Tarjeta de Residencia del usuario que ha hecho login, de la forma en la que lo ha hecho, junto con información más detallada, como el nombre completo,
2. Redirigirse a la información personal del padrón, mediante su parámetro externo
Param.
COPYRIGHT ©2010ADD4U S.L.
TODOS LOS DERECHOS RESERVADOS.
Este manual describe el uso del software denominado GestDoc. Add4u trata de poner todo su empeño en la corrección de este manual pero no se compromete a que los contenidos del mismo se ajusten completamente a las funciones del software que describe, debido a que el software se actualiza constantemente.
Cualquier comentario en relación con la calidad, contenido, estructura, claridad o aspecto de este documento será bienvenido.
A d d 4 u S o l u c i o n e s p a r a G e s t i ó n y D e s a r r o l l o S . L .