Estás viendo una versión antigua de esta página. Ve a la versión actual.

Comparar con el actual Ver el historial de la página

« Anterior Versión 3 Siguiente »

Primera toma de contacto


En este apartado se detalla el proceso a seguir para una primera toma de contacto con la API.

Para ello, se ofrecen un conjunto de pruebas de concepto basadas en diferentes tecnologías para facilitar la implementación del uso de JWT. 


Antes de lanzar una prueba inicial, cada solicitante tendrá que contar con un usuario y contraseña de DMSAS y claves públicas y privadas.
Es necesario comunicar a Servicios CGES el usuario y las claves públicas para realizar la configuración de permisos antes de invocar a los servicios publicados.
Una vez se consigan estos primeros pasos será necesario definir junto a la STIC , y con suficiente antelación, los requisitos de configuración y funcionales necesarios para la integración completa.

Respecto al usuario de login durante el desarrollo, se puede hacer uso de cualquier usuario DMSAS con validez, pero para el paso a los entornos de Preproducción y Producción, será condición necesaria poseer o solicitar un usuario de servicio de DMSAS para evitar que caduquen las claves periódicamente o que la integración dependa de un usuario nominal que pueda ser dado de baja en un momento dado. La petición de un usuario DMSAS de servicio puede realizarse mediante una petición CGES a través de los canales habituales.

Pruebas de concepto para una primera conexión

Durante la fase de desarrollo, os proponemos conectar con el entorno de pruebas de SERVICIOS CGES.

Definición API (Desarrollo): http://10.118.122.36:8001/servicioscges/index.html

 

Para facilitar los primeros pasos en la integración se han desarrollado ejemplos de login en diferentes tecnologías, pero la implementación puede realizarse con la tecnología que se considere conveniente. 

Generación del par de claves pública/privada

Se suministran dos recursos online externos para la generación de claves:

Se debe generar una clave con las siguientes propiedades:

  • Key size: 2048
  • Key use: Encryption
  • Algorithm: RS256

Una vez generada, la clave pública que se debe hacer llegar a ServiciosCGES debe tener una estructura como la del siguiente ejemplo:

{
"kty": "RSA",
"e": "AQAB",
"use": "enc",
"alg": "RS256",
"n": "gNpE_PyBNbFC5rnbbxTeTmP7Rgl8spsxG-G-MlyaOi5pvZNT_jrhGdYlpsZ6eTtOSBC2Lo4VDwHt7ZhY33nUfl_meNFk4UOOsrMPGT2Djxy3PhIzgCp2czPyDtFZceBMdx2rewYu-ENWH4o6NjFWaZ7JE554C3Zf3a1gpHMzW0HdQY1_oARfGbTbRfgDBnBllQYS3Cg11tacekAQ-4syz6XcvyPF1kY8LnN9nqhFfyadKKEAMNDqghj7z0CpHWcCQ8cK2bIKH4nG5lklxbwdW741WYLjqYruQfoO8EjW-iYPniqirKmybQsHglYgOe9JP500Vl8oVWTaT_JUAfUmtQ"
}

        

Debe conservar la clave privada asociada a la clave pública suministrada para la firma del token durante el proceso de encriptación.


Para el proceso de generación de token y la operativa, puede consultar el apartado siguiente.
Las pruebas de concepto incluyen la generación del token de autenticación y un primer lanzamiento de un método con un token de operación.
Se recomienda también preparar la generación de nuevos tokens de operación usando el token de refresco, ya que así se refuerza la seguridad enviando las credenciales con mayor periodicidad.


Acceso al servicio y consumo mediante tokens JWT


La aplicación hace uso de un conjunto de tokens siguiendo el estándar JWT (JSON Web Token) tanto para el login en la aplicación como para la operatividad con el resto de métodos. 

Se distinguen un total de tres tokens Token de autenticacióntoken de operación y token de refresco .

Token de autenticación

El token de autenticación es generado por cada proveedor que hace uso del servicio y debe contener la siguiente información en la carga útil (payload):

  • login: El usuario DMSAS que debe acceder al sistema de CGES.
  • password: La contraseña de dicho usuario.
  • origen: Palabra clave suministrada por Servicios CGES para verificar el acceso.

Una vez generado el payload, se procederá la firma con la clave privada del proveedor seguida de la encriptación con la clave pública de Servicios CGES .

Por seguridad, se recomienda que este token tenga una caducidad relativamente baja (10 minutos). 

Tokens de operación y refresco

El token de autenticación será utilizado como parámetro para la llamada al método REST de acceso al sistema, que devolverá un token de operación y un token de refresco.


GET /accesos/token
Obtención de token


Por motivos de seguridad, la caducidad del token de operación está definida en 30 minutos , una vez transcurrido este tiempo, será necesario volver a realizar el acceso al sistema. Se podrá utilizar el token de refresco para hacer un relogin sin necesidad de volver a generar el token de autenticación durante las 48 horas posteriores a su generación, obteniéndose de nuevo un token de operación para otros 30 minutos.  Pasado el periodo de validez del token de refresco, será necesario volver a utilizar el token de autenticación. 

En caso de caducidad de token, el sistema devolverá el siguiente error:

{
     "descripcion" "000004" ,
     "errores" : [
        {
             "campo" "error" ,
             "mensaje" "Token caducado." ,
             "codigo" "000004" ,
             "visible" false  
        }
    ]
}

Liberación de tokens

Para invalidar cualquier token de operación o de refresco, puede hacer uso del método habilitado para tal fin.


DELETE /accesos/token
Liberación de token

Direccionamientos y claves públicas de ServiciosCGES

Apartado que lista las URLs de acceso y las claves públicas para cada uno de los entornos en los que la API está disponible.

Direccionamientos

En la siguiente tabla se muestra el direccionamiento de los servicios REST para cada entorno:


Claves públicas

A continuación se recogen las claves públicas de la aplicación de Servicios CGES para los diferentes entornos.

Las claves varían entre el entorno de Desarrollo y los entornos productivos.

Entorno

Clave pública

Desarrollo

{
"alg": "RS256",
"kty": "RSA",
"use": "enc",
"n": "x0WXUzVJ4ksWehHBV6_sD9BVeB40Kt9--PQAw5WBGSvyhRZbDYqQxdJYYswXA36p2_6Lc8R-B3d1Of4P7uLtkBW3NiHzuLexzFUNByxS-aU0mrkib6miEYRrFVu0eo-KCHTwXY34EWIi_vPyj8XD_Z2GQEXdpF6Fw8_q1Ls0SqbRqP2Gaz8EZw97FhnNjegTqGJGB0lqwA32ecgYi87G_MSgpqzUHML_T7upeNRrVT0qgOb4D29Tv3nfRO4RKwukDG5t8QE0eYdcKN3jqsvBukXhMs-h6STH-Ep1ExGHGOyKuyILlQ93JdQN74jz3EHcqnBvUdMfB5q119O3nXnqpQ",
"e": "AQAB"
}

Preproducción

Solicitar al Área de Servicios Horizontales

Producción

Solicitar al Área de Servicios Horizontales



  • Sin etiquetas