Si el acceso a su API REST debe estar restringido, debe tratarlo como cualquier aplicación web. El uso de un token secreto fijo es una técnica de security through obscurity , que va en contra de los principios de seguridad aceptados como Principio de Kerckhoffs y la máxima de Shannon.
El mecanismo estándar para la autenticación en las API REST es una clave de API, que es un token largo aleatorio dado a los usuarios. La clave de la API actúa como un nombre de usuario y una contraseña, ya que es única y secreta.
Hay dos formas de proporcionar este tipo de autenticación:
- Envíe la clave de la API con cada solicitud y valide cada vez. Esto requiere menos código, pero significa que debe enviar su secreto en cada solicitud, lo que crea más riesgo.
- Envíe la clave de la API como parte de una solicitud de "inicio de sesión", luego devuelva un ID de sesión. Esa ID de sesión se convierte en el mecanismo de seguridad para el resto de la sesión, por lo que no tiene el problema de enviar la clave API cada vez. Después de que la sesión se agote, la clave de API debe enviarme de nuevo. Desafortunadamente, esto resulta en más código y más posibilidades de errores.
Como debería usar HTTPS para los métodos ambos de todos modos, elegiría la primera opción. La seguridad de transporte le permite evitar la modificación de las cargas útiles y mantiene en secreto la clave de su API.