repoze.who.plugins.browserid è un plugin per l'autenticazione repoze.who via il progetto di Mozilla BrowserID:
& Nbsp; https: //browserid.org/
Attualmente supporta la verifica delle asserzioni BrowserID postandoli ai servizi browserid.org verificatore. Poiché il protocollo diventa più stabile crescerà la capacità di verificare asserzioni localmente.
La configurazione del plugin può essere effettuata dal file di configurazione standard di repoze.who in questo modo:
[Plugin: BrowserID]
uso = repoze.who.plugins.browserid: make_plugin
pubblico = www.mysite.com
rememberer_name = authtkt
[Plugin: authtkt]
uso = repoze.who.plugins.auth_tkt: make_plugin
secret = My Secret Special
[identificatori]
plugins = authtkt BrowserID
[autenticatori]
plugins = authtkt BrowserID
[sfidanti]
plugins = BrowserID
Si noti che abbiamo abbinato il plugin BrowserID con il plugin standard di AuthTkt in modo che possa ricordare di login dell'utente attraverso le richieste.
Personalizzazione
Le seguenti impostazioni possono essere specificate nel file di configurazione per personalizzare il comportamento del plugin:
& nbsp; il pubblico:
& Nbsp; un elenco separato da spazi di nomi host accettabili o modelli glob per l'affermazione pubblico BrowserID. Qualsiasi affermazione il cui pubblico non corrisponde a una voce della lista sarà respinta.
& Nbsp; È necessario specificare un valore per questa impostazione, dal momento che è parte integrante della sicurezza di BrowserID. Vedere la sezione Note di sicurezza sotto per maggiori dettagli.
& Nbsp; rememberer_name:
& Nbsp; Il nome di un altro plugin repoze.who che dovrebbe essere chiamato a ricordare / dimenticare l'autenticazione. Questo sarebbe tipicamente un'implementazione-cookie firmato, come il plugin auth_tkt built-in. Se unspecificed o Nessuno allora autenticazione non sarà ricordato.
& Nbsp; postback_url:
& Nbsp; L'URL al quale BrowserID credenziali deve essere inviato per la convalida. Il valore di default è si spera senza conflitti: /repoze.who.plugins.browserid.postback.
& Nbsp; assertion_field:
& Nbsp;
& Nbsp; Il nome del campo di modulo POST in cui trovare l'affermazione BrowserID. Il valore di default è "affermazione".
& Nbsp; came_from_field:
& Nbsp; Il nome del campo di modulo POST in cui trovare la pagina di riferimento, a cui l'utente verrà reindirizzato dopo l'elaborazione il login. Il valore di default è "came_from".
& Nbsp; csrf_field:
& Nbsp; Il nome del campo di modulo POST in cui trovare il token di protezione CSRF. Il valore di default è "csrf_token". Se impostato sulla stringa vuota, allora il controllo CSRF è disabilitato.
& Nbsp; csrf_cookie_name:
& Nbsp;
& Nbsp; Il nome del cookie in cui impostare e trovare il token di protezione CSRF. Il nome del cookie predefinito è "browserid_csrf_token". Se impostato sulla stringa vuota, allora il controllo CSRF è disabilitato.
& Nbsp; challenge_body:
& Nbsp; La posizione in cui trovare il codice HTML per la pagina di login, sia come riferimento pitone tratteggiata o un nome di file. La contenuta HTML può utilizzare la sintassi python interpolazione stringa per includere i dettagli della sfida, ad esempio, usare% (csrf_token) s per includere il token CSRF.
& Nbsp; verifier_url:
& Nbsp; L'URL del servizio verificatore BrowserID, a cui sarà inviato tutte le asserzioni per il controllo. Il valore predefinito è il verificatore browserid.org norma e dovrebbe essere adatto a tutti gli effetti.
& Nbsp; urlopen:
& Nbsp; Il nome pitone tratteggiata di un callable attuazione della stessa API come urllib.urlopen, che verrà utilizzato per accedere al servizio BrowserID verificatore. I utils valore predefinito: secure_urlopen che fa rigoroso certificato HTTPS controllo di default.
& nbsp; check_https:
& Nbsp; booleano che indica se rifiutare i tentativi di login su connessioni enencrypted. Il valore predefinito è falso.
& Nbsp; check_referer:
& Nbsp; booleano che indica se di respingere i tentativi di login in cui l'intestazione referer non corrisponde il pubblico previsto. L'impostazione predefinita è di effettuare questo controllo solo per le connessioni sicure.
Note di sicurezza
Protezione CSRF
Questo plugin cerca di fornire una certa protezione di base contro gli attacchi login-CSRF come descritto da Barth et. al. in "robuste difese di Cross-Site Request Forgery":
& Nbsp; http: //seclab.stanford.edu/websec/csrf/csrf.pdf
Nella terminologia della carta di cui sopra, che combina un nonce sessione indipendente con rigorosa referer controllo per le connessioni sicure. È possibile modificare la protezione regolando la "csrf_cookie_name", "check_referer" e impostazioni "check_https".
Audience Controllo
BrowserID utilizza la nozione di un "pubblico" per la protezione contro gli accessi rubati. Il pubblico lega una affermazione BrowserID a un host specifico, in modo che un attaccante non può raccogliere affermazioni su un sito e poi utilizzarli per accedere a un altro.
Questo plugin effettua il controllo di default rigorosa pubblico. È necessario fornire un elenco di stringhe pubblico accettabile quando si crea il plugin, e dovrebbero essere specifici per l'applicazione. Ad esempio, se l'applicazione serve le richieste su tre diversi nomi di host http://mysite.com, http://www.mysite.com e http://uploads.mysite.com, si potrebbe fornire:
[Plugin: BrowserID]
uso = repoze.who.plugins.browserid: make_plugin
pubblico = mysite.com * .mysite.com
Se l'applicazione non verifica rigorosa dell'intestazione Host HTTP, allora si può istruire il plugin per utilizzare l'intestazione host come il pubblico lasciando l'elenco vuoto:
[Plugin: BrowserID]
uso = repoze.who.plugins.browserid: make_plugin
Udienze =
Questo non è il comportamento di default in quanto può essere insicuro su alcuni sistemi
Cosa c'è di nuovo in questa versione:.
- Fix JavaScript per utilizzare navigator.id.get () al posto del navigator.id.getVerifiedEmail deprecato.
Cosa c'è di nuovo nella versione 0.4.0:.
- Migrazione da PyVEP a PyBrowserID
Cosa c'è di nuovo nella versione 0.3.0:
- Aggiornamento per API compatibilità con PyVEP & gt; = 0,3. 0.
Cosa c'è di nuovo nella versione 0.2.1:
- Aggiornamento per API compatibilità con PyVEP & gt; = 0.2. 0.
Cosa c'è di nuovo nella versione 0.2.0:
- codice di verifica refactoring in una libreria standand-alone nome & quot;. PyVEP & quot ;, che ora è una dipendenza
Requisiti :
- Python
I commenti non trovato