Cómo construir una API privada para mi aplicación

Para autenticar a un usuario, puede tener sesiones simples.

Los JWT también son buenas opciones, pero están destinados a las API.

Si desea mantener su API privada, hay dos formas:

  1. Deje que sea privado y no hay un esquema de autenticación para acceder a la API que no sea la sesión del usuario. Como el usuario es autenticación y su sesión existe, se permite el acceso a la API.
  2. Cree cualquier esquema de autenticación y autorización sobre sus API como OAuth, JWT, API Keys, etc. y genere uno solo para su aplicación y no genere para otros.

Mientras crea API, recuerde verificar el estado de autenticación antes de realizar cualquier operación en todas y cada una de las llamadas API. Esto salvará su API del acceso no autorizado. Y si su API está a salvo del acceso no autorizado, es privada.

Otras API de diferentes proveedores como Facebook, Twitter, etc. también permiten usar API en sus términos y para eso le proporcionan las claves y tokens necesarios para hacerlo. Y lo validan en todas y cada una de las llamadas. Si no es válido, no podrá acceder a él. Sigue el mismo enfoque.

Ser privado tiene diferentes significados, como que no quieres que nadie se entere o no quieres que nadie acceda y lo use. El primer caso es muy difícil de lograr porque si los usuarios van a usar su aplicación, algunos intentarán saber sobre su funcionamiento interno. Para el segundo, he explicado anteriormente.

Mira estos enlaces [1] [2]

Notas al pie

[1] Asegurar una API JSON tranquila con autenticación JWT en GO

[2] Cómo construir una aplicación Laravel con tecnología JWT solo API

Dices “aplicación”, así que voy a asumir que es una pieza de software que se ejecuta en un dispositivo cliente sobre el que no tienes control.

Como se trata de un dispositivo cliente, no puede utilizar comprobaciones de IP simples (como podría hacerlo con un servidor que utiliza su API).

En su lugar, tendrá que confiar en algo que el cliente le envíe para verificar que en realidad es su aplicación.

Aquí hay algunas ideas;

  • Cifrar datos e incluir una clave.
  • Cifre los datos e incluya la clave en función del tiempo y la marca de tiempo, confirma el servidor.
  • Autenticación de usuario (si corresponde).
  • Rotación de claves después de la autenticación inicial

Nunca he tenido que resolver este problema, por lo que estas ideas están fuera de mi alcance.

More Interesting

Después de crear una aplicación web, ¿qué necesita para seguir actualizando?

¿Cuál es el marco subyacente o qué tecnología se utiliza para construir WhatsApp Web?

¿En qué piensa y utilizaría este servicio web?

Con marcos como AngularJS, KnockoutJS y EmberJS cada vez más utilizados, ¿las aplicaciones de una sola página (SPA) son realmente el futuro de las aplicaciones web? ¿Tiene sentido construir un sitio web / portal web bastante grande como un SPA?

¿Cuál es la mejor manera para que los estudiantes de secundaria sin conocimientos de programación creen sus propias aplicaciones?

¿Cuál es la mejor aplicación de iPhone para realizar un seguimiento de los principales deportes?

¿Cuánto mejor es AngularJS para crear una aplicación web?

¿Cuál es el mejor sitio y / o aplicación para iPhone para rastrear la colección de juegos / piezas LEGO de mi hijo?

¿Cómo las grandes aplicaciones web como Quora estructuran su sitio y su código para ser utilizados en múltiples miembros del equipo?

¿Qué enfoque de prueba sigues al probar la aplicación web?

Cómo construir una gran aplicación web sin experiencia

¿Qué herramienta en línea puedo usar para descubrir cómo mejorar la usabilidad de mi página de inicio?

¿El futuro de PHP es más brillante que JSP y ASP debido a la política de código abierto que hace que cada vez más marcos estén disponibles para desarrollar aplicaciones web sostenibles? ¿Crees que en el futuro, PHP superará la necesidad de ASP y JSP?

¿Convertir una Lenovo Y50-70 en un Hackintosh con 3 particiones (Windows, OS X y Linux Ubuntu) sería una buena idea para el desarrollo de software y web?

¿Cómo mixapp puede servir un archivo que se está cargando?