Prérequis
Pour suivre la documentation suivante concernant l’installation et la mise en place d’un serveur hébergeant Wiki.js, un deuxième serveur Nextcloud et un troisième serveur AD. Le serveur AD servira de d’annuaire pour que les utilisateurs des serveurs Nextcloud et Wiki.js puissent se connecter avec les droits attribués à chacun. Voici la liste des machines nécessaires :
- 2 machines virtuelles sous Rocky Linux (ici version 9.4)
- 1 machine virtuelle sous Windows Server Standard (ici Windows Server 2022)
Installation et configuration des éléments nécessaire pour assurer la qualité de service
• Création d’un groupe ainsi que d’un utilisateur
sudo groupadd --system wiki
• Activation et installation de packages packages nécessaires
sudo useradd -s /sbin/nologin --system -g wiki wiki
sudo yum install git nano wget curl unzip tar socat mariadb-server nodejs nginx redis -y
- Installation de wiki-js
- Création d’un dossier wiki à la racine
sudo mkdir /wiki
- Récupération du fichier d’installation
sudo wget <https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz>
- Extraction du fichier
sudo tar xzf wiki-js.tar.gz -C /wiki cd /wiki ls -la
- Démarrage de mysql
sudo systemctl start mariadb
sudo systemctl status mariadb
- Configuration de mysql par défaut en exécutant le script
sudo mysql_secure_installation


- Connexion à mysql avec le mot de passe défini plus tôt
mysql -u root -p
- Création d’un utilisateur wiki avec un mot de passe
CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'P@ssword59!';
- Création d’une base de données pour le wiki
CREATE DATABASE wiki_database;
- Affectation et application des droits privilèges à l’utilisateur créé plus tôt
GRANT ALL PRIVILEGES ON wiki_database.* TO 'wiki'@'localhost';
FLUSH PRIVILEGES;
- Vérification de la base de données
SHOW DATABASES;

- Vérification des droits de l’utilisateur wiki :
SHOW GRANTS FOR 'wiki'@'localhost';

- L’installation de redis a été effectuée plus tôt, nous allons rendre redis enable :
sudo systemctl enable --now redis
- Vérification du status de redis :
sudo systemctl status redis
- On copie le fichier exemple de configuration pour effectuer une configuration préalablement :
ls -la
sudo cp config.sample.yml config.yml
sudo nano config.yml
- Modification du fichier de configuration pour faire correspondre les informations :
db:
type: mariadb
# PostgreSQL / MySQL / MariaDB / MS SQL Server only:
host: localhost
port: 3306
user: wiki
pass: P@ssword59!
db: wiki_database
ssl: false
- Test de la configuration grâce à la commande sudo node server :
sudo node server

- Ouverture du port dans le pare-feu, puis recharger le pare-feu
sudo firewall-cmd --add-port=3000/tcp --permanent
sudo firewall-cmd --reload
- Faire tourner le service en tant que service :
sudo nano /etc/systemd/system/wiki.service
[Unit]
Description=Wiki.js
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/node server
Restart=always
User=wiki
Environment=NODE_ENV=production
WorkingDirectory=/srv/wiki
[Install]
WantedBy=multi-user.target
- On déplace le fichier wiki dans la bonne racine :
sudo cp -r /wiki /srv/
- Attribution des droits
sudo chown -R wiki:wiki /srv/wiki
- On recharge
sudo systemctl daemon-reload
sudo systemctl enable --now
sudo systemctl enable --now wiki.service
- Vérification si le service est opérationnel :
sudo systemctl status wiki
- Ajout d’entrée SeLinux :
sudo semanage port -a -t http_port_t -p tcp 3000
sudo setsebool -P httpd_can_network_connect 1
- Il est possible depuis un navigateur web de se rendre sur la page d’installation de la solution :
http://*adresse_ip*:3000


- Après s’être connecté, on a la possibilité de créer une page :

- Après avoir créée une page, il faut aller sur l’Administration en haut à droite de la page pour personnaliser :

- Possibilité d’ajouter des groupes et des utilisateurs

- Possibilité de mettre en place des stratégies d’authentification (Par exemple grâce à l’AD que nous mettrons en place plus tard) :

- Possibilité d’ajout des extensions
- Possibilité de changer la langue

- Possibilité de personnalisation de l’entreprise

Mise en place du serveur AD
Voir la documentation Mise en place d’un serveur AD, DNS, DHCP
Nous nous baserons sur l’arborescence AD suivante :

Authentification sur le WikiJS avec l’AD
- Aller dans le portail d’administration de WikiJS
- Comme expliqué dans le grand II. Installation de Wiki.js :

- Ajout d’une stratégie de type « Active Drectory »

- Renseignement des paramètres du serveur AD
- Adresse serveur AD avec port 389 (LDAP)
- Login utilisateur permettant de lire l’AD en utilisant le distinguished name (DN)
- Mot de passe
- Emplacements des utilisateurs autorisés pour l’authentification dans l’AD
- Utilisation du filtre SAMAccountName (Attribut pour le nom de l’objet)
⚠️Pour s’aider, il est possible de trouver l’ensemble des informations dans l’éditeur d’attribut de l’AD de votre objet⚠️
DN (Distinguished Name) : Représente le chemin LDPA qui permet de trouver l’objet dans l’annuaire AD

- Application des paramètres (comme ceux ci-dessous)
- Par défaut, un utilisateur disposera uniquement des droits « guests »
- Pour des raisons de sécurité, si un utilisateur doit avoir les droits administrateurs sur le Wiki, il faudra faire l’action manuellement


- Création d’un nouveau groupe pour les utilisateurs de l’Active Directory

- Modification des paramètres du groupe pour définir les autorisations sur le wiki
- Selon la matrice de droits, il faudra attribuer des groupes avec des droits spécifiques aux utilisateurs

Test de connexion avec 2 utilisateurs différents
⚠️TIPS : Si vous ouvrez une fenêtre en navigation privée, vous pouvez être authentifier avec 2 utilisateurs différents⚠️
Test avec le compte demo-it dans OU=UTILISATEURS,OU=IT,OU=SERVICES,CN=LAB,CN=LOCAL

En tant qu’administrateur de Wiki.JS, il y a possibilité de voir quels utilisateurs se sont connectés à WIKI.JS.

De plus, lorsque les utilisateurs se connectent, ceux-ci sont placés dans le groupe « Guest ».

