Ho una base clienti esistente. Un cliente ha appuntamenti. Al momento non possono accedere o modificare i loro appuntamenti senza contattarmi direttamente.
Voglio offrire loro un modo per accedere e modificare i loro appuntamenti imminenti, con il minor dispendio possibile (maggiore impegno per il cliente significa meno possibilità che lo usino e meno profitti).
Il mio pensiero è questo: generare un UUID (come "in modo sicuro casuale" il più possibile) e inviare loro un SMS con le istruzioni per l'installazione di un'app (Android / iOS) e un URL dell'app associato (app: // UUID).
Quando si apre l'app con questo URL, esso memorizza l'UUID e lo usa per fare richieste attraverso l'app al mio servizio web con HTTPS che poi recupera gli appuntamenti e potenzialmente cambia i loro appuntamenti (questa è l'unica operazione di "scrittura").
Dato che l'app non sarà disponibile attraverso un normale browser web, penso che fornire l'UUID in un app-URL impedirà alle persone di "lasciare" il proprio URL ovunque in browser casuali, dovranno solo utilizzare URL una volta e controllo che tutte le richieste di servizi Web vengono eseguite tramite l'app su HTTPS in modo che l'UUID non venga versato in questo modo.
Mentre sto pensando di rendere questo UUID "duraturo per sempre", aggiungerò un'opzione per i clienti per segnalare il loro ID come perso e per richiedere un nuovo ID (invalidando il vecchio).
Dato questo schema, penso che:
-
Perdere il telefono significa perdere la tua identità (memorizzata nell'app)
-
Inoltrare / perdere SMS / URL significa perdere la tua identità (non dovrebbe essere richiesto più che per l'apertura iniziale della app per salvare l'identità, ma non mi aspetto che la maggior parte delle persone si preoccupi di cancellarla anche se detto a)
-
Debole se UUID può essere indovinato
Quali sono le insidie e gli scenari di sicurezza a cui non ho pensato? Tieni presente che la facilità d'uso per i clienti è importante (preferibilmente non riempire nulla / molto), e mentre l'informazione è considerata privata non è un valore molto alto.
Commenti sull'utilizzo di UN / PW:
Poiché esiste una base di clienti, ho bisogno di sapere quale cliente ha il login. Sto pensando che o avrebbero dovuto crearlo da soli in ufficio (cosa che vorrei evitare di avere il minimo di input possibile), o dare loro qualche UN / PW generato che possano usare (ma poi di nuovo I lo sto distribuendo), oppure lo creano online e in qualche modo forniscono abbastanza informazioni per identificarsi e connettersi.
In generale mi piacerebbe qualche schema in cui il punto di partenza è che possono identificarsi senza problemi date alcune informazioni che poi conosco sono loro. Sono aperto a suggerimenti perché spero di trarre da pochissime informazioni.