Seguridad de la API web


Junto con la facilidad de las integraciones de API vienen las dificultades de garantizar la autenticación (AuthN) y la autorización (AuthZ) adecuadas. En un entorno multiinquilino, los controles de seguridad basados ​​en AuthN y AuthZ adecuados pueden ayudar a garantizar que el acceso a la API esté limitado a quienes lo necesitan (y tienen derecho a ello). Los esquemas de AuthN apropiados permiten a los productores (API o servicios) identificar correctamente a los consumidores (clientes o programas de llamada) y evaluar su nivel de acceso (AuthZ). En otras palabras, ¿puede un consumidor invocar un método particular (lógica de negocios) basado en las credenciales presentadas?

"Las fallas en el diseño de la interfaz están muy extendidas, desde el mundo de los criptoprocesadores a través de diversos sistemas integrados hasta el software antivirus y el propio sistema operativo". [1]

Los métodos anteriores proporcionan diferentes niveles de seguridad y facilidad de integración. A menudo, el método más sencillo de integración también ofrece el modelo de seguridad más débil.

En el método de cadenas estáticas, la persona que llama a la API o el cliente incrusta una cadena como token en la solicitud. Este método a menudo se conoce como autenticación básica . "Desde el punto de vista de la seguridad, la autenticación básica no es muy satisfactoria. Significa enviar la contraseña del usuario a través de la red en texto claro para cada página a la que se accede (a menos que se utilice un protocolo seguro de nivel inferior, como SSL , para cifrar todas las transacciones ). ). Por lo tanto, el usuario es muy vulnerable a cualquier rastreador de paquetes en la red". [3]

Cuando una API está protegida por un token dinámico, se inserta un nonce basado en el tiempo en el token. El token tiene un tiempo de vida (TTL) después del cual el cliente debe adquirir un nuevo token. El método API tiene un algoritmo de verificación de tiempo , y si el token caduca, la solicitud está prohibida. "Un ejemplo de dicho token es JSON Web Token . El reclamo" exp "(tiempo de vencimiento) identifica el tiempo de vencimiento en o después del cual el JWT NO DEBE aceptarse para su procesamiento". [4]

Este tipo de token se usa en sistemas de tres patas donde una aplicación necesita acceder a una API en nombre de un usuario. En lugar de revelar la identificación de usuario y la contraseña a la aplicación, un usuario otorga un token que encapsula el permiso de los usuarios para que la aplicación invoque la API.


Diagrama de bloques de autenticación básica