Personal tools
Anonimi indesiderati? Tienili fuori con iw.rejectanonymous

Tu non puoi passare! ...spero

Sep 10, 2013

Anonimi indesiderati? Tienili fuori con iw.rejectanonymous

Hai un portale che vuoi mantenere privato e non vuoi perdere il senno tra workflows e permessi? Un semplice prodotto ti dà una mano a tenere gli anonimi fuori

Un caso d'uso tipico è lo sviluppo di una intranet accessibile anche all'esterno della rete interna.
Questo portale dovrà quindi essere accessibile solo dagli utenti del sito, e inibire la visualizzazione agli utenti anonimi.

Per fare ciò, ci sono di solito due alternative:

  • si inserisce un'autenticazione basic nel webserver che pubblica il sito
  • si personalizzano i vari workflow e rolemap per impedire azioni da parte degli anonimi.
La prima soluzione è la più scomoda, perché si obbligano gli utenti a memorizzarsi ulteriori username e password per poter accedere al sito.

La seconda soluzione, invece, è la più corretta, in quanto la gestione dei permessi e workflow di Plone permette un grado di personalizzazione molto ampio.
Bisogna però stare attenti ai vari stati del workflow (per esempio, anche se un documento è pubblicato non deve poter essere visibile agli anonimi) e all'ereditarietà (se ho una pagina pubblicata dentro a una cartella privata, non deve essere comunque visibile da chi non può accedere alla cartella).

Se il sito è privato, deve essere TUTTO privato

Una volta fatto questo e con il vostro workflow perfettamente testato e funzionante, potreste avere ancora dei problemi, perché in Plone ci sono diversi viewlet, template o portlet che possono essere visualizzati dagli anonimi senza problemi. Come per esempio la vista "folder_listing" o la pagina di ricerca e la sua relativa viewlet.

You shall not passSistemare tutti questi aspetti può rivelarsi un lavoro lungo e frustrante, ed è per questo che ci viene in soccorso un prodotto chiamato iw.rejectanonymous.

Questo prodotto non fa altro che aggiungere un flag nel pannello di controllo della sicurezza di Plone che permette di rendere il sito privato o meno.
Quando non è impostato come privato, si comporta come un normale sito Plone, mentre quando è "privato", gli anonimi vengono sempre indirizzati al form di login.

Esiste poi la possibilità di abilitare la navigazione di alcune sezioni del sito agli anonimi, aggiungendo delle eccezioni. Per maggiori informazioni, c'è scritto tutto nella documentazione su github.

Ovviamente il prodotto è anche rilasciato su pypi.

Stiamo sperimentando questo prodotto in una intranet simile a quella dell'esempio, e devo dire che ci ha risparmiato diversi mal di testa ed eccezioni che prima dovevamo gestire in altri modi.

L'immagine in testata è di mt2ri

Filed under: , , ,
comments powered by Disqus