DokuWiki

It's better when it's simple

Outils pour utilisateurs

Outils du site


fr:acl

Ceci est une ancienne révision du document !


Cette page est utile pour une configuration manuelle de DokuWiki - obsolète depuis la mise en place du gestionnaire de configuration

Liste de contrôle d'accès (ACL)

DokuWiki - comme la plupart des Wikis - est très ouvert par défaut. Chacun peut y créer, éditer et effacer des pages. Toutefois il est compréhensible parfois de limiter l'accès à certaines ou à toutes les pages. C'est alors que les listes de contrôle d'accès (ACL) jouent leur rôle. Cette page vous livre une vue d'ensemble du fonctionnement d'ACL dans DokuWiki et sa configuration.

Pour plus d'informations et de questions allez à –> ACL (anglais)

:!: AVERTISSEMENT: Le dispositif d'ACL de DokuWiki fonctionne déjà depuis un certain temps et devrait être assez stable. Cependant, si vous êtes préoccupé par le risque de diffusion involontaire d'informations à des utilisateurs non autorisés, vous ne devriez jamais mettre ces informations sur un ordinateur accessible depuis Internet…

Configuration

Pour activer ACL dans DokuWiki, vous avez besoin au moins d'un ACL par défaut. Renommez ou copiez simplement les fichiers d’exemple conf/acl.auth.php.dist et conf/users.auth.php.dist en respectivement conf/acl.auth.php et conf/users.auth.php et la page de procédure de connexion devrait fonctionner.

Vous devez également fixer quelques options de configuration. Voici un échantillon de ce que vous pourriez ajouter à votre fichier local.php pour autoriser l'authentification plaintext par défaut avec enregistrement public :

$conf['useacl']       = 1;        // ceci active ACL
$conf['superuser']    = '@admin'; // le groupe admin 
                                  //est super-utilisateur

useacl active ACL. Une fois que ce dispositif est activé, un bouton de procédure de connexion apparaît en bas de chaque page du wiki, et les utilisateurs peuvent s'enregistrer. L'option du super-utilisateur (superuser) indique qu’il peut tout faire dans DokuWiki (y compris ajouter de nouvelles restrictions à ACL) - ceci peut être un utilisateur simple ou un groupe (marqué par @).

Quand vous installez DokuWiki avec ACL à partir de zéro, à l'aide de votre navigateur, cliquez sur le bouton « connexion », suivez le lien « s’enregistrer », et enregistrez au moins un utilisateur. (Si vous ne voyez pas le lien « s’enregistrer » c’est que les permissions du fichier conf/users.auth.php sont incorrectes et qu’aucune nouvelle donnée ne peut y être écrite.) Ensuite, éditez le fichier conf/users.auth et promouvez au moins un utilisateur en administrateur. A partir de là un bouton supplémentaire « Administrateur » est mis en fonction si vous êtes connecté comme utilisateur appartenant au groupe « admin ».

A partir de là, un dispositif supplémentaire de sécurité peut être activé dans le fichier conf/dokuwiki.php :

$conf['disableactions'] = 'register'; // interdit l’enregistrement 
                           //des utilisateurs (defaut : '')

L'ancienne option openregister a été supprimée

