Autenticación del usuario y autorización de operaciones de consulta

Para que un usuario pueda interactuar con Fortress, es necesario que el mismo se autentique empleando 1 o 2 factores de autenticación (también llamado IdP: proveedor de identidad), según se determine en la configuración del sistema cliente original en Viafirma Fortress. Dependiendo de la configuración del cliente en Viafirma Fortress, fortress solicitará que el usuario se autentique contra uno o dos factores de autenticación de distinta categoría. Las categorías serán:

  • Algo que sé → Knowledge
  • Algo que tengo → Possession
  • Algo que soy → Inherence

Solicitud de autorización

Para consumir los servicios proporcionados por Viafirma Fortress es necesario que el mismo se autentique con 1 o 2 factores de autenticación. Dependiendo de la configuración asociada al cliente de Viafirma Fortress, Viafirma Fortress puede solicitar un factor de autenticación o por el contrario Fortress forzará a que el usuario se autentique contra dos factores de autenticación de distinta categoría.

Para ello, Viafirma Fortress ofrece una interfaz web, disponible en:

{viafirma_fortress_url}/oauth2/v1/auth

Donde:

Una vez que se accede a esta URL, Viafirma Fortress mostrará la pantalla que permite identificar a los usuarios mediante alguno de los factores de autenticación en los que dicho usuario esté enrolado dentro de Viafirma Fortress.

Esta URL recibe una serie de parámetros, que configuran y preparan la petición de autenticación y autorización:

{viafirma_fortress_url}/oauth2/v1/auth?
scope=profile|certificate|certificates&
state=&
redirect_uri={url_de retorno_definido_en_viafirma_fortress}&
response_type=code&
client_id={codigo_del_cliente_definido_en_viafirma_fortress}&
user_code={codigo_del_usuario_en_viafirma_fortress}
Parámetro Valor Descripción
scope profile / certificate / certificates profile: Para servicios asociado a la información personal del usuario. En la cabecera de la pantalla aparecerá el siguiente mensaje:
profile
certificate: Para servicios asociados al acceso, permite consultar la información de un certificado del usuario seleccionado. En la cabecera de la pantalla aparecerá el siguiente mensaje:
certificate
certificates: Para servicios asociados al acceso, permite consultar la información de todos los certificados del usuario seleccionado. En la cabecera de la pantalla aparecerá el siguiente mensaje:
certificates
state String Valor opcional, permite enviar un parámetro que será devuelto a la URL de retorno del cliente sin modificación alguna por parte de Viafirma Fortress
redirect_uri URL Debe coincidir con una de las URL de retorno definidas en Viafirma Fortress
response_type code El valor debe ser code para las aplicaciones web cliente
client_id Identificador del cliente Definido en Viafirma Fortress, identifica a la aplicación cliente que está realizado la petición
user_code Código de usuario Indica el usuario que debe autorizar la operación

Factores de autenticación

Viafirma Fortress, mediante los diferentes factores de autenticación en los que el usuario esté enrolado, deberá asegurar la identidad del usuario.

Los factores de autenticación activos se pueden determinar durante la instalación de Viafirma Fortress, modificando los valores de los atributos correspondientes, que siguen un patrón del tipo fortress.idp.{codigo_del_idp}.active (ver manual de instalación).

Selección factor de autenticación

Independientemente del Proveedor de Identidad seleccionado, en caso de éxito en la autenticación, se entiende que el usuario ha autorizado la operación y se devolverá el control a la aplicación cliente, redireccionando a la URL de retorno especificada en la configuración de la petición.

Para peticiones con scope de tipo certificate, una vez que el usuario se ha autenticado correctamente usando alguno de los factores de autenticación disponibles, se mostrará la lista de certificados del usuario (custodiados por Viafirma Fortress). Una vez que el usuario ha seleccionado uno de sus certificados, se devolverá el control a la aplicación cliente.

scopeCertificate

Proveedor de Identidad: Email

Se envía al email del usuario un código único, que deberá introducir en la pantalla de autorización una vez que lo reciba.

Token Email

Proveedor de Identidad: SMS

Se envía al teléfono móvil del usuario un SMS con un código único, que deberá introducir en la pantalla de autorización una vez que lo reciba.

SMS

Proveedor de Identidad: OTP

