Actualmente estoy desarrollando una aplicación web que ahora está compuesta de una interfaz que muestra e interactúa con los datos utilizando una API REST que hemos escrito. Lo único que alguna vez usará la API es nuestro sitio web front-end, y en algún momento una aplicación móvil que desarrollaremos.Seguridad para API REST "privada"
He leído mucho acerca de cómo OAuth es el mecanismo ideal para asegurar una API y en este punto estoy empezando a tener una buena comprensión de cómo funciona.
Mi pregunta es: dado que nunca otorgo acceso a mi API a un cliente externo, ¿es realmente necesario OAuth? ¿Hay alguna razón por la cual es ventajoso? Además, como el back-end es simplemente la API, no hay una puerta de enlace para que un usuario se autentique (como si estuvieras escribiendo una aplicación usando la API de Twitter, cuando un usuario se autentica, sería redirigido a la página de Twitter para otorgar acceso luego redirigido de regreso al cliente).
No estoy seguro de qué dirección tomar. Parece que debe haber algún enfoque a medio camino entre la autenticación HTTP y OAuth que sería apropiado para esta situación, pero no lo entiendo.
¿Cuál es la ventaja de utilizar OAuth? – brandonvvv
No tendrá que escribir el código de autenticación usted mismo :) y está bien probado y confiable. Con OAuth de 2 patas, solo necesitas compartir una sola clave privada entre tu servidor y la persona que llama, y cualquier fisgoneo no podrá descifrar cuál es esa clave (aunque es probable que desees ejecutar la conexión a través de SSL) . – jbowes
OK. Entonces la idea es procesar el inicio de sesión sobre la API usando el nombre de usuario y la contraseña, y una firma usando la clave privada, otorgar un token, y luego para futuras llamadas usar el token y la firma para el resto de la sesión. – brandonvvv