technique:adminserv:wiki

Utilisation et configuration du wiki

Le wiki est un espace de documentation collaboratif pour Picasoft. On y trouve de la documentation technique, mais aussi de la documentation sur la gestion associative ou encore des documents officiels de Picasoft.

Pour bien gérer les accès aux différentes pages du Wiki, 3 groupes d’utilisateurs existent :

  • les utilisateurs (user): ayant accès en lecture à la partie publique du Wiki
  • les bénévoles (benevole): ayant accès en lecture/écriture à la partie publique et la partie picasoft-interne
  • les membres du bureau (admin): ayant tous les droits

Pour gérer les groupes il faut se rendre dans l’interface d’administration du Wiki (il faut pour cela être dans le groupe admin). Il est possible d’assigner un groupe à chaque utilisateur et de configurer des ACLs donnant des droits à des groupes sur différentes parties du Wiki.
Le bureau est chargé de maintenir à jour les différents accès. Dans tout les cas il est TRÈS important que seul les membres du bureau aient accès à la partie prive (CAD au groupe admin).

Pour passer d’une méthode d’authentification basée sur la création de comptes spécifiques à Dokuwiki vers l’utilisation d’un annuaire LDAP, quelques changements sont nécessaires. Attention, toujours faire ces tests sur un wiki de test, sous peine de perdre toute possibilité de s’authentifier.

  • Veiller à ce que l’extension PHP LDAP soit installée (sous Debian-like : php7.0-ldap)
  • Activer le plugin LDAP (Administrer → Gestionnaire d’extensions → LDAP Auth Plugin → Activer
  • Changer les paramètres (Administrer → Paramètres de configuration). Ci-dessous, on trouve un extrait de html/config/local.php, présent à la racine du volume Dokuwiki et qui correspond aux paramètres personnalisés. Ces derniers peuvent être modifiés depuis l’interface d’administration, mais il est plus pratique de copier le fichier de configuration :
// Utiliser les ACL
$conf['useacl'] = 1;
// Méthode d'authentification
$conf['authtype'] = 'authldap';
// Adresse du serveur LDAP
$conf['plugin']['authldap']['server'] = 'ldap://ldap.picasoft.net';
// DN des users et des groupes
$conf['plugin']['authldap']['usertree'] = 'ou=People,dc=picasoft,dc=net';
$conf['plugin']['authldap']['grouptree'] = 'ou=Groups,dc=picasoft,dc=net';
// Filtres : on ne veut que les posixAccount avec un UID correspondant, et on assigne le groupe en fonction du GID
$conf['plugin']['authldap']['userfilter'] = '(&(uid=%{user})(objectClass=posixAccount))';
$conf['plugin']['authldap']['groupfilter'] = '(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUid=%{user})))';
// À ne pas changer
$conf['plugin']['authldap']['version'] = 3;
// Compte LDAP en lecture seule sur les utilisateurs (sans le mot de passe!)
$conf['plugin']['authldap']['binddn'] = 'cn=wiki,ou=Services,dc=picasoft,dc=net';
// Hash du mot de passe du compte lecture seule, plus facile de le set depuis l'interface
$conf['plugin']['authldap']['bindpw'] = 'XXXX';
// Quel champ donne le nom de la personne ?
$conf['plugin']['authldap']['userkey'] = 'cn';
// Ne pas permettre la modif de mot de passe LDAP depuis Dokuwiki (impossible vu la lecture seule de toute façon)
$conf['plugin']['authldap']['modPass'] = 0;

Tout devrait être bon. On pourra afficher les informations de debug (voir ci-dessous) une fois connecté pour vérifier que l’on appartient bien aux bon groupes. Ensuite, on refera les ACL en fonction des nouveaux groupes LDAP.

On peut dans un premier temps visiter la page https://wiki.picasoft.net/doku.php?do=check, qui fournira des informations sur le groupe de l’utilisateur courant, ses permissions sur la page courante, etc. C’est un bon premier pas pour déterminer la source d’un souci de permissions, par exemple.

Ensuite, on peut se rendre dans Administrer → Gestionnaire de configuration → allowdebug et cocher la case. Attention, ce paramètre est effectif pour l’intégralité du site et peut leaker des informations. À n’utiliser que dans des cas spécifiques, ou sur l’instance de test, et le désactiver dès que possible.

Il est possible de vouloir, temporairement, rajouter une bannière dans le Wiki pour attirer l’attention de l’utilisateur sur un détail particulier. Exemple : changement de méthode d’authentification (compte Dokuwiki vers LDAP).

Un dirty fix, suffisant pour les besoins, consiste à modifier le fichier /DATA/docker/wiki/html/lib/tpl/bootstrap3/topheader.html sur pica02, et de décommenter le HTML. Ce fichier résiste aux mises à jour ; il n’existe pas de base et est injecté juste avant l’ajout de la barre de navigation. Tel que conçu actuellement, il ajoute un gros cadre rouge avec du texte centré. Exemple :

<div style="background-color:red; margin-bottom: 10px; text-align:center; padding: 20px; font-size: large;">Ceci est un test.</div>

Pour toute insulte concernant la présence de CSS statique dans du HTML, merci de vous adresser au bureau.

  • technique/adminserv/wiki.1604871543.txt.gz
  • de qduchemi