Autenticación y Autorización de acceso al API

Es importante señalar que REST no implementa un mecanismo de seguridad por sí mismo. Si no que depende de los mecanismos estándar de HTTP, tales como la autenticación “Basic” o “Digest”. Toda petición realizada al API se debe realizar sobre HTTPS, como mecanismo para reducir las vulnerabilidades “man in the middle”.

Particularmente para este API, se utilizará un estándar de la industria denominado OpenIDConnect sobre protocolo OAuth2. Ya que este mecanismo se ha convertido en el más seguro y utilizado a nivel de la industria.

Este mecanismo, permite además de resolver los temas de autenticación, también permite implementar autorización para el uso de los recursos.

Es importante señalar que Evolution ya cuenta con un servidor de identidades basado en OpenIDConnect, actualmente en uso para la App móvil y para el Evolution, por lo que su adaptación al API se considera natural y con muy poca complejidad.

Autenticación - IdentityServer4 (IDS4)

Este es el nombre del producto que está disponible para gestionar la autenticación de los usuarios que acdeden a Evolution y sus productos complementarios.

El objetivo de IdentityServer4 es proporcionar tokens JWT, que el API interpreta y que le dan el acceso a los diferentes recursos.

Dado que el acceso a los recursos de evolution está asegurado por el mecanismo de seguridad de accesos y contenido de Evolution, se requiere que el token generado se haga en nombre de un usuario en particular. De esta manera a ese usuario se le pueden configurar los permisos que debe tener al acceder al API.

Por lo tanto IDS4 se encargará de la autenticación y Evolution de la autorización a través del mecanismo de roles ya existente.

Para ver más información sobre IdentityServer4 dirígase a:

https://identityserver4.readthedocs.io

Autorización

Advertencia
Aún no se ha determinado cómo se implementará

La autorización se realiza a través de la opción "Permisos de EvoConnect" dentro del área Seguridad de Evolution.

En esta pantalla se permite la asignación de los endpoints o recursos autorizados a un rol de seguridad. Con esto se garantiza que un usuario que pertenece a ese rol, solamente pueda acceder a los endpoints que le han sido autorizados.

Asimismo, se deberá especificar la seguridad de contenido aplicable al usuario que pertenece al rol configurado.

Para las opciones en donde el usuario puede ver a sus subalternos y/o a sí mismo, se aplicará la seguridad de jerarquía que se aplica normalmente a los usuarios en Evolution.

Comunicación entre aplicaciones

Hay casos en donde la comunicación se hará entre una aplicación y el API, a diferencia del punto anterior en donde se asume que la comunicación se hará impersonando a un usuario.

Para estos casos, se puede generar un token que permite que se realice la comunicación entre las aplicaciones. Para estos casos, el consumidor del API, podrá realizar acciones que no necesiten de la información personal de un usuario. Esto significa que podrá insertar entidades, pero no podrá realizar autorizaciones del flujo o no podrá acceder a recursos que requieren aplicar seguridad de contenido.

Advertencia
Falta determinar la lista de endpoints que se podrán acceder en esta modalidad.

¿Es útil esta información?

En este artículo