Sistema di token più semplice per l'autenticazione e l'autorizzazione

1

Voglio creare uno script Python che accetti l'input da Vim e lo invii al mio sito web. Quindi in pratica voglio rendere Vim il mio editor di testo per articoli di blog.

Certo, ho bisogno di autenticarsi e autorizzare. Volevo semplicemente chiedere username e password. Il mio college mi ha chiesto perché non prendere i dati di accesso dal file. Ho risposto che non voglio salvare la password in testo normale. Mi ha detto di usare i token!

Quindi come si fa? Capisco che ho bisogno di generare un token casuale per utente e sapendo che permetterà a chiunque di accedere. Dovrebbe essere davvero strong e casuale, quindi nessuno può indovinarlo. C'è qualcos'altro? Sarà sicuro salvarlo nel file di testo?

Mi piacerebbe sapere come lo implementeresti nel modo più semplice possibile e sicuro. Anche alcuni link alla letteratura sarebbero buoni!

    
posta daGrevis 14.01.2013 - 14:05
fonte

2 risposte

2

Capisco che tu sia l'unica persona (o una delle poche) a utilizzare questo meccanismo:

se vuoi autenticare altri utenti della tua webapp, consulta la risposta di @ Martin, altrimenti:

il token è tecnicamente chiamato segreto condiviso . Funziona ed è sicuro (purché il segreto non sia condiviso con il mondo esterno, ad esempio leggibile dal web, ecc.).
salvarlo in un file di testo è sicuro se lo spazio di archiviazione è sicuro.

un altro modo molto semplice sarebbe autenticazione di base . dovrebbe essere inviato su ssl, però. vedi questa domanda per ulteriori discussioni sulla sua sicurezza implicazioni.

    
risposta data 15.01.2013 - 13:46
fonte
1

Anche se hai ancora bisogno di un modo per autenticare il tuo utente la prima volta (contro una password con hash), puoi quindi impostare un cookie sicuro che dimostrerà che il tuo utente è sempre lo stesso.

Per fare questo in modo sicuro, hai bisogno di un segreto sul lato server e di valori di cookie che abbiano il tempo di creazione, il nome utente e l'hash segreto insieme, in modo che quando l'utente ritorna per la successiva connessione HTTP puoi a) recuperare il nome utente e b) verificare che il cookie sia ancora valido e sicuro.

Questo è ciò che mod_auth_tkt implementa il modulo Apache, così come la piramide AuthTktAuthenticationPolicy classe e plone.app.session pacchetto .

Puoi dare un'occhiata al codice sorgente di questi ultimi due per vedere cosa fanno per creare e verificare questi cookie:

risposta data 14.01.2013 - 14:24
fonte

Leggi altre domande sui tag