Questo sembra essere un problema ricorrente per me poiché mi sembra di gravitare attorno alle applicazioni mobili negli ultimi anni. Voglio autenticare e autorizzare utenti mobili oltre agli utenti web. Ho bisogno di renderlo abbastanza trasparente in modo che gli utenti possano facilitare l'accesso a un account Web senza causare interruzioni ai propri dati. Voglio che la soluzione sia architettonica in argomento, non specifica per qualsiasi lingua/framework.Architettura per autenticazione/autorizzazione di utenti mobili e Web
Requisiti/Assunzioni
- utenti mobili devono essere in grado di utilizzare l'applicazione nativa, senza un account di accesso, anche per contribuire contenuti (marcatura preferiti, caricare foto, ecc).
- L'utente mobile deve essere autenticato in modo sicuro e univoco per il servizio Web anche senza specificare le credenziali dell'account.
- L'utente mobile può disporre di più dispositivi, che non saranno a conoscenza l'uno dell'altro.
- L'utente mobile deve essere in grado di registrarsi/accedere, che dovrebbe inserire qualsiasi contenuto nella proprietà dell'account. Questa "sincronizzazione" dovrebbe verificarsi con ogni account che viene successivamente registrato.
- Non importa se è stato creato un account su dispositivi mobili o sul Web.
Architetture Considerato
- NO CAMICIA, niente scarpe, NO LOGIN = privi di contributo. Richiede l'accesso per fornire contenuto di qualsiasi tipo. Ciò impedisce la necessità di "sincronizzare" gli account dispositivo con un account principale. Richiede semplicemente un singolo nome utente/password + token per consentire ai dispositivi di accedere. Oggetti server: Utente, Ruolo
- Autenticazione multi-dispositivo. Il server negozia con il dispositivo e fornisce le credenziali memorizzate dal dispositivo. Ogni dispositivo si auto-autentica ed è associato a un account anonimo fino a quando non si verifica Register/Login. Se il registro si verifica, l'account anonimo viene convertito in un account noto. Se si verifica l'accesso, il contenuto dell'account anonimo viene spostato su un account noto e quindi gettato via. I dispositivi che perdono i dettagli dell'autocertificazione riceveranno nuovi dettagli di autenticazione e il precedente account anonimo verrà abbandonato (e quindi si spera in seguito gettato via) e non ripristinabile poiché non è mai stato convertito in un account noto. Oggetti server: Utente, Ruolo, Dispositivo
Quale pensi sia una buona soluzione? Uno di questi o qualcos'altro?
Mi piace molto la tua linea di pensiero. Non sono sicuro che illustri davvero tecniche comuni per affrontare questo particolare problema, ma sono molto grato della tua risposta. (Nota che ho letto questa risposta nel 2010, ma mi sono sentito in dovere di farti sapere ora che è stato apprezzato e utile) –