He creado una API web en ASP.NET que actúa como punto de entrada en una base de datos de SQL Server para los datos del informe. Este servicio tiene un punto final "token" que autentica a un usuario a través de la Identidad ASP y devuelve un acceso de 20 minutos y un token de actualización de 2 semanas.
Esta API solo debe ser accesible a través de nuestras propias aplicaciones y productos. Estaremos escribiendo una aplicación para Android, una aplicación para iOS y una aplicación web ASP.NET que se autenticará y obtendrá datos de esta API web descrita anteriormente. Seré responsable de la aplicación web del cliente ASP.NET y de la API. Estamos creando estas aplicaciones internamente para que nuestros clientes puedan iniciar sesión y usarlas. Ninguna tercera parte ajena a mi empresa llamará a nuestra API a través de ninguna de sus propias aplicaciones.
Para la aplicación web ASP.NET de mi cliente, la estoy escribiendo en ASP.NET MVC y en realidad no tiene una base de datos desde ahora, ya que se comunica con la API para todo.
Comencé con esto como una base, y funciona ... pero ahora necesito convertir este archivo HTML a una aplicación web ASP.NET en MVC y descubrir dónde y cómo almacenar el token de acceso y la actualización. tokens enlace /
Mis preguntas son:
-
Entiendo que necesitaré pasar el token de acceso en llamadas posteriores a la API para realizar operaciones CRUD. ¿Dónde debería hacer mi solicitud web para autenticar al usuario en la aplicación web al iniciar sesión ... desde el código C # detrás o JavaScript como en el tutorial mencionado anteriormente? Lo pregunto porque me doy cuenta de que necesitaré el token de acceso en mis llamadas JS Ajax, pero he oído que el token de actualización debe ser más "seguro" y ¿Llamar desde el código del servidor podría darme opciones más seguras de hacerlo?
-
¿Dónde almaceno el token de acceso? ¿En una cookie creada en JavaScript o en el servidor? En el almacenamiento local de JavaScript? ¿En una variable de sesión que pueda pasar a JavaScript tal vez?
-
¿Dónde almaceno el token de actualización? Necesitaré esto para renovar el token de acceso antes de que caduque. Busqué en Google hasta la muerte, pero no puedo encontrar una buena solución ASP.NET en línea que me diga dónde o cómo almacenar esto desde la perspectiva de mi aplicación web consumidora. ¿Una cookie creada desde el servidor, guardada en una base de datos SQL que utiliza la aplicación web, en una variable de sesión?
Necesito ayuda desesperadamente, y esto me está volviendo loco y me mantiene despierto por la noche. Espero que alguien pueda proporcionar un ejemplo completo y simple y describir completamente lo que necesito hacer.