Sembra che il modello di sicurezza si adatti a progetti molto piccoli, ma probabilmente non è possibile scrivere tutte le password hash degli utenti registrati in security.py. Conoscete qualche esempio di potenziamento dell'autenticazione di Pyramid o vi sono dei vantaggi nel chiamare il sistema di sicurezza Pyramid nel mio database di informazioni sulla sicurezza?L'autenticazione/autorizzazione integrata di Pyramid può implementare complessi sistemi di sicurezza?
risposta
Non ho idea di quali siano le tue esigenze o cosa intendi per "aumentare la sicurezza", ma la politica di autenticazione di piramidi è molto flessibile. È necessario capire che non mantiene utenti e password ma fornisce semplicemente un meccanismo per ottenere un identificativo utente dalla richiesta in arrivo. Ad esempio, lo AuthTktAuthenticationPolicy tiene traccia dell'ID utente per cookie impostato con il metodo remember.
Quali informazioni significative derivano da tale ID utente sono totalmente a voi e sono specifiche dell'applicazione.
Quindi la domanda che si potrebbe desiderare è che la vostra applicazione può "aumentare la sicurezza".
Non riesco a mostrare il codice perché è proprietario ma ho bisogno di supportare openid, http auth e il tipico db backed user store sulla stessa applicazione, con la complicata aggiunta che gli utenti sono archiviati in diversi frammenti di database e il frammento non può essere determinato immediatamente. Ci vuole pochissimo codice per supportare questo.
Non penso che la dimensione del progetto sia correlata al modello di sicurezza. O vuoi un modello di sicurezza semplice o complesso. Entrambi possono essere applicati a progetti di qualsiasi dimensione. Uno dei punti di forza di Pyramid è la sua estensibilità.
Perché memorizzare le password con hash in security.py
? (Cioè, qui probabilmente ho frainteso) Se leggi questo sul codice di qualcuno, probabilmente è solo un esempio. Nelle app reali, li salvi in un sistema di archiviazione/persistenza di tua scelta.
Ancora una volta, non capisco cosa intendi con "ridimensionamento dell'autenticazione". La mia ipotesi è che si desidera alcuni esempi di lavoro:
- tutorial from the docs
- shootout application: piccolo e il buon esempio con le forme
- pyramid auth demo: complesso/granulare/a livello di riga permesso
- pyramid apex: 3rd auth parti (Google , twitter, ecc.) con velrus, forme ecc.
- pyramid registration: biblioteca incompiuta; Puoi rubare qualche idea da esso
Ho finito per creare qualcosa per me stesso che rende l'autenticazione un po 'più semplice se si utilizza MongoDB.
https://github.com/mosesn/mongauth
Non è integrato in piramide, ma ganci abbastanza facilmente. Tutto è abbastanza trasparente.
Wow! Bella sceneggiatura che hai ottenuto ... Semplice, ma funzionale.! – Augiwan
chi sta sostenendo la memorizzazione delle password in security.py? –
https://docs.pylonsproject.org/projects/pyramid/1.1/tutorials/wiki2/authorization.html ha una demo molto semplice con un {key, raw_password} dict in security.py – nnythm
Ah ok Vedo il tuo punto. Ma non è troppo lungo per qualcuno che abbia familiarità con Python per immaginare una ricerca di gruppo su un database o qualcos'altro? –