Si ce comportement est souhaité, des utilisateurs peuvent être ajoutés uniquement par un administrateur (par l'interface Web de l’administrateur ou en éditant directement le fichier conf/users.auth.php).

Il y a quelques options supplémentaires de configuration qui permettent le contrôle d'autres aspects d'ACL mais beaucoup trouveront les configurations par défaut satisfaisantes.

$conf['autopasswd']  = 1;        //autogénère le mot de passe 
                                 //et l’envoi par email
$conf['passcrypt']   = 'smd5';   //Méthode de cryptage utilisée
                		 //(smd5,md5,sha1,ssha,crypt,mysql,my411)
$conf['defaultgroup']= 'user';   //Groupe par défaut dans lequel les nouveaux
                                 //utilisateurs sont ajoutés
$conf['profileconfirm'] = '1';   //Mot de passe requis pour
                                 //modifier le profil courant
$conf['authtype']     = 'plain'; //backend en mode plaintext(default)
  • Fixez autopasswd à 0 pour autoriser les utilisateurs à sélectionner leur propre mot de passe quand ils s’enregistrent. Ceci a pour conséquence d’annuler la garantie que l’utilisateur s’est enregistré avec une adresse Email valide.
  • passcrypt détermine la méthode de cryptage utilisée pour stocker les mots de passe.
  • defaultgroup est explicite : tout nouvel utilisateur sera ajouté à ce groupe par défaut.
  • Fixez profileconfirm à 0 pour autoriser l’utilisateur connecté à changer son profil (nom complet, mot de passe et adresse Email) sans qu’il ait à confirmer son mot de passe actuel.

DokuWiki peut utiliser différentes voies d’accès aux données utilisateur et groupe. Par défaut il utilise en arrière plan un fichier en mode texte (backend). Le mode d'authentification d'arrière plan (backend) est choisi avec l'option authtype. Allez voir la page sur les modes d'authentification (auth) pour avoir un aperçu des options disponibles.

Gestion des utilisateurs

Des utilisateurs peuvent être ajoutés, retirés et édités avec le gestionnaire d'utilisateurs. Quand l'option openregister est activée les utilisateurs peuvent s'enregistrer eux même. Pour avoir des informations sur l’ajout manuel des utilisateurs voir les explications dans la documentation concernant le fonctionnement d’ACL en mode texte.

Accès aux restrictions

Des restrictions d'accès peuvent être liées aux pages et aux espaces de noms. Il y a cinq permissions : lire (read), éditer (edit), créer (create), télécharger vers le serveur (upload) et effacer (delete). Les permissions de niveau plus élevé contiennent celles des niveaux inférieurs, read étant le niveau le plus bas. Notez que les permissions de créer, télécharger et effacer ne sont assignées qu’aux espaces de noms.

Quand DokuWiki contrôle les droits qu’il doit attribuer à un utilisateur, il utilise toutes les règles contenant le nom d’utilisateur ou de groupe. La règle qui donne la permission la plus élevée est utilisée. Les permissions concernant la page sont d'abord examinées, ensuite tous les espaces de noms supérieurs sont contrôlés jusqu'à ce qu'une règle soit trouvée.

Pour ajouter une règle de restriction, allez à la page que vous voulez limiter et entrez dans l'interface de gestion en cliquant sur le bouton « Admin » (disponible uniquement pour le super-utilisateur). Là suivez le lien « Gestion de la liste des contrôles d’accès ». Un tableau analogue à celui qui suit vous est alors présenté, montrant toutes les restrictions concernant la page actuelle.

Example of an ACL-Restriction

Les restrictions sont ajoutées avec la ligne supérieure du tableau. Vous devez choisir la portée, qui peut être la page actuelle elle même, ou un des espaces de noms dans lequel elle est 1). Vous devez également choisir à qui vous voulez donner (ou restreindre) l'accès ; ce peut être un groupe ou un utilisateur. Pour finir, vous devez choisir les permissions que vous souhaitez. Si vous ne choisissez aucune permission vous excluez de la page ou de l’espace de noms les utilisateurs ou groupes spécifiés.

Note : La permission d'effacement affecte les fichiers de médias seulement. Les pages peuvent être effacées (et restaurées) par chacun. Quelqu'un qui n'a que des permissions de téléchargement mais aucune permission d'effacement ne peut écraser les fichiers de médias existants.

Groupes spéciaux

ALL. Tout le monde, même les utilisateurs non connectés, est membre du groupe ALL. Vous pouvez utiliser ce groupe pour limiter l'accès à tous les utilisateurs (comme configuration par défaut) et autoriser certaines permissions pour quelques utilisateurs choisis. Par exemple, dans le tableau ci-dessus, personne n'est autorisé à télécharger, sauf les membres du groupe upload.

user. Tous les utilisateurs qui se sont enregistrés sont automatiquement membres du groupe « user » par défaut. Utilisez-le pour attribuer des privilèges aux utilisateurs connectés. Le nom de ce groupe est configuré avec l'option de defaultgroup. Contrairement au groupe virtuel « ALL » , le groupe « user » est un vrai groupe auquel tous les utilisateurs sont ajoutés automatiquement en utilisant l’authentification en mode texte. Si vous utilisez un autre mode d’authentification vous aurez besoin d'utiliser les groupes fournis par ce mode.

