Corso Drupal advanced
Access Control (ACL e Content Access)
Mario Baioli http://www.corsodrupal.uniroma1.it
GLAD (gruppo di lavoro drupal Sapienza)
Wikipedia ACL
•
•
•
Una ACL è una lista ordinata di regole che stabilisce quali utenti o processi di
sistema possono accedere a degli oggetti, e quali operazioni sono possibili su
questi oggetti. Facendo l'esempio di una rete informatica, ci si troverebbe a
dover decidere se far passare o meno un pacchetto o se permettere o meno
ad un certo utente l'accesso ad un determinato file.
Ciascuna regola, detta access control entry (ACE), esprime una o più
condizioni o proprietà dell'oggetto da valutare (ad es. l'indirizzo sorgente di un
pacchetto IP), e se queste proprietà sono verificate indica quale decisione
prendere (ad es. lasciar passare il pacchetto oppure scartarlo).
La valutazione inizia dalla prima regola: se l'insieme delle condizione/proprietà
di questa risultano verificate si applica una prestabilita decisione
o policy dell'ACL, proseguendo poi allo stesso modo con le regole successive.
Se nessuna regola viene soddisfatta, viene applicata una decisione o policy
di default.
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 2
ACL sta per Access Control List
modulo nasce come API per altri moduli per creare
liste di utenti a cui attribuire l’accesso ad un
particolare nodo. In pratica non fa nulla da solo..
• ACL fornisce un controllo dedicato fino al singolo
utente su un singolo nodo.
•
•
•
•
Reported installs: 23,814 sites currently report using this module.
Downloads: 211,331
Automated tests: Enabled
Last modified: June 2, 2014
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 3
Perché usare il modulo ACL?
1. Avvertite l’esigenza di granularizzare l’accesso a ruoli e
permessi ed i ruoli non sono sufficienti
2. Volete mantenere un certo ordine o meglio evitare un certo
disordine e desiderate una soluzione granulare, adattabile a
diversi tipi di contenuto del vostro progetto spingendovi fino
al singolo nodo
3. Si desidera ottenere un controllo su tutto ciò che sta
accadendo con i diritti di accesso.
4. Permette di scavalcare alcuni permessi assegnati ad un ruolo
da uno specifico utente (o lista di utenti)
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 4
Ecco come iniziare con il modulo ACL
Effettuare il download del modulo ACL e
configurare tutti i diritti per il solo
amministratore per il tipo di contenuto di
cui desiderate restringere l’accesso.
Questo è il metodo più facile per
imparare come lavora questo modulo.
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 5
Restrizione degli accessi
Qualora volessimo rendere una pagina visibile
solo agli utenti che appartengono ad un ruolo
potremmo adottare diverse soluzioni.
Una soluzione è permettere la
visione/modifica di alcune pagine solo agli
utenti del ruolo a cui sono collegati, cosa
ormai nota.
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 6
Alcuni moduli disponibili
• Content access (+ ACL) ha più funzioni
• Nodeaccess (è meno completo)
• Simple Access (per la versione 6 da
scartare)
• Per le viste invece non c'è problema, visto
che l'opzione è già prevista.
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 7
Come fare …
• La strada maestra è che prima va creato un
Tipo di Contenuto e successivamente a
questo Tipo di Contenuto é possibile
associare i permessi in base al ruolo.
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 8
Nel nostro caso
• Non vogliamo fermarci ad associare il Tipo
di contenuto ad un ruolo
• Più esplicitamente tutti i nodi creati da quel
tipo di contenuto potrebbero appartenere ad
utenti diversi che hanno in comune i
permessi associati al ruolo.
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 9
Centriamo meglio cosa stiamo cercando
• Senza l’uso di ACL
• Una idea per evitare che un utente che dispone
degli stessi permessi sul Tipo di contenuto possa
accedere ad esempio in modifica sul nodo in
considerazione è legarlo all’autore.
• Ma in questo caso l’associazione vale per il solo
utente autore.
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 10
Ragionando a voce alta
Impostando un vincolo sull’accesso a un nodo
in modifica per l’autore il problema è risolto se
possiamo sostituire l’autore. E’ possibile?
La risposta è si……
MA
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 11
Modificare l’autore di un nodo
1.
2.
3.
4.
Sebbene sia semplice nell’esecuzione nella realtà diventa macchinoso in
quanto necessita l’intervento di un altro utente che abbia i permessi per
interagire sui cosiddetti permessi di pubblicazione, normalmente
l’amministratore.
Se così era progettato, il vecchio autore perde il permesso che era legato
oltre che al ruolo di appartenenza, anche al fatto che a lui era associata la
creazione del nodo e potrebbe non avere più accesso al nodo che aveva
creato.
Con questa tecnica di modificare l’autore non cambia la sostanza che un
solo utente può detenere questo permesso
Digressione… abbiamo già visto come associare tutti i nodi creati da un
utente ad un altro utente, come associarli ad un utente anonimo, cioè
lasciare vuoto il campo autore o eliminarli del tutto insieme all’utente
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 12
Con drupal puoi fare la stessa cosa in modi diversi
• Il nostro obiettivo è limitare l'accesso di un contenuto a una
lista selezionata di utenti.
Quindi dopo aver assegnato i ruoli e i permessi agli utenti,
stabilisco che quel contenuto che inserisco sarà visibile –
modificabile –alla mia lista di utenti e non modificabile da tutti
gli altri
• Altra questione la visibilità del nodo, che vorrei fosse limitata
alla mia lista di utenti selezionati
•
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 13
ACL + Content Access
• Perché ACL + Content Access?
• Il modulo ACL estende le potenzialità di Content
Access fornendo un controllo di accesso a livello di
singolo utente e per questo devono essere caricati
entrambe i moduli per avere l’effetto che
desideriamo
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 14
Ok, ci siamo convinti … proviamolo
• Andiamo a scaricare il modulo ACL
•
•
•
•
•
•
•
•
Project Information
Maintenance status: Seeking co-maintainer(s)
Development status: Under active development
Module categories: Community, Content, Content Access Control, Developer, Security, User Access &
Authentication
Reported installs: 23,814 sites currently report using this module. View usage statistics.
Downloads: 211,390
Automated tests: Enabled
Last modified: June 2, 2014
•
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 15
Download modulo ACL
Al momento sul mio sito è up questo modulo:
Versione
7.x-1.0
Downloads
tar.gz (15.26 KB)
zip (17.99 KB)
Data
2011-Nov-26
Links
Notes
Naturalmente il sito da cui effettuare il download
è questo:
https://www.drupal.org
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 16
Statistiche sull’utilizzo di ACL
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 17
Content Access ?
• Questo modulo permette di gestire le autorizzazioni
per i Tipi di contenuto per ruolo e autore.
• Pertanto è possibile abilitare le impostazioni di
accesso ai contenuti, in modo da poter
personalizzare l'accesso per ogni nodo del
contenuto al singolo utente anche di ruolo diverso
oppure dello stesso ruolo per superare un
permesso che impedisce la modifica sui contenuti
creati da un altro autore.
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 18
Download modulo Content Access
Al momento sul mio sito è up questo modulo:
Versione
7.x-1.x-dev
Downloads
tar.gz (23.63 KB)
zip (28.83 KB)
Data
2013-Sep-30
Links
Notes
Naturalmente il sito da cui effettuare il download
è questo:
https://www.drupal.org
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 19
Dopo il download del file tar.gz
Nel pannello moduli cercare
CONTROLLO ACCESSI per attivarlo
dei moduli apparirà
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 20
E adesso ?
• Aprire il tipo di contenuto in cui
applicare il nuovo modulo appena
caricato: ad esempio la nostra pagina
base
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 21
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 22
Configurazione del tipo di contenuto per AC
Se abilitato apparirà nel tipo di contenuto su cui state lavorando
un nuovo pannello, chiamato «Controllo accessi».
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 23
Vogliamo assegnare diritti di modifica
• Ad un nodo che è stato prodotto dal tipo di
contenuto «pagina base» vogliamo aggiungere il
controllo accessi per consentire ad un utente di
accedere per fare modifiche.
• Per progetto abbiamo deciso che il ruolo docente
(che usiamo per questo test) può creare, modificare
ed eliminare solo nodi di cui è l’autore.
• Verifichiamo se applicando il control access
possiamo far modificare il nostro nodo di esempio
ad un utente del ruolo docente che non è l’autore.
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 24
Adesso entra in gioco ACL
These settings allow you to grant access to specific users.
Ci siamo !! Qui possiamo configurare l’assegnazione di
permessi che consentono di vedere, modificare ed
eliminare content (nodi) a singoli utenti oppure a liste di
utenti
Cominciamo da GRAND UPDATE ACCESS che è il menu che fa al caso nostro.
Non dovremo fare altro che aggiungere nel campo di testo il nome utente da abilitare e poi
cliccare su Add User per completare cliccare su invia.
Da questo momento l’utente che andremo ad aggiungere potrà modificare questo singolo
nodo appartenente al suo Tipo di contenuto mentre in precedenza non godeva di questo
permesso.
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 25
Bello, fa anche qualcos’altro ?
• Allo stesso modo può anche essere impostata la
visualizzazione che apre tutta una serie di scenari
che vedremo in un prossimo corso se è
conveniente trattarli con questo modulo oppure
utilizzando altre soluzioni.
• Così a naso può essere conveniente se le liste
sono limitate e gli utenti sono noti.
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 26
Consente anche l’eliminazione
• Un permesso come l’eliminazione di un nodo viene
concesso raramente, in quanto l’eliminazione di un
nodo è irreversibile.
• Tuttavia in casi particolari possiamo concedere
questo permesso ad un utente fidato che può
procedere all’eliminazione esclusivamente di quel
singolo nodo appartenente a quel Tipo di
contenuto.
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 27
Altri Tipi di contenuto…
• Beh! Siamo incontentabili !!!!
•
Qualcuno sicuramente avrà già chiesto se questo
modulo una volta applicato su un Tipo di contenuto
si estende a tutti gli altri oppure no!
• La configurazione di Access Control va fatta sul
singolo Tipo di contenuto, non si estende a tutti, da
qui la granularità
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 28
Granularità…
• Per granularità intendo dire che con l’applicazione
di questo modulo un utente a cui in precedenza non
era consentito l’utilizzo di un certo Tipo di contenuto
perché per ragioni di progetto non si intende
assegnarne la disponibilità al ruolo a cui appartiene,
può invece utilizzare il Tipo di contenuto a cui viene
associato, ma su un singolo nodo.
• Controindicazioni ???? Vedi oltre->
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 29
controindicazioni
• Purtroppo sì, ma a mio parere sono più i vantaggi
che gli svantaggi e quindi lo ho usato
• Vabbè ma quali sono le controindicazioni ?
• Il nodo per essere configurato con Access Control
deve già esistere e poi il diritto di configurazione è
in capo ad un utente del ruolo amministratore che
notoriamente sono difficili da trovare
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 30
modulo ACL - dott. Mario Baioli
([email protected])
07/10/2014
Pagina 31
Scarica

Presentazione di PowerPoint