Bookmark and Share
Document Actions

Implementare la Sicurezza in Zope

Up one level
Ora vedrete come funziona (e come modificare) i meccanismi che consentono agli utenti di accedere alle risorse del vostro portale.

Zope ha un'architettura per la gestione della sicurezza molto potente e granulare, e Plone, naturalmente, eredita questa struttura. Questo capitolo mostra come le impostazioni sulla sicurezza vengano gestite nell'application server Zope. La maggior parte dei concetti in questo capitolo si riferisce agli utenti Zope e alla gestione dei permessi, ma come avete visto precedentemente nella sezione "Gestione di utenti e permessi", è inoltre possibile gestire gli utenti, gruppi e autorizzazioni tramite l'interfaccia Plone. Se dovete lavorare con impostazioni semplici, potete sempre lavorare a livello di Plone e usare i suoi strumenti per la gestione degli utenti, la sicurezza e le impostazioni di autorizzazione invece di lavorare nella ZMI. Questo capitolo comprende anche una sezione legata alla sicurezza: i workflow in Plone.
I workflow vi permettono di definire comportamenti diversi per i vostri oggetti in diversi stati logici. In particolare, è possibile modificare le impostazioni sui permessi per ogni stato logico. È possibile gestire le autorizzazioni degli utenti  revisori, generare documenti PDF, visualizzare e modificare un elemento o solo parti di esso, e così via. In Plone, è possibile creare un workflow molto semplice o costruire sistemi complessi. Questa è una caratteristica molto importante per un'applicazione web, perché permette alle persone con ruoli diversi di interagire bene tra di loro. A questo proposito, Plone è dotato di una serie di workflow ben collaudati disponibili come impostazione predefinita per i casi di uso comune. Per esempio, con un paio di clic, è possibile convertire una sezione del portale in una sezione riservata o creare una rete Intranet. È possibile anche associare workflow personalizzati ai vostri oggetti, con diversi funzionamenti e impostazioni di sicurezza per ogni stato.

Implementazione della sicurezza in Zope

Questi sono i concetti principali per la gestione della sicurezza di Zope:

  •     Autorizzazioni
  •     Ruoli
  •     Utenti
  •     Gruppi

Abbiamo trattato questi concetti nella sezione "Gestione di utenti e permessi". Fondamentalmente, gli utenti possono avere uno o più ruoli, e i ruoli possono essere assegnati di default o "acquisiti" da un contesto particolare (ad esempio, la concessione di privilegi più elevati in alcune cartelle). I ruoli possono anche essere concessi ad un gruppo particolare, in modo che quando un utente diventa un membro di questo gruppo, questo utente “acquisisca" i ruoli assegnati al gruppo. In questo modo, i ruoli e i gruppi sono utilizzati per raggruppare utenti simili in modo da definire le configurazioni di sicurezza una volta per ogni gruppo o ruolo, invece di impostare questa configurazione per ogni utente di un certo tipo. Il sistema di sicurezza controlla se un utente può eseguire alcune operazioni controllando le autorizzazioni. Per ogni ruolo, è possibile assegnare uno o più autorizzazioni che concedono o tolgono la capacità di eseguire operazioni specifiche.Cominciamo con la scheda Security nella radice della ZMI in modo che possiate vedere come gestire le impostazioni di sicurezza. La Figura 7-1 mostra solo una piccola parte del pannello che appare, se ci si trova nella radice di Zope  (http://localhost:8080/manage).

Security ZMI

Figura 7-1. Parte delle impostazioni di sicurezza in Zope che apparirà cliccando sulla scheda Security della ZMI.

Come potete vedere, molti permessi sono disponibili di default: sono elencati sulla sinistra.Se scegliete la scheda Security per il vostro sito Plone (invece della radice di Zope), si possono vedere i ruoli disponibili, come illustrato nella Figura 7-2. Questi sono i ruoli che vengono creati di default in Plone.È possibile concedere l'autorizzazione ad uno o più ruoli, basta selezionare la casella nella colonna e riga appropriate.

Nota: le autorizzazioni sono contestuali, significa cioè che è possibile, ad esempio, concedere un permesso nella cartella principale di Zope, e in un'altra cartella è possibile ignorare il permesso. In questo modo, potete creare facilmente diverse aree con diversi permessi.

impostazioni Security

Figura 7-2. Parte delle impostazioni Security per il vostro sito Plone.

Aggiungere nuovi ruoli

Potete aggiungere nuovi ruoli direttamente nella scheda Security. Nel campo “User defined roles” nella parte inferiore della pagina, inserite un nome per il nuovo ruolo, e fate clic sul pulsante Add Role, come mostrato nella Figura 7-3.

Aggiungere nuovo ruolo