Informations avancées

Les restrictions d'accès sont archivées dans le fichier conf/acl.auth.php, qui doit être accessible en écriture par le serveur web si vous voulez utiliser l'interface d’administration d'ACL.

Les lignes vides ou commentées sont ignorées. Chaque ligne contient 3 zones séparées par des espaces :

  • La ressource à limiter. Ceci peut être un nom de page ou un espace de nom. Les espaces de noms sont marqués par un astérisque supplémentaire (voir ses exemples ci-dessous)
  • Un groupe ou un nom d'utilisateur. Les noms de groupe commencent par le caractère @.
  • Un niveau de permission (voir ci-dessous)

Il y a 5 niveaux de permissions (ou plus précisément 6) représentés par un nombre entier. Les plus hauts niveaux incluent ceux qui sont en dessous. Ainsi si vous avez l'autorisation d'éditer vous pouvez également lire.

Nom Niveau s’applique à Permission
0 pages, espaces de noms aucune permission, verrouillage complet
read 1 pages, espaces de noms permission en lecture
edit 2 pages, espaces de noms les pages existantes peuvent être éditées
create 4 espaces de noms de nouvelles pages peuvent être créées
upload 8 espaces de noms les fichiers de médias peuvent être téléchargés vers le serveur
delete 16 espaces de noms les fichiers de médias peuvent être écrasés ou effacés

Voici un exemple :

*                     @ALL        4
*                     bigboss     8
start                 @ALL        1
marketing:*           @marketing  8
devel:*               @ALL        0
devel:*               @devel      8
devel:*               bigboss     8
devel:funstuff        bigboss     0
devel:*               @marketing  1
devel:marketing       @marketing  2

Et les explications ligne par ligne :

  1. Fixe la permission pour l’espace de nom principal. Permet à tout le monde d'éditer et de créer des pages. Cependant on ne permet pas le téléchargement.
  2. l’utilisateur bigboss a tous les droits
  3. La page start est autorisée en lecture seule pour tout le monde.
  4. Les permissions pour l’espace de nom marketing sont fixées. Tous les membres du groupe marketing sont autorisés à télécharger vers le serveur dans cet espace - les autres utilisateurs sont assignés par la ligne 1, ils sont limités à la création et à l’édition. L’utilisateur bigboss hérite de ses droits de la ligne 2 et peut aussi télécharger.
  5. Restriction pour l’espace de nom devel. Personne n'est autorisé à y faire quoi que ce soit.
  6. En fait pas vraiment personne - tous les droits sont donnés aux membres du groupe devel.
  7. Et naturellement on donne les autorisations à l’utilisateur bigboss aussi.
  8. Cependant les gars du groupe devel ne veulent pas que leur patron puisse afficher funstuff:!: ne pas oublier que les permissions pour des pages précises sont prioritaires aux permissions sur les espaces de noms.
  9. Le groupe marketing peut aussi lire tout ce qui est dans l’espace de nom devel.
  10. Enfin on permet aux gars du groupe marketing d'éditer la page devel:marketing.

Note : le code d'ACL ne fonctionne pas tout à fait comme pourraient le suggérer ces explications – si vous vouliez avoir un groupe de « super-utilisateurs » qui a plein accès à tout, vous ne pourriez pas simplement mettre

*                     @superusers        8

à la fin du fichier d'ACL pour supplanter tout ce qui est marqué avant. En effet, l'accès aux pages est établi par la ligne la mieux définie du fichier d’ACL ainsi, bien que théoriquement les super-utilisateurs aient accès à tout, ceci ne se produirait pas réellement parce que les lignes devel:* et vente:* sont mieux définies, et ce sont elles qui sont utilisées. Pour obtenir l'effet désiré ici, vous devriez ajouter :

marketing:*           @superusers  8
devel:*               @superusers  8

et ainsi de suite pour chaque espace de nom (et sous-espaces, page, etc.) qui ont été limités.

Vous pouvez lire quelques commentaires en anglais concernant ACL en fin du texte original.

Credits

Philippe LAPEYRIE 2006-05-19 00:12

1)
l’espace de nom le plus élevé est appelé *
fr/acl.1395526637.txt.gz · Dernière modification : 2014-03-22 23:17 de 78.247.32.88

Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki