Api Token

Desde aqui podrás acceder a toda la información de la API para generar tokens y poder verificarlos.

Fichero WADL

Listado de Operaciones

Generar token:

Llamada: (POST) https://apis.dipucordoba.es/apitokenv2/api/sessions

Desde esta funcion podrás generar un token en formato JWT. Los parámetros que puede recibir es uno de los siguientes grupos de parámetros:

  • user y password: se usará para autenticar al usuario. Comprueba que el usuario existe en AD para obtener su email.
  • token: se trata del token de google obtenido por SSO
  • DNI y name: se debe indicar el dni del usuario, junto con el nombre completo para calcular el token. De igual manera se le podrá pasar los siguientes parámetros, si se está representando a una persona
    • cif: indica el NIF / CIF de la persona representada
    • razon Social: indica la razon social de la persona representada (si lo tuviese)
    • sistema: Indica el sistema utilizado para la autenticación. Los sistemas actuales son:
      • AFIRMA: Certificado reconocido de firma
      • EIDAS: Credencial europea
      • SEGSOC: Clave permanente
      • PIN24H: PIN24 Horas/li>
      • REFERE: Por referencia
      • Eprinsa: Por eprinsa
    • proveedor: Indica el proveedor de la autenticación. Actualmente sólo tiene valor cuando el token se genera desde la plataforma cl@ve. Valor: 'Cl@ve - Gobierno de España'
    • tipoCertificado: Indica el tipo de certificado que se ha usado durante la autenticación. Valores posibles:Persona física, Certificado de representación
    • ip: Indica la IP desde donde se ha conectado el usuario a modo informativo.
  • login y name: se debe indicar el login del AD del usuario, junto con el nombre completo para calcular el token
  • app: el valor debe ser uno de los valores posibles definidos en el fichero de configuración, en tal caso genera un token de aplicación

NUEVO en version 2: se le ha añadido un nuevo parámetro a los anteriores, que añade seguridad a la petición.

  • hash: (obligatorio) indica el hash calculado a partir de la siguiente formula:

    • $hash=md5($seed.$extra.date("d/m/Y")) donde:
    • $seed: Cadena única que caduca al finalizar el dia (0:00h). Se calcula llamando a apitoken/seed. Esta url sólo será accesible desde red interna, y al caducar la semilla, caducará tambien el token. Como es a las 0:00, no habrá problema de token caducados mientras se está escribiendo una noticia en el gestor, que suele llevar más tiempo.
    • $extra: Datos a mandar en formato json_encode del array de parámetros mandados.
    • date("d/m/Y"): Fecha actual.

Devuelve
  • Error: { "token" => null, "error_description" => "Mensaje del error" }
  • Éxito: { "result" => 1, "email" => "xxxx@eprinsa.es", "email_verified" => true, "typ" => "JWT", "alg" => "RS256", ... }

    Posibles campos devueltos en el mensaje de éxito:

    • dni: D.N.I. del usuario identificado por el token
    • name: nombre del usuario identificado por el token
    • app: identificador de la aplicación a la que corresponde el token
    • datosapp: objeto con datos interesantes para el manejo de la aplicación
    • citizenQAALevel: indica el nivel de de calidad con el que se autenticó el usuario.
    • cif: indica el NIF / CIF de la persona representada
    • razon Social: indica la razon social de la persona representada (si lo tuviese)

(NUEVO) Otras funcionalidades añadidas en versión 2:

  • Se usa el metodo de cifrado RS256 que no tiene vulnerabilidad actualmente, como tenia HS256. Esto va a impedir que se descifre el token por fuerza bruta.
  • Se va a realizar una validación por petición:
    • si la petición es por red interna, se da permiso de uso. IP: 10, 172
    • si no, se mira la variable HTTP-REFERER en la cabecera de la petición, y el token se generará para esta url.
    • La validación, de igual manera, se hará comprobación que la url referer de la petición es la misma que la url referer guardado en el token.
    • Se puede dar el caso que e3 llame a apiad, que a su vez llame a apiToken. En este caso, se coge HTTP_REFERER original, es decir, de apie3, porque apiad actua de puente entre apis.

Verificar Token

Llamada: (GET) https://apis.dipucordoba.es/apitokenv2/api/sessions?token=TOKEN_JWT

Desde esta función podrás verificar el token TOKEN_JWT generado previamente en la función anterior. Los parámetros que puede recibir son los siguientes:

  • token: se trata del token TOKEN_JWT generado previamente. Nota: no es el token de google, sino el que genera la propia API
  • jsonapi=1: Si se quiere obtener la infromación en formato jsonapi
Devuelve
  • Error: { "result" => 0, "error_description" => "Mensaje del error" }
  • Éxito:
    JSON:

     { "result" => 1, "email" => "xxxx@eprinsa.es", "email_verified" => true, "typ" => "JWT", "alg" => "HS256", ... }

    JSONAPI:
    {
      "data": {
          "type": "TokenUser",
          "id": "TOKEN",
          "attributes": {
              "id": "TOKEN",
              "typ": "JWT",
              "alg": "HS256",
              "jti": "4f1g23a12aa",
              "iss": "IDUSER",
              "aud": "http://www.eprinsa.es",
              "iat": 1549625181,
              "nbf": 1549625182,
              "exp": 1549711581,
              "uid": 1,
              "dni": null,
              "name": null,
              "citizenQAALevel": null,
              "result": "1",
              "description": "Token validado y verificado",
              "login": "IDUSER",
              "email_verified": true
          },
          "relationships": []
      }
    }

    Posibles campos devueltos en el mensaje de éxito:

    • dni: D.N.I. del usuario identificado por el token
    • name: nombre del usuario identificado por el token
    • app: identificador de la aplicación a la que corresponde el token
    • datosapp: objeto con datos interesantes para el manejo de la aplicación
    • citizenQAALevel: indica el nivel de de calidad con el que se autenticó el usuario.

Obtener Seed

Llamada: (GET) https://apis.dipucordoba.es/apitokenv2/seed

Desde esta función podrás obtener la semilla que se usara durante la generación del token. Esta semilla se cambiará todos los dias. No es necesario mandar ningun parámetro.

Devuelve
  • Error: { "result" => 0, "error_description" => "Mensaje del error" }
  • Éxito: JSONAPI con el formato

    {data: {type: "Seed",id: 1,attributes: {value: "l31tGvTbn30MpETlDUbx90WMXAfqAa7goOxM7AkXDYzA396omd2K06TnhE6ZOSuE"},relationships: [ ]}}

Obtener Hash

Llamada: (GET) https://apis.dipucordoba.es/apitokenv2/hash

Desde esta función podrás obtener un hash (md5) que se usará en la generación del token. Los parámetro son:

Parametros:
  • data: Son los datos en base64 para calcular el hash
Devuelve
  • Error: { "result" => 0, "error_description" => "Mensaje del error" }
  • Éxito: JSONAPI con el formato

    {data: {type: "Hash",id: 1,attributes: {hash: "00000000000000000000000000000000"},relationships: [ ]}}