servicio-web-directoriosrcf (235 KB · PDF)

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