Documentacion de gestion de directorio para los SARCF del proyecto FACe Equipo de desarrollo de la plataforma FACe Versión 1.0.0 Esta página se ha dejado vacía a propósito Índice de contenidos Capítulo 1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.1 Historial de versiones del documento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2 Objetivo de este documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Capítulo 2 Definición del servicio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1 WSDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Formato de respuesta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3 Métodos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Capítulo 3 Seguridad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.2 Implementación.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.3 Sistema de permisos dentro de la plataforma FACe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Apéndice A Integración con validación de certificado publico y policy 29 A.1 Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 A.2 Clave publica del certificado en las respuestas SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Esta página se ha dejado vacía a propósito 4 Capítulo 1 Introducción 1.1 Historial de versiones del documento Versión Fecha Descripción de los cambios 1.0.0 29/02/2016 Inicio del documento 1.2 Objetivo de este documento El objetivo de este documento es facilitar la labor de integración para los sitemas automatizados de gestión dentro de la plataforma de facturación electronica FACe. En adelante puede encontrar el acrónimo SARCF que se refiere a los Sistemas Automatizados del Registro Contable de Factura, es decir, aquellas plataformas que sincronizan con la plataforma FACe de manera automatizada. La plataforma actua como servidor, en este caso la denominaremos "interfaz servidor" y el SARCF actua como cliente. La interfaz de directorio permite a los sistemas SARCF configurar los roles y relaciones de las unidades a las que tienen permiso. 5 Esta página se ha dejado vacía a propósito 6 Capítulo 2 Definición del servicio. A continuación se detalla el servicio web para gestión de factura para los RCF del servicio FACe. Recuerde que todas las peticiones han de ir firmadas tal y como se indica en el capítulo "Seguridad." 2.1 WSDL Puedes encontrar el wsdl de los servicios en las siguientes rutas: Entorno Ruta Codificación STAGING (https://se-face-webservice.redsara.es/directoriosrcf?wsdl) RCPEncoded STAGING (https://se-face-webservice.redsara.es/ directoriosrcf2?wsdl) RCP-Literal PROD (https://webservice.face.gob.es/directoriosrcf?wsdl) RCPEncoded PROD (https://webservice.face.gob.es/directoriosrcf2?wsdl) RCP-Literal El entorno de PROD es el entorno de producción de FACe, mientras que el entorno de STAGING es un entorno de integración habilitado para pruebas. Los wsdl codificados en RPC-Literal cumplen el estándar WS-I. 7 Capítulo 2 Definición del servicio. 2.2 Formato de respuesta En este apartado explicaremos el formato de la respuesta. El resultado de la llamada al WS viene en el elemento "resultado". Dentro de este resultado retornamos los siguientes parámetros: Parámetro Descripción codigo Código de resultado descripcion Descripción del código de resultado codigoSeguimiento Código asociado a la trama de la llamada. Este código puede ser solicitado para resolución de incidencias Ejemplo de una respuesta: <return xsi:type="ns1:ConsultaEstadosResponse"> <resultado xsi:type="ns1:Resultado"> <codigo xsi:type="xsd:string">0</codigo> <descripcion xsi:type="xsd:string">Correcto</descripcion> <codigoSeguimiento xsi:nil="true"/> </resultado> <estados SOAP-ENC:arrayType="ns1:Estado[3]" xsi:type="ns1:ArrayOfEstad o"> <item xsi:type="ns1:Estado"> <flujo xsi:type="xsd:string">ordinario</flujo> <nombre xsi:type="xsd:string">Registrada</nombre> <nombrePublico xsi:type="xsd:string">Registrada</nombrePublico> <codigo xsi:type="xsd:string">1200</codigo> <descripcion xsi:type="xsd:string">La factura ha sido registrad a en el registro electrónico REC</descripcion> </item> <item xsi:type="ns1:Estado"> <flujo xsi:type="xsd:string">ordinario</flujo> <nombre xsi:type="xsd:string">Registrada en RCF</nombre> <nombrePublico xsi:type="xsd:string">Registrada en RCF</nombrePu blico> <codigo xsi:type="xsd:string">1300</codigo> <descripcion xsi:type="xsd:string">La factura ha sido registrad a en RCF</descripcion> </item> <item xsi:type="ns1:Estado"> <flujo xsi:type="xsd:string">ordinario</flujo> <nombre xsi:type="xsd:string">Verificada en RCF</nombre> <nombrePublico xsi:type="xsd:string">Registrada en RCF</nombrePu 8 Capítulo 2 Definición del servicio. blico> <codigo xsi:type="xsd:string">1400</codigo> <descripcion xsi:type="xsd:string">la factura ha sido verificad a en RCF</descripcion> </item> </estados> </return> 2.2.1 Tipos de resultados A continuación se enumeran los posibles resultados: • Codigo 0 -> El proceso termino correctamente • Codigo "xxx" -> El proceso finalizó con error. A continuación se exponen los códigos de errores y su descripción. 2.2.2 Lista de errores Verificación de seguridad soap Código Descripción 100 La firma de la petición SOAP no es válida 101 La petición SOAP viene vacía 102 La petición SOAP no está bien construida: no se encuentra el SOAP Envelope 103 La petición SOAP no está bien construida: no se encuentra el SOAP Body 104 La petición SOAP no está bien construida: no se encuentra el SOAP Header 106 El certificado usado en la firma soap esta en una lista de bloqueo o es de pruebas Problemas en la verificación con Afirma Código Descripción 200 Afirma no ha podido obtener información del certificado 201 No se ha podido procesar la solicitud con Afirma Verificaciones asociadas a la gestión en FACe Código Descripción 515 No tiene permisos en alguna de las unidades a la que hace referencia la factura 516 No se ha encontrado la unidad 517 El numero de identidad es incorrecto 9 Capítulo 2 Definición del servicio. Código Descripción 518 Numero de identidad no encontrado 519 La operación no admite este estado 520 La operación no admite este rol 521 El email es incorrecto 522 No existe o inactiva la Oficina Contable asociado al código 523 No existe o inactiva el Organo Gestor asociado al código 524 No existe o inactiva la Unidad Tramitadora asociado al código 525 No se puede deshabilitar el rol porque tiene relaciones asociadas 526 No tiene permisos para crear esta relacion 527 No tiene permisos en alguna de las unidades por que no esta adherida a FACe 528 No se pueden gestionar numeros de identidad en unidades que no son Organos Gestores 617 El numero de identidad es incorrecto 618 El email es incorrecto 619 El nombre es obligatorio 620 El apellido es obligatorio 621 No se ha encontrado la unidad Otros Código Descripción 001 Mensaje genérico (El proceso finalizó con error. El error no ha sido determinado, pudo deberse a problemas de comunicacion con otras plataformas, problemas de datos, etc.) 2.3 Métodos En los ejemplos de soap-xml se publican sin las partes de firma y cabecera para hacerlos mas comprensibles. 10 Capítulo 2 Definición del servicio. 2.3.1 Consultar Unidad Este método permite consultar la configuración de una unidad. Si el RCF que consulta tiene permisos, retornara información de que roles y relaciones tiene configurado, NIFs asignados (solo los Órganos Gestores pueden tener asignados NIFs), y usuarios con permisos de gestión en el portal de organismos. Petición Lista de parámetros Parámetro Descripción codigoDir3 Código del DIR3 de la unidad a consultar Petición RPC-Encoded <soapenv:Body> <web:consultaUnidad soapenv:encodingStyle="http://schemas.xmlsoap.org/s oap/encoding/"> <codigoDir3 xsi:type="xsd:string">P00000009</codigoDir3> </web:consultaUnidad> </soapenv:Body> Petición RPC-Literal <soapenv:Body> <web:consultaUnidad> <codigoDir3>P00000010</codigoDir3> </web:consultaUnidad> </soapenv:Body> Respuesta Lista de parámetros Parámetro Descripción codigoDir3 Código del DIR3 de la unidad a consultada nombre Nombre de la unidad en el DIR3 roles Array de información de los roles configurados relaciones Array de información de las relaciones configuradas donde la unidad consultada participa 11 Capítulo 2 Definición del servicio. Parámetro Descripción usuarios Array de información de los usuarios que tinen permisos en el portal de organismos de FACe numerosIdentidad Array de información de los NIFs que tiene asignado la unidad como rol OG • Información de roles Parámetro Descripción rol Tipo de rol configurado (OC, OG o UT) alias Nombre que se le da al rol email Email de contacto rcf Nombre del RCF para los roles OC • Información de relaciones Parámetro Descripción organoGestor codigo DIR3 de la OG unidadTramitadora codigo DIR3 de la UT oficinaContable codigo DIR3 de la OC estado Estado de la relacion (ENABLED||DISABLED) • Información de los usuarios Parámetro Descripción numeroIdentidad NIF del usuario nombre Nombre del usuario apellido1 Primer apellido del usuario apellido2 Segundo apellido del usuairo rol Rol de permiso (ADMIN||USER) • Información de los NIFs 12 Capítulo 2 Definición del servicio. Parámetro Descripción numeroIdentidad NIF de la unidad Respuesta RPC-Encoded <SOAP-ENV:Body wsu:Id="pfx48bfe883-0eed-5d99-0e40-c43624b2c5c5" xmlns:ws u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-uti lity-1.0.xsd"> <ns1:consultaUnidadResponse> <return xsi:type="ns1:consultaUnidadResponse"> <resultado xsi:type="ns1:Resultado"> <codigo xsi:type="xsd:string">0</codigo> <descripcion xsi:type="xsd:string">Correcto</descripcion> <codigoSeguimiento xsi:nil="true"/> </resultado> <unidad xsi:type="ns1:consultaUnidadInfo"> <codigoDir3 xsi:type="xsd:string">P00000009</codigoDir3> <nombre xsi:type="xsd:string">UNIDAD DIR PRUEBAS 9</nombre> <roles SOAP-ENC:arrayType="ns1:rolInfo[3]" xsi:type="ns1:Array OfRolInfo"> <item xsi:type="ns1:rolInfo"> <rol xsi:type="ns1:rolfactura">OC</rol> <alias xsi:type="xsd:string">P00000009</alias> <email xsi:type="xsd:string">[email protected]</email> <rcf xsi:type="xsd:string">RCF 1 de pruebas</rcf> </item> <item xsi:type="ns1:rolInfo"> <rol xsi:type="ns1:rolfactura">OG</rol> <alias xsi:type="xsd:string">P00000009</alias> <email xsi:nil="true"/> <rcf xsi:nil="true"/> </item> <item xsi:type="ns1:rolInfo"> <rol xsi:type="ns1:rolfactura">UT</rol> <alias xsi:type="xsd:string">P00000009</alias> <email xsi:type="xsd:string">[email protected]</email> <rcf xsi:nil="true"/> </item> </roles> <relaciones SOAP-ENC:arrayType="ns1:relacionInfo[1]" xsi:typ e="ns1:ArrayOfRelacionInfo"> <item xsi:type="ns1:relacionInfo"> <organoGestor xsi:type="xsd:string">P00000009</organoGes tor> 13 Capítulo 2 Definición del servicio. <unidadTramitadora xsi:type="xsd:string">P00000009</unid adTramitadora> <oficinaContable xsi:type="xsd:string">P00000009</oficin aContable> <estado xsi:type="ns1:estado">DISABLED</estado> </item> </relaciones> <usuarios SOAP-ENC:arrayType="ns1:usuarioInfo[6]" xsi:type="ns 1:ArrayOfUsuarioInfo"> <item xsi:type="ns1:usuarioInfo"> <numeroIdentidad xsi:type="xsd:string">00000000T</numero Identidad> <nombre xsi:type="xsd:string">Juan</nombre> <apellido1 xsi:type="xsd:string">Camara</apellido1> <apellido2 xsi:type="xsd:string">Español</apellido2> <rol xsi:type="ns1:rolusuario">ADMIN</rol> </item> </usuarios> <numerosIdentidad SOAP-ENC:arrayType="ns1:numeroIdentidadInf o[1]" xsi:type="ns1:ArrayOfNumeroIdentidadInfo"> <item xsi:type="ns1:numeroIdentidadInfo"> <numeroIdentidad xsi:type="xsd:string">00000000T</numero Identidad> </item> </numerosIdentidad> </unidad> </return> </ns1:consultaUnidadResponse> </SOAP-ENV:Body> Respuesta RPC-Literal <SOAP-ENV:Body wsu:Id="pfx72203d35-3b32-3aed-1dd1-ae259a6c851e" xmlns:ws u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-uti lity-1.0.xsd"> <ns1:consultaUnidadResponse> <return> <resultado> <codigo>0</codigo> <descripcion>Correcto</descripcion> <codigoSeguimiento xsi:nil="true"/> </resultado> <unidad> 14 Capítulo 2 Definición del servicio. <codigoDir3>P00000010</codigoDir3> <nombre>UNIDAD DIR PRUEBAS 10</nombre> <roles> <rolInfo> <rol>OC</rol> <alias>OC P00000010</alias> <email>[email protected]</email> <rcf>RCF 1 de pruebas</rcf> </rolInfo> </roles> <relaciones> <relacionInfo> <organoGestor>P00000010</organoGestor> <unidadTramitadora>P00000010</unidadTramitadora> <oficinaContable>P00000010</oficinaContable> <estado>ENABLED</estado> </relacionInfo> </relaciones> <usuarios xsi:nil="true"/> <numerosIdentidad xsi:nil="true"/> </unidad> </return> </ns1:consultaUnidadResponse> </SOAP-ENV:Body> 2.3.2 Gestion Numero Identidad Este método permite gestionar los NIFs de las unidades con rol Organo Gestor. Petición Lista de parámetros Parámetro Descripción codigoDir3 Código del DIR3 de la unidad a gestionar numeroIdentidad NIF de la unidad estado Estado del NIF en la unidad (ENABLED||DISABLED) Petición RPC-Encoded <soapenv:Body> <web:gestionNumeroIdentidad soapenv:encodingStyle="http://schemas.xmlso ap.org/soap/encoding/"> <codigoDir3 xsi:type="xsd:string">P00000010</codigoDir3> 15 Capítulo 2 Definición del servicio. <numeroIdentidad xsi:type="xsd:string">00000000T</numeroIdentidad> <estado xsi:type="web:estado">ENABLED</estado> </web:gestionNumeroIdentidad> </soapenv:Body> Petición RPC-Literal <soapenv:Body> <web:gestionNumeroIdentidad> <codigoDir3>P00000010</codigoDir3> <numeroIdentidad>00000000T</numeroIdentidad> <estado>ENABLED</estado> </web:gestionNumeroIdentidad> </soapenv:Body> Respuesta Lista de parámetros Parámetro Descripción codigoDir3 Código del DIR3 de la unidad gestionada numeroIdentidad NIF de la unidad estado Estado del NIF en la unidad (ENABLED||DISABLED) Respuesta RPC-Encoded <SOAP-ENV:Body wsu:Id="pfxda12c523-028c-039e-d988-f00989a0490b" xmlns:ws u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-uti lity-1.0.xsd"> <ns1:gestionNumeroIdentidadResponse> <return xsi:type="ns1:gestionNumeroIdentidadResponse"> <resultado xsi:type="ns1:Resultado"> <codigo xsi:type="xsd:string">0</codigo> <descripcion xsi:type="xsd:string">Correcto</descripcion> <codigoSeguimiento xsi:nil="true"/> </resultado> <numeroIdentidad xsi:type="ns1:gestionNumeroIdentidadInfo"> <codigoDir3 xsi:type="xsd:string">P00000010</codigoDir3> <numeroIdentidad xsi:type="xsd:string">00000000T</numeroIdenti dad> <estado xsi:type="ns1:estado">ENABLED</estado> 16 Capítulo 2 Definición del servicio. </numeroIdentidad> </return> </ns1:gestionNumeroIdentidadResponse> Respuesta RPC-Literal <SOAP-ENV:Body wsu:Id="pfx0fb20c25-8f64-e91b-1f0e-5bbb8084dd66" xmlns:ws u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-uti lity-1.0.xsd"> <ns1:gestionNumeroIdentidadResponse> <return> <resultado> <codigo>0</codigo> <descripcion>Correcto</descripcion> <codigoSeguimiento xsi:nil="true"/> </resultado> <numeroIdentidad> <codigoDir3>P00000010</codigoDir3> <numeroIdentidad>00000000T</numeroIdentidad> <estado>ENABLED</estado> </numeroIdentidad> </return> </ns1:gestionNumeroIdentidadResponse> </SOAP-ENV:Body> 2.3.3 Gestion Relacion Este método permite gestionar las relaciones. Petición Lista de parámetros Parámetro Descripción organoGestor Código del DIR3 de la oficina contable unidadTramitadora Código del DIR3 de la Unidad Tramitadora oficinaContable Identificador único de la Oficina COntable estado Estado de la relación (ENABLED||DISABLED) Petición RPC-Encoded <soapenv:Body> <web:gestionRelaciones soapenv:encodingStyle="http://schemas.xmlsoap.or 17 Capítulo 2 Definición del servicio. g/soap/encoding/"> <organoGestor xsi:type="xsd:string">P00000010</organoGestor> <unidadTramitadora xsi:type="xsd:string">P00000010</unidadTramitador a> <oficinaContable xsi:type="xsd:string">P00000010</oficinaContable> <estado xsi:type="web:estado">ENABLED</estado> </web:gestionRelaciones> </soapenv:Body> Petición RPC-Literal <soapenv:Body> <web:gestionRelacion> <organoGestor>P00000010</organoGestor> <unidadTramitadora>P00000010</unidadTramitadora> <oficinaContable>P00000010</oficinaContable> <estado>ENABLED</estado> </web:gestionRelacion> </soapenv:Body> Respuesta Lista de parámetros Parámetro Descripción organoGestor Código del DIR3 de la oficina contable unidadTramitadora Código del DIR3 de la Unidad Tramitadora oficinaContable Identificador único de la Oficina Contable estado Estado de la relación (ENABLED||DISABLED) Respuesta RPC-Encoded <SOAP-ENV:Body wsu:Id="pfxcc369212-6f14-5413-df5c-7164eb29b4c8" xmlns:ws u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-uti lity-1.0.xsd"> <ns1:gestionRelacionResponse> <return xsi:type="ns1:gestionRelacionResponse"> <resultado xsi:type="ns1:Resultado"> <codigo xsi:type="xsd:string">0</codigo> <descripcion xsi:type="xsd:string">Correcto</descripcion> 18 Capítulo 2 Definición del servicio. <codigoSeguimiento xsi:nil="true"/> </resultado> <relacion xsi:type="ns1:gestionRelacionInfo"> <organoGestor xsi:type="xsd:string">P00000010</organoGestor> <unidadTramitadora xsi:type="xsd:string">P00000010</unidadTram itadora> <oficinaContable xsi:type="xsd:string">P00000010</oficinaConta ble> <estado xsi:type="ns1:estado">ENABLED</estado> </relacion> </return> </ns1:gestionRelacionResponse> </SOAP-ENV:Body> Respuesta RPC-Literal <SOAP-ENV:Body wsu:Id="pfx347ede18-25b4-8653-6a6e-cd11cf0544a7" xmlns:ws u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-uti lity-1.0.xsd"> <ns1:gestionRelacionResponse> <return> <resultado> <codigo>0</codigo> <descripcion>Correcto</descripcion> <codigoSeguimiento xsi:nil="true"/> </resultado> <relacion> <organoGestor>P00000010</organoGestor> <unidadTramitadora>P00000010</unidadTramitadora> <oficinaContable>P00000010</oficinaContable> <estado>ENABLED</estado> </relacion> </return> </ns1:gestionRelacionResponse> </SOAP-ENV:Body> 2.3.4 Gestion Rol Este método permite gestionar los roles de la unidad. Petición Lista de parámetros 19 Capítulo 2 Definición del servicio. Parámetro Descripción codigoDir3 Código del DIR3 de la unidad gestionada alias Nombre descriptivo del rol estado Estado del rol en la unidad (ENABLED||DISABLED) rolFactura rol a aplicar (OG||UT||OC) email Email de contacto, solo es obligatorio en OC y OG de EELL Petición RPC-Encoded <soapenv:Body> <web:gestionRol soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/ encoding/"> <codigoDir3 xsi:type="xsd:string">P00000010</codigoDir3> <alias xsi:type="xsd:string">Unidad Pruebas 10</alias> <estado xsi:type="web:estado">ENABLED</estado> <rolFactura xsi:type="web:rolfactura">OC</rolFactura> <email xsi:type="xsd:string">[email protected]</email> </web:gestionRol> </soapenv:Body> Petición RPC-Literal <soapenv:Body> <web:gestionRol> <codigoDir3>P00000010</codigoDir3> <alias>Unidad Pruebas 10</alias> <estado>ENABLED</estado> <rolFactura>OC</rolFactura> <email>[email protected]</email> </web:gestionRol> </soapenv:Body> Respuesta Lista de parámetros Parámetro Descripción codigoDir3 Código del DIR3 de la unidad gestionada 20 Capítulo 2 Definición del servicio. Parámetro Descripción alias Nombre descriptivo del rol estado Estado del rol en la unidad (ENABLED||DISABLED) rolFactura rol aplicado (OG||UT||OC) email Email de contacto rcf Nombre del RCF asignado en caso de ser OC Respuesta RPC-Encoded <SOAP-ENV:Body wsu:Id="pfx8d60bef2-6dd6-0ba2-9952-6b368ab5b5e6" xmlns:ws u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-uti lity-1.0.xsd"> <ns1:gestionRolResponse> <return xsi:type="ns1:gestionRolResponse"> <resultado xsi:type="ns1:Resultado"> <codigo xsi:type="xsd:string">0</codigo> <descripcion xsi:type="xsd:string">Correcto</descripcion> <codigoSeguimiento xsi:nil="true"/> </resultado> <rol xsi:type="ns1:gestionRolInfo"> <codigoDir3 xsi:type="xsd:string">P00000010</codigoDir3> <rol xsi:type="ns1:rolfactura">OC</rol> <alias xsi:type="xsd:string">Unidad Pruebas 10</alias> <estado xsi:type="ns1:estado">ENABLED</estado> <email xsi:type="xsd:string">[email protected]</email> <rcf xsi:type="xsd:string">RCF 1 de pruebas</rcf> </rol> </return> </ns1:gestionRolResponse> </SOAP-ENV:Body> Respuesta RPC-Literal <SOAP-ENV:Body wsu:Id="pfx8c5a4a19-8b60-e95f-d31b-525984ee4b60" xmlns:ws u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-uti lity-1.0.xsd"> <ns1:gestionRolResponse> <return> <resultado> <codigo>0</codigo> <descripcion>Correcto</descripcion> 21 Capítulo 2 Definición del servicio. <codigoSeguimiento xsi:nil="true"/> </resultado> <rol> <codigoDir3>P00000010</codigoDir3> <rol>OC</rol> <alias>Unidad Pruebas 10</alias> <estado>ENABLED</estado> <email>[email protected]</email> <rcf>RCF 1 de pruebas</rcf> </rol> </return> </ns1:gestionRolResponse> </SOAP-ENV:Body> 2.3.5 Gestion Usuario Este método permite gestionar los usuarios que gestionan la unidad en el portal de organismos Petición Lista de parámetros Parámetro Descripción codigoDir3 Código del DIR3 de la unidad gestionada numeroIdentidad NIF del usuario nombre Nombre del usuario apellido1 Primer apellido del usuario apellido2 Segundo apellido del usuario rol Rol de permiso (ADMIN||USER) Petición RPC-Encoded <soapenv:Body> <web:gestionUsuario soapenv:encodingStyle="http://schemas.xmlsoap.org/s oap/encoding/"> <codigoDir3 xsi:type="xsd:string">P00000010</codigoDir3> <numeroIdentidad xsi:type="xsd:string">00000000T</numeroIdentidad> <nombre xsi:type="xsd:string">Juan</nombre> <apellido1 xsi:type="xsd:string">Camara</apellido1> <apellido2 xsi:type="xsd:string">Español</apellido2> <rol xsi:type="web:rolusuario">USER</rol> 22 Capítulo 2 Definición del servicio. </web:gestionUsuario> </soapenv:Body> Petición RPC-Literal <soapenv:Body> <web:gestionUsuario> <codigoDir3>P00000010</codigoDir3> <numeroIdentidad>00000000T</numeroIdentidad> <nombre>Juan</nombre> <apellido1>Camara</apellido1> <apellido2>Español</apellido2> <rol>USER</rol> </web:gestionUsuario> </soapenv:Body> Respuesta Lista de parámetros Parámetro Descripción codigoDir3 Código del DIR3 de la unidad gestionada numeroIdentidad NIF del usuario nombre Nombre del usuario apellido1 Primer apellido del usuario apellido2 Segundo apellido del usuario rol Rol de permiso (ADMIN||USER) Respuesta RPC-Encoded <SOAP-ENV:Body wsu:Id="pfxd79a23b5-5c11-b5b7-1790-4cffb9ad45d2" xmlns:ws u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-uti lity-1.0.xsd"> <ns1:gestionUsuarioResponse> <return xsi:type="ns1:gestionUsuarioResponse"> <resultado xsi:type="ns1:Resultado"> <codigo xsi:type="xsd:string">0</codigo> <descripcion xsi:type="xsd:string">Correcto</descripcion> <codigoSeguimiento xsi:nil="true"/> 23 Capítulo 2 Definición del servicio. </resultado> <usuario xsi:type="ns1:gestionUsuarioInfo"> <codigoDir3 xsi:type="xsd:string">P00000010</codigoDir3> <numeroIdentidad xsi:type="xsd:string">00000000T</numeroIdenti dad> <nombre xsi:type="xsd:string">Juan</nombre> <apellido1 xsi:type="xsd:string">Camara</apellido1> <apellido2 xsi:type="xsd:string">Español</apellido2> <rol xsi:type="ns1:rolusuario">USER</rol> </usuario> </return> </ns1:gestionUsuarioResponse> </SOAP-ENV:Body> Respuesta RPC-Literal <SOAP-ENV:Body wsu:Id="pfx6e103cf5-7100-547c-3ef4-2675f6a85944" xmlns:ws u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-uti lity-1.0.xsd"> <ns1:gestionUsuarioResponse> <return> <resultado> <codigo>0</codigo> <descripcion>Correcto</descripcion> <codigoSeguimiento xsi:nil="true"/> </resultado> <usuario> <codigoDir3>P00000010</codigoDir3> <numeroIdentidad>00000000T</numeroIdentidad> <nombre>Juan</nombre> <apellido1>Camara</apellido1> <apellido2>Español</apellido2> <rol>USER</rol> </usuario> </return> </ns1:gestionUsuarioResponse> </SOAP-ENV:Body> 24 Capítulo 3 Seguridad 3.1 Introducción WS-Security (Seguridad en Servicios Web) es un protocolo de comunicaciones que suministra un medio para aplicar seguridad a los Servicios Web. En abril de 2004 el estándar WS-Security 1.0 fue publicado por Oasis-Open. En 2006 fue publicada la versión 1.1. Originalmente desarrollado por IBM, Microsoft, y VeriSign, el protocolo es ahora llamado oficialmente WSS y está desarrollado por un comité en Oasis-Open. Las peticiones deben ir firmadas tal y como se indica en el apartado implementación o con un formato válido de WS-Security 1.0 X.509 Token Profile. La validación de peticiones es delegada en la plataforma @firma por lo que el certificado utilizado para firmar debe ser reconocido por la misma. Finalmente después de que las peticiones hayan sido verificadas correctamente se le asignan determinados permisos de ejecución dentro de la aplicación FACe, por lo que si desea integrar sus sistemas en FACe necesita remitir su clave pública a la cuenta de correo de contacto: "[email protected]" 3.2 Implementación. La especificacion que utilizamos es la denominada X.509 Token Profile y que se puede encontrar en este documento 1 (página 27) . A continuación vemos un ejemplo de una petición completa. 25 Capítulo 3 Seguridad <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelop e/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w 3.org/2001/XMLSchema-instance"> <soapenv:Header> <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://doc s.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <wsse:BinarySecurityToken EncodingType="http://docs.oasis-ope n.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binar y" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x50 9-token-profile-1.0#X509v3" wsu:Id="CertId-DD1EB7392FADB1EE37136007192003 34" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-ws security-utility-1.0.xsd">MIIEpDC...</wsse:BinarySecurityToken> <ds:Signature Id="Signature-3" xmlns:ds="http://www.w3.org/20 00/09/xmldsig#"> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.o rg/2001/10/xml-exc-c14n#"/> <ds:SignatureMethod Algorithm="http://www.w3.org/200 0/09/xmldsig#rsa-sha1"/> <ds:Reference URI="#id-4"> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/20 01/10/xml-exc-c14n#"/> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/200 0/09/xmldsig#sha1"/> <ds:DigestValue>wttpKeqdo7ltsD2MDitjZ7RWWaM=</d s:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue>n34z9gC...</ds:SignatureValue> <ds:KeyInfo Id="KeyId-DD1EB7392FADB1EE3713600719200345"> <wsse:SecurityTokenReference wsu:Id="STRId-DD1EB7392F ADB1EE3713600719200346" xmlns:wsu="http://docs.oasis-open.org/wss/2004/0 1/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wsse:Reference URI="#CertId-DD1EB7392FADB1EE3713 600719200334" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200 401-wss-x509-token-profile-1.0#X509v3"/> </wsse:SecurityTokenReference> </ds:KeyInfo> </ds:Signature> </wsse:Security> </soapenv:Header> 26 Capítulo 3 Seguridad <soapenv:Body wsu:Id="id-4" xmlns:wsu="http://docs.oasis-open.org/ws s/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <cambiarEstadoFactura xmlns="http://ssweb.preapp.seap.minhap.es/f acturae/web_services.php/ssgg"> <organoGestor xsi:type="xsd:string" xmlns="">E00127403</organ oGestor> <unidadTramitadora xsi:type="xsd:string" xmlns="">E0306250 3</unidadTramitadora> <numeroRegistro xsi:type="xsd:string" xmlns="">O00001301_13_0 0000142</numeroRegistro> <codigoEstado xsi:type="xsd:string" xmlns="">1200</codigoEsta do> <comentarios xsi:nil="true" xsi:type="xsd:string" xmlns=""/> </cambiarEstadoFactura> </soapenv:Body> </soapenv:Envelope> 3.3 Sistema de permisos dentro de la plataforma FACe Además de implementar la seguridad descrita a través de WS-Security 1.0 X.509 Token Profile la plataforma concede acceso a sus servicios web a través de un sistema de permisos, esto quiere decir que no todos los Sistemas de Gestión podrán acceder a todo el conjunto de facturas, si no solamente a aquellas para las que se les ha concedido acceso. 3.3.1 Alta en la aplicación FACe Lo primero que necesita hacer es dar de alta su Sistema de Gestión dentro de la plataforma FACe. Para dar de alta su Sistema de Gestión en la plataforma debe remitir la clave pública de su certificado reconocido por la plataforma @firma a la cuenta de correo de contacto de la aplicación FACe: "[email protected]" para su alta en la misma. 1. https://www.oasis-open.org/committees/download.php/16785/wss-v1.1-spec-osx509TokenProfile.pdf ? (página 25) 27 Esta página se ha dejado vacía a propósito 28 Apéndice A Integración con validación de certificado publico y policy Algunas nuevas metodologías requieren la inclusion de ficheros policy en formato xml. A.1 Policy <wsp:Policy wsu:Id="SigOnly" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-ws s-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> <wsp:ExactlyOne> <wsp:All> <sp:AsymmetricBinding> <wsp:Policy> <sp:InitiatorToken> <wsp:Policy> <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.o rg/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient"> <wsp:Policy> <sp:WssX509V3Token10 /> </wsp:Policy> </sp:X509Token> 29 Apéndice A Integración con validación de certificado publico y policy </wsp:Policy> </sp:InitiatorToken> <sp:RecipientToken> <wsp:Policy> <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.o rg/ws/2005/07/securitypolicy/IncludeToken/Never"> <wsp:Policy> <sp:WssX509V3Token10 /> </wsp:Policy> </sp:X509Token> </wsp:Policy> </sp:RecipientToken> <sp:AlgorithmSuite> <wsp:Policy> <sp:TripleDesRsa15 /> </wsp:Policy> </sp:AlgorithmSuite> <sp:Layout> <wsp:Policy> <sp:Strict /> </wsp:Policy> </sp:Layout> <sp:IncludeTimestamp /> <sp:OnlySignEntireHeadersAndBody /> </wsp:Policy> </sp:AsymmetricBinding> <sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/sec uritypolicy"> <wsp:Policy> <sp:MustSupportRefKeyIdentifier /> <sp:MustSupportRefIssuerSerial /> </wsp:Policy> </sp:Wss10> <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securityp olicy"> <sp:Body /> </sp:SignedParts> </wsp:All> </wsp:ExactlyOne> </wsp:Policy> 30 Apéndice A Integración con validación de certificado publico y policy A.2 Clave publica del certificado en las respuestas SOAP En este apartado mostramos las claves publicas de los certificados que firman las respuestas de los SOAP. A.2.1 Clave pública para firma en los SOAP del entorno de STAGING -----BEGIN CERTIFICATE----MIIEHTCCA4agAwIBAgIEPRQCPjANBgkqhkiG9w0BAQUFADA2MQswCQYDVQQGEwJF UzENMAsGA1UEChMERk5NVDEYMBYGA1UECxMPRk5NVCBDbGFzZSAyIENBMB4XDTE0 MDUyMTEwNTM1MloXDTE2MDUyMTEwNTM1MlowgdgxCzAJBgNVBAYTAkVTMQ0wCwYD VQQKEwRGTk1UMRgwFgYDVQQLEw9GTk1UIENsYXNlIDIgQ0ExETAPBgNVBAsTCFB1 YmxpY29zMRIwEAYDVQQLEwk1MDAwNzAwMTUxeTB3BgNVBAMUcERFU0NSSVBDSU9O IFNHUEVJQUUgKFBSRVBST0RVQ0NJT04pIC0gRU5USURBRCBNSU5JU1RFUklPIERF IEhBQ0lFTkRBIFkgQURNSU5JU1RSQUNJT05FUyBQ2kJMSUNBUyAtIENJRiBTMjgz MzAwMkUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKfmWJTM4NBCf2RsEgSP Mrg7xqXyObCzAHEV2scz1aUdQ8qX0By197NZdxNgJU5DQDRm5351dyB5WdGyO5f1 wryfi1XniikbxD85RN/sTE4YGwZsFPhJMZVkMi70uq4dAZcfa3bRYOavn4ftT2Dr 3Gc4tnuhp+FTQhMY+905F/odAgMBAAGjggGTMIIBjzCBlgYDVR0RBIGOMIGLpIGI MIGFMRgwFgYJKwYBBAGsZgEPEwlTMjgzMzAwMkUxQTA/BgkrBgEEAaxmAQ4UMk1J TklTVEVSSU8gREUgSEFDSUVOREEgWSBBRE1JTklTVFJBQ0lPTkVTIFDaQkxJQ0FT MSYwJAYJKwYBBAGsZgEIExdTR1BFSUFFIChQUkVQUk9EVUNDSU9OKTAJBgNVHRME AjAAMCsGA1UdEAQkMCKADzIwMTQwNTIxMTA1MzUyWoEPMjAxODA1MjExMDUzNTJa MAsGA1UdDwQEAwIFoDARBglghkgBhvhCAQEEBAMCBaAwHQYDVR0OBBYEFHYCfUJB X/422PEF+1CnlNzBmQ6AMB8GA1UdIwQYMBaAFECadkSXdAfErBTLHo1POkV8MNdh MFwGA1UdHwRVMFMwUaBPoE2kSzBJMQswCQYDVQQGEwJFUzENMAsGA1UEChMERk5N VDEYMBYGA1UECxMPRk5NVCBDbGFzZSAyIENBMREwDwYDVQQDEwhDUkwxNDczNzAN BgkqhkiG9w0BAQUFAAOBgQAbZEdG+q3wPfs29KYvgwcabHnmad3Quz5ZiDHv6XzH RYJolxI6aX+N1riDUqn1WsCqSywAfKJSIY8GR7gIyydV7IbM0/xHdjZ+MM+FBI/c yvkpEP5vO9v/IIIToosGsXZLTems4umYpB2HiHfC4tYbG/qxIIkTNmVkNBUIMrJ6 Xw== -----END CERTIFICATE----- A.2.2 Clave pública para firma en los SOAP del entorno de PRODUCCION -----BEGIN CERTIFICATE----MIID+TCCA2KgAwIBAgIEPRP+JzANBgkqhkiG9w0BAQUFADA2MQswCQYDVQQGEwJF UzENMAsGA1UEChMERk5NVDEYMBYGA1UECxMPRk5NVCBDbGFzZSAyIENBMB4XDTE0 MDUyMTA5NDgwMloXDTE2MDUyMTA5NDgwMlowgcgxCzAJBgNVBAYTAkVTMQ0wCwYD VQQKEwRGTk1UMRgwFgYDVQQLEw9GTk1UIENsYXNlIDIgQ0ExETAPBgNVBAsTCFB1 YmxpY29zMRIwEAYDVQQLEwk1MDAwNzAwMTUxaTBnBgNVBAMUYERFU0NSSVBDSU9O IFNHUEVJQUUgLSBFTlRJREFEIE1JTklTVEVSSU8gREUgSEFDSUVOREEgWSBBRE1J TklTVFJBQ0lPTkVTIFDaQkxJQ0FTIC0gQ0lGIFMyODMzMDAyRTCBnzANBgkqhkiG 9w0BAQEFAAOBjQAwgYkCgYEA3V4NOV4RR5cKS4j4qShp7+iWhYtjDDgQHzAV0nGL 31 Apéndice A Integración con validación de certificado publico y policy eLFEW7Mt7rO2C1G9WWYVfxctkt1piwhntIbPsNlPVTVlxN4ElGzf/06kh6aa6rp0 jH/+kda4xg+h+yu37TZEIifEIaiiNkoq1nm04dqRBfjjUyiVfl3e9oEaT7iPwrnb NncCAwEAAaOCAX8wggF7MIGCBgNVHREEezB5pHcwdTEYMBYGCSsGAQQBrGYBDxMJ UzI4MzMwMDJFMUEwPwYJKwYBBAGsZgEOFDJNSU5JU1RFUklPIERFIEhBQ0lFTkRB IFkgQURNSU5JU1RSQUNJT05FUyBQ2kJMSUNBUzEWMBQGCSsGAQQBrGYBCBMHU0dQ RUlBRTAJBgNVHRMEAjAAMCsGA1UdEAQkMCKADzIwMTQwNTIxMDk0ODAyWoEPMjAx ODA1MjEwOTQ4MDJaMAsGA1UdDwQEAwIFoDARBglghkgBhvhCAQEEBAMCBaAwHQYD VR0OBBYEFBDIUynTs6NzMxjMKgc+Dbfdx+TsMB8GA1UdIwQYMBaAFECadkSXdAfE rBTLHo1POkV8MNdhMFwGA1UdHwRVMFMwUaBPoE2kSzBJMQswCQYDVQQGEwJFUzEN MAsGA1UEChMERk5NVDEYMBYGA1UECxMPRk5NVCBDbGFzZSAyIENBMREwDwYDVQQD EwhDUkwxNDczNjANBgkqhkiG9w0BAQUFAAOBgQBGdF/8mmz7twNhEVUJofZ4tfWc 1JmZFAOa+DFCZsFyRpY2oPHsCqoysPWu/dwtZNrKmRVom18tfHKPvhcMmk2mK5sP IPs7WAvWtZcawsN3UjZlzVF3WZvpdNeVOg1u6LyCHJ2MymnwYhZ+dfNWQi72vehl QDSSH1UGtJj4biVm8A== -----END CERTIFICATE----- 32
© Copyright 2024