Drop in servizio per gestione account, autenticazione, identità?

3

Sto costruendo un'app per Android e un set associato di servizi Web per caricare / scaricare dati. Ho bisogno di una soluzione di base (senza fronzoli) per la gestione degli account (registrazione, accesso, disconnessione, verifica credenziali / token).

Quali soluzioni open source / di terze parti esistono per questo scenario?

Ho bisogno di:

  • crea un nuovo account db basato su un salt
  • semplice servizio web per creare un nuovo account
  • semplice servizio web per autenticare le credenziali fornite e restituire una sorta di token

È tutto, posso cavarmela senza l'attivazione e-mail o la reimpostazione della password per ora.

E quindi oltre la semplice gestione degli account, avrò bisogno di una sorta di autenticazione basata su "token" per un servizio web.

Esistono componenti pronti all'uso per questo? Dovrei semplicemente usare un'app django o rotaia 'vuota' per fare questo? Sembra strano che tutti stiano facendo CREATE TABLE user_accounts ...

Pensieri?

Grazie.

    
posta Mike Repass 01.10.2012 - 20:36
fonte

2 risposte

2

Ecco dove sono atterrato dopo due giorni di hacking. Accolgo con favore qualsiasi commento o critica. Se identificherai un difetto funzionale fondamentale o di sicurezza con questo approccio, ti pagherò abbastanza soldi per una libbra di caffè o sei confezioni di birra.

Ho selezionato Django come il mio 'stack web moderno' per una piattaforma di base. Lo sfrutterò per sicurezza, account, sessione e gestione delle password. Io con entusiasmo rinvio delle funzionalità sensibili alla sicurezza a Django (ad esempio, seguendo le convenzioni ove possibile). Non mi sottraggo alla responsabilità per la sicurezza, ma credo che il consumo informato di un framework controllato dal settore sia intrinsecamente più sicuro rispetto al proprio. Ho selezionato Django principalmente in base alla familiarità e alla preferenza per Python, oltre alla maturità del framework.

Da subito, Django ha un grande supporto per la gestione e l'autenticazione degli account. Di particolare valore è la grande interfaccia di amministrazione di Django che consente a un superutente di reimpostare le password, disabilitare gli account, ecc. Questo è un valore enorme imho.

Per supportare la registrazione e la gestione del ciclo di vita dell'account (reimpostazione della password, ecc.), sono andato con il modulo di registrazione di django:

link

Questa sembra una libreria molto matura e controllata con una grande documentazione. Non include non modelli di moduli di base, ma ho trovato un buon set qui che ho personalizzato:

link

Questo mi ha permesso di utilizzare una soluzione completa per la gestione degli account per l'utilizzo del web, ma (come detto sopra) ho bisogno di una soluzione basata su API per un'app mobile. Non voglio mantenere la password dell'utente localmente sul telefono e preferirei evitare di gestire i cookie di sessione nelle mie chiamate API (un approccio token è superiore all'imho). Ho scoperto questo modulo:

link

Che funziona alla grande. L'unica cosa che mancava a questo punto era un'API per la registrazione programmatica di nuovi account dall'applicazione mobile nativa. L'ho codificato io stesso.

Per farla breve, ho il seguente lavoro (come vanilla-Django possibile):

  • autenticazione completa degli account e gestione del ciclo di vita dall'autore di Django
  • registrazione web completa dell'account da registrazione django
  • alcuni modelli di interfaccia utente primitivi, ma funzionali, di django-registration-defaults
  • sicurezza basata su token per chiamate API mobili tramite django-tokenapi
  • una speciale API one-off per la registrazione di nuovi account all'interno dell'app mobile

Sembra funzionare ...

    
risposta data 03.10.2012 - 06:33
fonte
0

Per mancanza di requisiti più specifici, inizierei selezionando uno stack Web moderno con cui hai familiarità e utilizzando il suo back-end di autenticazione integrato. Potrebbe essere necessario eseguire alcuni servizi in anticipo per gestire alcuni aspetti, ma dovresti essere in grado di evitare di creare un sistema di gestione degli utenti sicuro.

Ricorda inoltre che mentre l'autenticazione di base http non è la risposta perfetta, http basic auth su ssl è un'alternativa ragionevole finché non hai qualcosa che valga la pena rubare.

    
risposta data 01.10.2012 - 21:00
fonte

Leggi altre domande sui tag