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 ) T e l é f o n o : 9 1 8 4 9 1 7 0 9 F a x : ( + 3 4 ) 9 1. 8 5 1. 4 0. 4 4
Í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 4.4. Ejemplo... 10
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 consulta SQL a través de ODBC. Esta es la consulta que se evalúa. Una persona pertenecerá o no a este grupo en función de que la consulta retorne o no valores.
CadenaODBC: Cadena de conexión ODBC para realizar la consulta. 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. UrlRedir: Dirección URL de la página Web externa a la que se dirige el enlace.
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.
3.1.2. Obtención del usuario de acceso 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);
4. Login desde otras carpetas El proceso de vinculación se complementa con un mecanismo de identificación semitransparente, 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.
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¶m=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 2010 ADD4U 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. Add4u Dirección: Anastasio Nieto 11 O10-28400 Collado Villalba (Madrid) Teléfono: 91 849 1709 Fax: (+34) 91.851.40.44