Vogliamo autenticare l'utente all'interno di una webapp (JavaScript / HTML all'interno del browser) in esecuzione su un tablet, ma vogliamo essere in grado di farlo quando il dispositivo è offline dalla rete. Mi rendo conto che non è già un ambiente super sicuro, ma non voglio renderlo meno sicuro con un metodo di autenticazione scadente.
L'ambiente è un'app Web che viene eseguita su iPad all'interno di una rete aziendale. Gli utenti prendono e condividono gli iPad (va bene) ma abbiamo bisogno di autenticare che l'utente corrente della webapp è valido, bloccando persone / personale casuali che potrebbero prendere il dispositivo. La connettività di rete non è al 100% e questo non può essere prontamente migliorato. Il nostro obiettivo è una maggiore convalida a fini di controllo rispetto al controllo di sicurezza, abbiamo bisogno di mostrare che l'utente X ha eseguito l'azione sull'iPad.
Autenticare quando siamo in rete è facile, inviare un pacchetto al server e ottenere una risposta sì / no. Tuttavia, se siamo offline, non possiamo farlo. Potrei scaricare tutti gli utenti e gli hash delle password sull'iPad, ma questa mi sembra una cattiva idea: ho appena esportato il file della password, mi sembra sbagliato.
L'idea successiva era una password separata online e offline, ma sembra troppo difficile per gli utenti. Abbiamo anche considerato di fidarsi del login e di rinviare la convalida fino a quando non siamo di nuovo online, ma questo ha problemi di business / applicazione. Attualmente, utilizziamo normalmente le normali password per l'app principale, ma utilizzando una password visiva su iPad, fondamentalmente due password ma presentate in modo diverso in modo che gli utenti non percepiscano la stessa cosa. Avere due password significa che possiamo avere diverse politiche, controlli e verifiche.
Ci sono modi migliori per farlo?