En este artículo se describe como acceder a un servicio adicional y no contemplado en el estándar de OpenID para poder descargarse el QR de identificación, si no se usa el browser automático ofrecido por B-FY.
En la llamada de petición de identificación de OpenID, se ejecuta una ventana emergente en la que el usuario de identifica. Esta ventana se ejecuta desde B-FY independientemente. Si se desea desde el cliente mostrar ese QR en una ventana propia, se ha creado un servicio que permite descargar este QR y mostrarlo al usuario. El flujo general de identificación es el mismo, que el descrito en la integración de B-FY con OpenID.
Este servicio descarga en QR de una identificación en curso, esto significa, que, para poder descargar el QR, el cliente primero ha de iniciar una petición de identificación por OpenID. Con esto genera una operación nueva en OpenID en B-FY, donde normalmente se ejecutaría la ventana emergente.
Esta operación tiene un timeout general y un timeout específico:
- Timeout general- Cada operación de OpenID tiene una validez de 3 minutos. A los 3 minutos se ha de generar otra operación de OpenID con un nuevo state, generándose todos los elementos necesarios detrás
- Timeout de QR- Por motivos de seguridad, el QR se genera dinámicamente y cambia cada 60 segundos. Es decir, que, tras generar la operación de identificación, el QR a mostrar al usuario durará 60 segundos. Pasado este tiempo se ha de mostrar el nuevo QR al usuario para poder completar la operación.
El servicio del QR está ligado a la petición de OpenID, es decir que no funciona autónomamente. Para la integración de este servicio, se ha de realizar la integración con identificación de OpenID. Cuando esta operación esté integrada, se puede proceder a integrar la descarga del QR. La descarga del QR sin una operación activa de OpenID no podrá operar.
Su ejecución se ha de realizar en el mismo entorno en el que se ha ejecutado la llamada a OpenID. Normalmente desde un navegador implica que se lance la petición de descarga QR desde el mismo navegador que ha lanzado la petición de identificación.
Para poder consumir este servicio, se han de seguir los siguientes pasos:
- Iniciar una operación de OpenID con el cliente de OpenID asignado siguiendo la guía de OpenID de B-fy (https://we.tl/t-45cDnG9ZIv). [Se ha de tener en cuenta las necesidades para la generación del state en la llamada de OpenID]
- https://is.sb.biocryptology.net/V1/auth?response_type=code&client_id={client_id}&scope=openid%20profile%20email%20phone%20spec_data&redirect_uri={url_callback}&state={state}
- La ejecución de esta llamada ha de ser realizada con un navegador, para que mantenga la sesión iniciada. Por navegador nos referimos a un elemento de programación del entorno del cliente que sea capaz de interpretar htmly javascript. Este elemento, ha de permanecer “activo” mientras dure la operación de identificación.
- Llamar a la petición con el parámetro de clientid y state utilizados en la llamada de OpenID inicial.
- https://is.sb.biocryptology.net/V1/qr?client_id= {client_id} &response_type=txt&state={state}
- Response_type- permite descargar el QR en formato texto o en base 64
- “txt" - se recibe el código del QR en formato texto. Se ha de implementar un QR que muestre este código. De esta manera se puede personalizar la creación del QR (diseño, color, morfología, etc).
- “img”- Se obtiene el QR en formato imagen codificado en base64
- Response_type- permite descargar el QR en formato texto o en base 64
- La petición que se realiza de este endpoint ha de realizarse con la misma cookie que se ha generado en la llamada del paso 1 (sobre el dominio invocado).
- https://is.sb.biocryptology.net/V1/qr?client_id= {client_id} &response_type=txt&state={state}
- Se mostrará el código QR en formato seleccionado
- Este código QR será escaneado por el usuario con su app para proceder a la validación.
- Al terminarse la identificación y si esta es correcta, el cliente recibirá los datos del usuario por OpenID en la dirección estándar de callback configurada en OpenID.