Es necesario disponer de la app (Android/IOS) que generará un código, actualizado cada cierto tiempo. El usuario deberá introducir el código en la pantalla de autorización antes de que el código expire.

OTP

Proveedor de Identidad: LDAP

Se solicitará la contraseña LDAP del usuario (la configuración del servicio LDAP se realiza durante la instalación de Viafirma Fortress).

LDAP

Proveedor de Identidad: PIN

Se solicitará el código PIN que se generó y envió por e-Mail al usuario cuando se le enroló en este sistema de identificación.

PIN

Proveedor de Identidad: Password

Se solicitará la password del usuario de Viafirma Fortress.

PASSWORD

Proveedor de Identidad: PUSH

Se solicitará un código al usuario enviado a través de una notificación PUSH a la app de su dispositivo móvil.

PUSH

Obteniendo la respuesta del proceso de autenticación/autorización

Una vez que el usuario ha autorizado la operación mediante una autenticación con alguno de los factores de autenticación de Viafirma Fortress si el primer factor de autenticación ha sido delegado en el sistema cliente o contra dos factores de autenticación en Viafirma Fortress, el control vuelve al sistema cliente.

Respuestas válidas

Si el usuario aprueba el acceso (autenticándose correctamente usando cualquiera de los factores de autenticación), entonces la redirección de la página de autorización contiene un código de autorización en uno de sus parámetros (concretamente en el parámetro code).

{redirect_uri}?state=&code={codigo_de_autorizacion}

Ejemplo:

https://example.com/response?state=&code=9a3fff39-079c-45ec-b263-7d80afb18161

Respuestas en caso de error

Si el usuario no aprueba el acceso (u ocurre cualquier error durante el proceso), la redirección de la página de autorización contendrá un código de error en el parámetro error:

{redirect_uri}?error={codigo_de_error}&state=

Ejemplo:

http://example.com/?error=access_denied&state=

Obtención del token de acceso

Una vez obtenido el código de autorización es necesario canjearlo por un token de acceso. Para ello se realiza una petición REST (método POST) a Viafirma Fortress:

Método: POST
URL: {viafirma_fortress_url}/oauth2/v1/token

Donde:

Parámetros:

Atributo Descripción
code Código de autorización obtenido a través de la página de autorización
client_id Código del sistema cliente (definido en la interfaz de administración de Viafirma Fortress)
client_secret Código secreto (client secret) del sistema cliente (definido en la interfaz de administración de Viafirma Fortress)
redirect_uri Cualquiera de las URL de retorno definidas como válidas para el sistema cliente (definidas en la interfaz de administración de Viafirma Fortress)
grant_type Este parámetro debe contener el valor authorization_code, ya que es ese tipo de token el que se está solicitando, salvo para obtener un token válido para el cliente, en cuyo caso deberemos emplear client_credentials

La repuesta a la petición será de tipo application/json, con el siguiente formato:

{
  "access_token": "1/fFAGRNJru1FTz70BzhT3Zg",
  "expires_in": 3920,
  "token_type": "Bearer",
  "user_code": "11111111H"
}

Si la solicitud de token está asociado al cliente, el resultado será

{
  "access_token": "1/fFAGRNJru1FTz70BzhT3Zg",
  "expires_in": 3920,
  "token_type": "Bearer"
}

Descripción de la respuesta:

Campo Descripción
access_token El token de acceso proporcionado por Viafirma Fortress
expires_in Tiempo de vida del token de acceso (en segundos). Para aquellas peticiones de autorización que se hicieron para un número indeterminado de firmas (esto es: un scope de tipo certificate y un valor de signatures con el valor "*"), este parámetro no vendrá informado ya que el token no expira
token_type Tipo de token retornado. El valor será siempre: Bearer
user_code (token de usuario) Código del usuario en Viafirma Fortress. El sistema cliente debe comprobar que coincide con el usuario de la petición de autorización
certificate Devuelve la información del certificado seleccionado en la solicitud de autorización si se ha indicado el valor 'certificate' en el parámetro scope

Acceso a las API

Una vez que se ha obtenido el token de acceso (access_token), la aplicación cliente puede acceder a los diferentes métodos del API que proporciona Viafirma Fortress enviando ese token en cada petición futura.

Dependiendo del scope seleccionado durante la petición de autorización se tendrá acceso a unas determinadas APIS:

results matching ""

    No results matching ""