Queremos autenticar al usuario dentro de una aplicación web (JavaScript / HTML dentro del navegador) que se ejecuta en una tableta, pero queremos poder hacer esto cuando el dispositivo está fuera de la red. Me doy cuenta de que este entorno ya no es muy seguro, pero no quiero hacerlo menos seguro con un método de autenticación deficiente.
El entorno es una aplicación web que se ejecuta en iPads dentro de una red corporativa. Los usuarios toman y comparten iPads (eso está bien) pero necesitamos autenticar que el usuario actual de la aplicación web es válido, bloqueando a personas / personal aleatorias que puedan recoger el dispositivo. La conectividad de red no es del 100% y esto no se puede mejorar fácilmente. Nuestro objetivo es más validación para fines de auditoría que control de seguridad, necesitamos mostrar que el usuario X realizó la acción en el iPad.
La autenticación cuando estamos en la red es fácil, envíe un paquete al servidor y obtenga una respuesta de sí / no. Sin embargo, si estamos fuera de línea no podemos hacer eso. Podría descargar todos los usuarios y los hashes de contraseña en el iPad, pero parece una mala idea. Acabo de exportar el archivo de contraseñas, pero me parece mal.
La siguiente idea fue contraseñas separadas en línea y fuera de línea, pero eso parece demasiado difícil para los usuarios. También consideramos confiar en el inicio de sesión y aplazar la validación hasta que volvamos a estar en línea, pero eso tiene problemas de negocios / aplicaciones. Actualmente, utilizamos contraseñas normales para la aplicación principal, pero usando una contraseña visual en iPads, básicamente dos contraseñas pero presentadas de manera diferente para que los usuarios no perciban que es la misma. Tener dos contraseñas significa que podemos tener diferentes políticas, controles y auditorías.
¿Hay alguna forma mejor de hacer esto?