Autenticación

Introducción

El objetivo es detallar el proceso de autenticación de los distintos clientes que desean consumir los servicios brindados por Federación Patronal Seguros.

Alcance

Esta documentación brinda especificaciones técnicas y funcionales para que los clientes de Federación Patronal Seguros habilitados puedan generar el token requerido para consumir aquellos servicios publicados en la API que requieran autenticación. Dicho token debe agregarse en el header de autorización de todos los request que se realicen a servicios que requieran autenticación.

Datos adicionales

Ambientes

Federación Patronal Seguros cuenta con dos ambientes en el que expone sus servicios, el ambiente productivo y el sandbox. Cada uno es accedido mediante distintas URLs.

  • Sandbox: corresponde al entorno de pruebas con el que cada cliente va a interactuar durante la etapa de desarrollo.
    https://api-sandbox.fedpat.com.ar/
  • Productivo: Antes de comenzar a trabajar con el ambiente productivo, se realizará un proceso de auditoría sobre los clientes para validar que la generación del token se realiza siguiendo los consejos sugeridos en el apartado “Seguridad”.
    https://api.fedpat.com.ar/
Clientes API

Para brindar acceso a los servicios de la API que requieran autenticación, Federación Patronal cuenta con un conjunto de clientes registrados, e identificados con claves únicas (CLIENT_ID/CLIENT_SECRET) que permiten controlar e identificar el origen de las peticiones recibidas. Cada cliente tendrá acceso a un conjunto de servicios limitado.
A cada cliente se le proveerán las credenciales necesarias para poder realizar el proceso de autenticación en forma correcta, utilizando un medio de comunicación seguro, que permita mantener la confidencialidad de los datos intercambiados.

Seguridad

Para poder consumir los servicios provistos por la API que se encuentran protegidos mediante un factor de autenticación, es necesario que previamente cada cliente implemente la obtención del token.

Cada petición que se realice sobre un recurso protegido deberá incluir un Bearer token en el header Authorization.

  Authorization: Bearer <token>
            
Requisitos

Para obtener dicho token, se utilizará el servicio “Generar token” explicado en el apartado Métodos. Es necesario que esta autenticación se realice directamente desde el lado del SERVIDOR, y NO desde el lado del cliente (JavaScript) dado que se intercambiarán datos sensibles entre cliente/servidor que, si quedan expuestos en el navegador del usuario, la identidad de los clientes puede verse comprometida.

Por esta razón, antes de pasar al ambiente productivo se llevará a cabo un proceso de auditoría sobre el código de los clientes, para verificar que las credenciales no quedan expuestas, y se garantiza la confidencialidad de estas en el proceso de autenticación. Por ejemplo: verificando que las credenciales del cliente no se encuentren almacenadas en el frontend del sitio web. En caso de incumplimiento, se dará de baja el cliente.

Métodos

  • Descripción: El Servicio permite la obtención de un token válido de acceso para la aplicación.
  • URL: https://[ambiente].fedpat.com.ar/oauth/token
    [ambiente]: api/api-sandbox
  • Method HTTP: POST
Requisitos
Authorization
  
  Type: Basic Auth*
  Username: Client_id
  Password: Client_secrect
  
  
Headers
Key Value
Content-type application/x-www-form-urlencoded
Body
Key Value
grant_type password
Username ******
password ******
* Basic Auth se compone por {{CLIENT_ID}}:{{CLIENT_SECRET}} cifrado en base64
Respuesta exitosa: objeto JSON
Campo Descripción Tipo de dato Obligatorio
access_token La cadena de token de acceso emitida por el servidor de autorización String Si
token_type El tipo de token que es solo la cadena “bearer” String Si
expires_in Duración del tiempo para el que se otorga el token de acceso. integer Si
Scope read /write String Si
Jti Identificador único String Si
Formato respuesta exitosa
  
  {
    "access_token": "String",
    "token_type": "String",
    "expires_in": integer,
    "scope": "String",
    "jti": "String"
  }
  
  
Respuesta fallida: objeto JSON
Campo Descripción Tipo de dato Obligatorio
Error Nombre del posible del error String Si
error_description Breve descripción del posible error String Si
Errores posiblesRespuesta fallida: objeto JSON
Error Descripción
invalid_request A la solicitud le falta un parámetro, por lo que el servidor no puede continuar con la solicitud. Esto también se puede devolver si la solicitud incluye un parámetro no compatible o repite un parámetro.
invalid_client La autenticación del cliente falló, si la solicitud contiene un ID de cliente o secreto no válido.
invalid_grant El código de autorización (o la contraseña del usuario para el tipo de concesión de contraseña) no es válido o caducó. Este también es el error que devolvería si la URL de redireccionamiento proporcionada en la concesión de autorización no coincide con la URL proporcionada en esta solicitud de token de acceso.
invalid_scope Para las solicitudes de token de acceso que incluyen un alcance (contraseña o concesiones de credenciales de cliente), este error indica un valor de alcance no válido en la solicitud
unauthorized_client Este cliente no está autorizado a usar el tipo de concesión solicitado. Por ejemplo, si se restringe qué aplicaciones pueden usar la concesión implícita, devolverá este error para las otras aplicaciones
unsupported_grant_type Si se solicita un tipo de concesión que el servidor de autorización no reconoce. Tenga en cuenta que los tipos de concesión desconocidos también usan este código de error específico en lugar de usar el invalid_request anterior
Formato respuesta fallida

  {
    "error": "String ",
    "error_description": "String"
  }