Figura 7‐3. Aggiungere un nuovo ruolo. Ad esempio, si potrebbe creare un nuovo ruolo chiamato database manager e quindi attribuire ad esso le autorizzazioni di configurazione e creazione di connessioni al database, per esempio, è possibile assegnare le seguenti autorizzazioni:

  • Aggiungere i metodi al database
  • Cambiare metodi al database
  • Aggiungere le connessioni al database Z gadfly

In questo modo, tutti gli utenti con il ruolo di amministratore del database sono autorizzati a modificare le impostazioni e dei metodi del database. Per attribuire le autorizzazioni per il ruolo di amministratore del database, tutto quello che dovete fare è andare nella scheda Security, in cui si dovrebbe vedere il nuovo ruolo di amministratore del database. È quindi sufficiente selezionare le autorizzazioni che si desidera attribuire ad esso, confermare, e  salvare le modifiche. Ora, le persone che hanno questo ruolo avranno la possibilità di aggiungere, ad esempio, connessioni a database (o qualsiasi altra cosa che avete deciso di attribuire loro).
Questo caso d'uso è simile a molti altri, è anche possibile creare diversi ruoli per utenti che si occupano di CSS, per i programmatori Python, e così via. Ogni utente sarà in grado di fare solo ciò che gli si concede la possibilità di fare, e molti utenti con ruoli diversi possono lavorare tutti insieme, senza interferire con i lavori delle altre persone.

Gestione degli utenti su Zope

Dove vengono memorizzare di default le informazioni sugli utenti in Zope? Gli utenti Zope vengono memorizzati nello strumento acl_users (ACL è un acronimo che significa "access control list"). Se avete un account su un server Zope e provate ad accedere, Zope vi autenticherà tramite lo strumento acl_users. La Figura 7-4 mostra la schermata lo strumento acl_users.

strumento acl_users tool

Figura 7‐4. Lo strumento acl_users tool per Zope.

Lo strumento acl_users è un oggetto di tipo folder "pluggable authentication service"  (PAS), in cui si possono aggiungere gli utenti Zope e mappare gli utenti con i ruoli. È inoltre possibile creare nuovi plug-in, per esempio, per gestire l'autenticazione degli utenti tramite un server LDAP o altri sistemi già in uso. Se volete creare un nuovo utente Zope, dovete fare clic su Users nello strumento acl_users e quindi cliccare su “Add a user”. Con un semplice esempio, create un nuovo utente chiamato new_user e assegnategli il ruolo di amministratore. Compilate il modulo di creazione, come mostrato nella Figura 7-5, e poi confermate cliccando sul pulsante Add User.

nuovo utente acl_users

Figura 7-5. Aggiungere un nuovo utente nello strumento acl_users.

Si può concedere a new_user privilegi più elevati, modificando l'assegnazione dei ruoli. Scegliete l'opzione Roles nello strumento acl_users Zope, e fate clic sul link "?" vicino al ruolo di amministratore. Qui potete cercare il nuovo utente appena creato e assegnargli il ruolo di amministratore, come mostrato nella Figura 7-6.

ruolo amministratore nuovo utente

Figura 7‐6. Assegnare il ruolo di amministratore ad un nuovo utente

Ora avete un nuovo utente Zope, new_user, con i privilegi di amministratore. Nella radice di Zope, avete sempre uno strumento acl_users, ma è anche possibile creare uno o più strumenti acl_users in determinate cartelle contenute nell'istanza Zope, quindi è possibile utilizzare questi strumenti per l'archiviazione di utenti o per sovrascrivere i ruoli di utenti esistenti. Ecco come si creano aree diverse con utenti Zope locali in modo che possano autenticarsi solo in quella parte dell'applicazione. Per esempio, è possibile creare account per sviluppatori solo in una certa area (creando uno strumento acl_users nella cartella corretta), in modo che gli sviluppatori siano in grado di gestire il codice in una sezione, ma non abbiano la possibilità di visualizzare o modificare il codice in altre sezioni. Quello che avete appena visto è solo una parte di quello che si può fare con Zope e gli utenti in Zope. Se siete interessati ad avere maggiori informazioni sulla sicurezza di Zope 2, potete dare un'occhiata al libro di Zope su www.zope.org/Documentation/Books/ZopeBook/2_6Edition/Security.stx. Ma, come probabilmente già sapete, Plone introduce altre caratteristiche avanzate di sicurezza. Le vedrete nella prossima sezione!

by Dario Pollino last modified 2010-03-19 16:27
Contributors: Maurizio Delmonte, Davide Moro, Alice Narduzzo, Fabrizio Reale, Enrico Barra, Andrea Cannizzaro, Andrea D'Este, Maurizio Lupo, Giuseppe Masili, Dario Pollino, Matteo Sorba.