Indice
Access Control Lists (ACL)
aiuto per una corretta traduzione, fare riferimento alla pagina in inglese.
DokuWiki – come la maggior parte dei wiki — è aperto di default. Tutti possono creare, modificare e cancellare le pagine. Tuttavia a volte ha senso limitare l'accesso a determinate funzioni o tutte le pagine. Questo avviene quando le Access Control Lists (ACL) sono attive. Questa pagina dovrebbe darvi una panoramica del funzionamento delle ACL in DokuWiki e come vanno configurate.
ATTENZIONE: La funzione ACL di DokuWiki è stata inclusa già da un po di tempo e dovrebbe essere abbastanza stabile. Tuttavia, se siete preoccupati per il rischio che utenti non autorizzati possano accedere alle informazioni del vostro wiki, non rendete il vostro computer accessibile da Internet …
Configurazione e impostazione di Setup
Le ACL possono essere attivate dal installer del programma di installazione e le regole ACL iniziali vengono impostate anche lì. Per attivare manualmente le ACL, accendere all’ opzione useacl, copiare i file di esempio conf/acl.auth.php.dist
e conf/users.auth.php.dist
in conf/acl.auth.php
e conf/users.auth.php
respectively.
Vedi anche
Ci sono alcune opzioni di configurazione e le caratteristiche che riguardano l'autenticazione, la registrazione degli utenti e la configurazione ACL. Si prega di verificare le loro pagine wiki per avere maggiori informazioni:
- Opzioni di configurazione useacl – consentire l'utilizzo ACL
- Opzioni di configurazione superuser – configurazione superutenti con diritti massimi di ACL
- Opzioni di configurazione disableactions – consente di disattivare la registrazione aperta
- Opzioni di configurazione defaultgroup – il gruppo predefinito in cui vengono aggiunti i nuovi utenti
- User Manager – gestione degli utenti
- Authentication Backends – identificare gli utenti provenienti da diverse fonti di dati
Restrizioni di accesso
Limitazioni di accesso possono essere associati a pagine e namespaces (spazio di nomi). Ci sono sette autorizzazioni: none, read, edit, create, upload, delete and admin. Ogni autorizzazione di livello superiore contiene quelle più basse, il più basso elimina il più alto. È opportuno notare che creare, caricare e cancellare le autorizzazioni possono essere assegnati solo ai namespaces.
aiuto per una corretta traduzione, fare riferimento alla pagina in inglese.
Rules that were set to namespaces apply on media namespaces as well as for page namespaces.
When DokuWiki checks which rights it should give to a user, it uses all rules matching the user's name or the groups he or she is in. La regola che prevede l'autorizzazione di un utente viene scelto in base al seguente processo:
- Regole che corrispondono più vicino al namespace:page sono da preferite rispetto alle norme che corrispondono alle più lontane – che noi chiamiamo come “specific matching”.
- Quando più di una regola parte allo stesso livello, la regola che si trova al più alto livello di accesso è preferita.
Gli utenti dei gruppi assegnati allo user manager (o il backend di autenticazione). Tuttavia ci sono due gruppi che sono speciali:
- @ALL. Tutti, anche gli utenti non loggati, sono membri del gruppo ALL. È possibile utilizzare questo gruppo per limitare l'accesso per tutti gli utenti (come impostazione di default) e poi rilasciare le autorizzazioni solo per gli utenti selezionati
- @user. Tutti gli utenti di auto-registrati sono di default automaticamente membri del guppo di 'user'. Utilizza questo permesso per dare l'autorizzazione a chi è 'logged-in' utenti. Il nome di questo gruppo viene configurato tramite l'opzione defaultgroup. A differenza del gruppo virtuale “ALL”, il gruppo “user” è realmente un gruppo a cui tutti gli utenti vengono aggiunti automaticamente quando si utilizza il backend di autenticazione. Se si utilizza un backend diverso è necessario utilizzare i gruppi forniti da questo backend.
I gruppi sono rappresentati internamente e nel gestore delle ACL da un prefisso @
che è il carattere del nome del gruppo.
Modifica le ACL
Per aggiungerne facilmente nuove regole o modificare le regole di accesso esistenti, è necessario utilizzare il ACL Manager che è disponibile nel menu di Amministrazione. Una descrizione dettagliata della sua interfaccia può essere trovata here - qui.
Fondamentalmente ci sono tre passaggi per aggiungere una nuova regola ACL:
- select the namespace or page to restrict from the upper left tree navigation
- scegliere dove e a chi si dovrebbe applicare la regola ACL
- by selecting a known group or user from the dropdown menu
- oppure selezionando “User:” o “Group:” e inserendo il nome del gruppo o utente nel campo
- impostare le autorizzazioni appropriate
Le regole esistenti possono essere modificate o cancellate nella tabella sotto nel gestore ACL.
Esempio di ACL
In questa sezione viene spiegato come accedere a regole di lavoro, utilizzando un esempio di configurazione di fantasia che assomiglia a questo nel gestore di ACL:
Diamo un'occhiata a ciascuno di essi:
- Questo set di autorizzazioni per tutti nel namespace principale, permette a chiunque di modificare e creare pagine. Tuttavia il caricamento (upload) non è permesso.
- L’utente bigboss ha pieni diritti.
- Ora l'accesso ristretto per lo (sviluppo)
devel
del namespace. Nessuno è autorizzato a fare qualsiasi cosa. - Beh, non proprio tutti – diamo i membri del gruppo devel tutti i diritti da qui.
- E, naturalmente, all’utente bigboss è consentito – ed è l'unico che può cancellare i file caricati.
- E il team di marketing può leggere tutto nel namespace di
devel
, ma in sola lettura. - Tuttavia i componenti del gruppo (sviluppo) devel non vogliono far vedere al loro capo la pagina
funstuff
– remember exact pagematches override namespace permissions. - E finalmente il gruppo del marketing è autorizzato a modificare anche la loro pagina
devel:marketing
. - Poi le autorizzazioni per lo spazio dei nomi (namespace)
marketing
sono impostate. Tutti i membri del gruppo / / marketing / / sono autorizzati a caricare. - gli altri utenti saranno abbinati con la linea 1 1 in modo che possano comunque creare e modificare i file. bigboss eredita i suoi diritti dalla linea 2 così da poter caricare e cancellare.
- L'ultima riga limita infine la pagina iniziale di sola lettura per tutti. Solo i superutenti saranno in grado di modificare quella pagina.
Diamo un'occhiata a un secondo esempio per capire meglio le specifiche corrispondenti :
Questa volta non vediamo quali regole match per diversi utenti quando cercano di accedere alla pagina private:bobspage
.
- Abby, è un utente normale
- three rules match (tre regole di match), #1, #2, #4
- Regola #4 è la più vicina, corrisponde a livello di spazio dei nomi (namespace) per cui ha la precedenza su altri tre
- abby's permissions level is 0
- Bob, un utente normale
- quattro regole match, #1, #2, #4, #6
- Regola #6 wins as its an exact match
- bob's permission level is 16
- Bob dimentica il login e tenta di accedere alla sua pagina
- due regole match, #1 & #4
- Regola #4 è più vicina e vince
- il livello di autorizzazione di Bob, quando non connesso è 0
- Charlie, un membro dello staff
- cinque regole match, #1 - #5
- due regole di match a livello di spazio dei nomi, #5 Charlie dà il permesso superiore in modo da vincere
- livello di autorizzazione di Charlie è di 16
Nota regola # 5, che sembra duplicare regola # 3. Senza di essa, i membri dello staff non sarebbero in grado di accedere al namespace (spazio dei nomi) privato come regola # 4 e sarebbero tenuti fuori.
Informazioni Generali
Restrizioni di accesso vengono salvati in un file chiamato conf/acl.auth.php
, che dovrebbe essere scrivibile dal server web se si desidera utilizzare l'interfaccia di amministrazione ACL sopra descritta. Si raccomanda di non modificare questo file manualmente. Utilizzare l'interfaccia di amministrazione.
Righe vuote e commenti nello stile della shell vengono ignorati. Ogni riga contiene 3 campi separati da spazi bianchi:
- Un gruppo o nome utente. Nomi di gruppo sono contrassegnati da un eminente
@
carattere. - A livello di autorizzazione (vedi sotto).
Ci sono 7 livelli di autorizzazione rappresentati da un intero (integer). I livelli più alti sono quelli più bassi. Se puoi modificare pui anche leggere. Tuttavia, il permesso admin e di 255 non possono essere usati nel file conf/acl.auth.php
. It is only used internally by matching against the superuser option.
Name | Livello | si applica a | Permesso | costante DokuWiki |
---|---|---|---|---|
none | 0 | pages, namespaces | nessuna autorizzazione – Blocco completo out | AUTH_NONE |
read | 1 | pages, namespaces | permesso in lettura | AUTH_READ |
edit | 2 | pages, namespaces | pagine esistenti possono essere modificate | AUTH_EDIT |
create | 4 | namespaces | nuove pagine possono essere create | AUTH_CREATE |
upload | 8 | namespaces | mediafiles possono essere caricati | AUTH_UPLOAD |
delete | 16 | namespaces | mediafiles possono essere sovrascritte o cancellate | AUTH_DELETE |
admin | 255 | admin plugins | superuser1) cambiare le impostazioni admin | AUTH_ADMIN |
Ecco un esempio di configurazione di corrispondenza del primo esempio di cui sopra:
* @ALL 4 * bigboss 16 devel:* @ALL 0 devel:* @devel 8 devel:* bigboss 16 devel:* @marketing 1 devel:funstuff bigboss 0 devel:marketing @marketing 2 marketing:* @marketing 8 start @ALL 1
Si prega di notare che nel file order does not matter. Il file viene analizzato nel suo complesso, then a perfect match for the current page/user combo is searched for. Quando viene trovata una corrispondenza corrispondenza ulteriore viene interrotta. Se non viene trovata una corrispondenza, permessi i di gruppo per la pagina corrente vengono controllati. Se non viene trovata la verifica nel namespace superiore.
Nota: Per configurare gli utenti o gruppi con caratteri speciali (come gli spazi bianchi), you need to URL escape them. This only applies to specialchars in the lower 128 byte range. The ACL file uses UTF-8 encoding so any multibytechars can be written as is.
Nota: Quando si usa $conf['authtype'] = 'ad'; and groups names with spaces needing to be written in the acl.auth.php with a “%5f” replacing the spaces instead of “%20”. This is because Group names with spaces are first converted into underscores “_” which are “%5f”.
Note: The delete permission affects media files only. Pages can be deleted (and restored) by everyone with at least edit permission.
Someone who has upload permissions but no delete permissions can not overwrite existing media files anymore.
Utente caratteri jolly (Wildcards)
E 'possibile utilizzare i caratteri utente jolly nelle ACL. Questo può essere utile in un wiki con molti utenti registrati, se si vuole dare ad ogni utente uno spazio personale in cui solo lui/lei abbiano accesso in scrittura, e non modificare le ACL per ogni utente. To accomplish that %USER% is replaced by the username of the currently logged in user.
In the following example a logged in user gains full access (upload/delete) permissions for the user's namespace
users:<username>:*
e di revocare tutti gli accessi da altri spazi dei nomi situato nello users:*
In questo caso il login utente ha accesso al proprio spazio utente (namespace) e non ha accesso a spazi di altri utenti (namespaces) (anche per visualizzare i nomi dei namespace).
# # FIXME Grant full access to logged in user's namespace users:%USER%:* %USER% AUTH_DELETE # # FIXME Allow to browse own namespace via INDEX users: %USER% AUTH_READ # # FIXME Allow read only access to start page located in <users> namespace users:start %USER% AUTH_READ # # Disabilita tutti gli accessi FIXME to user's home namespaces non di proprietà dell'utente connesso (includere la vista dei namespaces attraverso la INDEX) users:* @user AUTH_NONE
Nota: versione corrente 2009-12-25c “Lemming” has some caveat. Se si aggiunge, aggiorna o rimuovono le ACL dall’interfaccia grafica di amministrazione allora il motore DokuWiKi sostituirà lo %USER% nel secondo campo ACL di %25USER%25 questo è un bug FS#1955. Per evitare ciò, - cambia i permessi solo manualmente (file:
conf/acl.auth.php
) o correggere manualmente dopo ogni operazione dalla ACL dalla GUI perché la maschera %25USER%25 non funziona come previsto, solo %USER% dovrebbe essere utilizzato nella conf/acl.auth.php
.
Nota: Il jolly è stato recentemente modificato da @ a % – se si esegue l'aggiornamento da una versione precedente è necessario regolare la configurazione ACL di conseguenza.