PluXml.org

Blog ou CMS à l'Xml

Vous n'êtes pas identifié(e).

#1 12/03/2018 12:41:53

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 1 182
Site Web

[Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

Bonjour,

Ce plugin permet de sécuriser davantage l'accès au back office de votre site (le côté admin) avec la double auhentification.

En plus de l'habituel couple "compte utilisateur / mot de passe", il vous sera demandé un code PIN ( courte série de chiffres ) généré sur votre smartphone avec une application d'authentification.

On considère aujourd'hui que le couple ci-dessus est insuffisant pour garantir un accès sécurisé à un compte.
Pour améliorer cela, une tentative a été faite avec les images de mots mais cela n'est plus fiable maintenant.
On a donc remplacé cela par un code PIN qui change toutes les 30 secondes et est calculé à partir d'une clé secrète partagée entre votre site et votre smartphone.

Si vous ne connaissez pas la double authentification, je vous encourage à lire l'article suivant :
Numérama : Comment sécuriser facilement ses comptes avec la double authentification

Pour utiliser ce plugin, lire l'aide en ligne depuis les listes de plugins.

Télécharger la dernière version du plugin

2018-03-14 : version 0.9.0 - QR-code embarqué dans la page de profil au format data-uri si généré en interne (voir billet #28)
2018-03-13 : version 0.8.1 - Fix dans .htaccess pour free.fr
2018-03-12 : version 0.8 - 1ère version publiée.

Dernière modification par bazooka07 (15/03/2018 02:12:18)

Hors ligne

#2 12/03/2018 23:52:35

a166
Membre
Inscription : 25/02/2018
Messages : 7

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

Merci pour ce plugin !
J'ai un soucis pour générer le qrcode localement (il ne s'affiche pas), solution que je préfère à celle qui consiste à passer par google.
Quelle dépendance dois-je installer pour cela ?

Hors ligne

#3 13/03/2018 00:47:03

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 1 182
Site Web

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

Bonjour,

Je l'ai testé en local sur mon PC avec Ubuntu 17.10 - PHP 7.1 et Apache
J'ai fait également le test sur un petit Odroid C1 avec Ubuntu 16.04 LTS - 7.0
Test aussi chez OVH avec un hébergememt Kimsufi et PHP 7.0
Jusqu'à là aucun souci.

J'ai voulu fait un essai chez Free.fr avec PHP5.6 et là ça coince. Le QR-code ne s'affiche. On a droit au texte alternatif "QR-code". Et le serveur m'envoie une erreur 500.
Dommage le reste a l'air de fonctionner sans souci. Donc, je suis obligé de passer par Google pour générer le QR-code.

Il faut que je pousse mes investigations un peu plus loin.

De toute façon je conseille d'avoir un PHP 7.0 minimum.

Dis-moi sous quel environnement tu travailles ?

Hors ligne

#4 13/03/2018 10:46:47

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 1 182
Site Web

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

Problème résolu pour Free.fr
La directive FilesMatch n'est pas acceptée dans le fichier .htaccess

Hors ligne

#5 13/03/2018 13:27:48

niqnutn
Membre
Inscription : 21/09/2015
Messages : 367

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

à l'enregistrement de la configuration, j'ai eu une erreur parce que le dossier "plugins" n'existait pas
PluXml/data/configuration/plugins

quand je mets oui pour  Activer la double authentification ça ne semble pas être enregistré.

j'ai pas de QR code et quand je me connecte à la page d'authentification, forcément on me demande un PIN que je ne peux pas avoir.

pour FreeOTP, je rajouterai également ce lien : https://f-droid.org/packages/org.fedorahosted.freeotp/

Dernière modification par niqnutn (13/03/2018 13:31:34)

Hors ligne

#6 13/03/2018 17:01:50

trentanel
Membre
Inscription : 23/01/2017
Messages : 76

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

Bonjour,
Si j'ai bien compris le code QR devrait s'afficher sur la page d'édition du profil, après avoir mis à "oui" la zone "activer la double authentification".
A la place, j'ai ceci, mais pas de code :
sha256 - 6 digits
QR-Code
Scannez le QR-code

EDIT : je suis repassé à "non" et j'ai bien enregistré, mais après déconnexion, le code pin est réclamé  tongue
Une restauration de user.xml et plugins.xml et je suis de retour à l'état antérieur.

C'est un hébergement perso Free.fr

Dernière modification par trentanel (13/03/2018 17:12:24)

Hors ligne

#7 13/03/2018 17:45:25

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 1 182
Site Web

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

@niqnutn,
Avec PluXml 5.6, le dossier data/configuration/plugins est créé à l'installation.
N.B. le dossier peut être renommé, le plugin récupère le paramètrage enregistré par PluXml

Après avoir activé la double authentification dans la page de profil, il faut cliquer sur le bouton modifier le profil. Au retour un QR-code s'affiche. Si le QR-code n'a pas pu être généré en interne ou par Google, le texte alternatif "QR-Code" doit s'afficher. Le QR-Code est une image au format png.
L'emploi du générateur interne de QR-code exige au minimum PHP version 5.4. Sinon Google peut vous aider tongue
La plus vieille version de PHP maintenue est la 5.6.34. Je ne ressens aucune vocation pour les antiquités mad
Si l'écran n'est pas assez large (smartphone), le QR-Code s'affiche à la fin de la page.

Sur la page d'authentification, le champ "code pin" s'affiche dès que le plugin est activé. Si la double authentification n'est pas activé pour le profil, la valeur du champ n'est pas prise en compte. Dans le cas de plusieurs utilisateurs, chacun peut activer la double authentification à sa convenance. Mais cela peut être plus restrictif dans les futures versions du plugin. A étudier.

J'ai refait une installation neuve de PluXml 5.6 en installant kzOtPHP comme premier plugin. Aucun souci ( Version de PHP : 7.1.11-0ubuntu0.17.10.1  Apache/2.4.27 (Ubuntu) )
Ce  matin j'ai fait une install avec une image Docker basée sur Debian/Jessie (version PHP 5.6). Marche aussi bien.

@trentanel,
Cela veut dire que l'image PNG du QR-code ne s'est pas générée correctement en interne Tu dois avoir une erreur 404 ou 500 dans l'onglet réseau de l'inspecteur Web.
Il faut au minimum PHP version 5.4 - version 5.6 conseillée. Désactive le générateur interne de QR-code dans le panneau de config et Google générera le QR-Code. Mais bon...

Le plugin ne modifie pas le fichier users.xml. il n'utilise que son propre fichier de config kzOtPHP.xml. Si on désactive le plugin, les clés secrètes sont conservées tant qu'on efface pas le fichier de config.
En restaurant le fichier plugins.xml tu désactives le plugin. Tu peux aussi supprimer la ligne concernant le plugin dans ce fichier.

Hors ligne

#8 13/03/2018 18:00:14

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 1 182
Site Web

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

@@niqnutn,

Oups, j'ai zappé F-Droid. Il semble qu'il y a plus de choix de FreeOTP, abandonné par Redhat.
Rechercher TOTP sur f-droid.

Hors ligne

#9 13/03/2018 18:34:12

niqnutn
Membre
Inscription : 21/09/2015
Messages : 367

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

pour le dossier, je sais pas ce qui c'est passé mais j'ai vu le message (c'est pas impossible que j'ai supprimé le dossier).

bazooka07 a écrit :

Après avoir activé la double authentification dans la page de profil, il faut cliquer sur le bouton modifier le profil. Au retour un QR-code s'affiche.

ça enregistre et ça me mets "Enregistrement des données effectué avec succès" mais "Activer la double authentification" reste à non  hmm

dés que j'active le plugin, la 2FA est activé sans que je passe par le profil.

honnêtement, je vois pas ce que je peux faire de travers.
c'est sur une nouvelle install de PluXml et j'ai re-testé mais sans changement.

Version de PHP : 5.6.33
PluXml version 5.6 (encodage UTF-8)
kzOtPHP - Version 0.8.1 (13/03/2018)
sur un mutu OVH

Hors ligne

#10 13/03/2018 20:06:04

a166
Membre
Inscription : 25/02/2018
Messages : 7

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

Je suis hébergé sur OVH, avec php 7/nginx, mais le QR code ne s'affiche pas en interne.

Hors ligne

#11 13/03/2018 20:13:24

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 1 182
Site Web

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

J'ai un hébergement Kimsufi chez OVH.

Déjà, OVH préconise d'utiliser PHP 7.0.

  • Je crée un dossier pour faire un test

  • J'upload kzInstall.php

  • j'ouvre la page kzInstall.php dans mon navigateur préféré

  • J'attends que la page finisse de s'afficher

  • rechargement de  la page pour installer PluXml

  • connexion au site

  • activation du plugin kzUploader

  • upload du plugin kzOtPHP avec kzUploader

  • activation du plugin kzOtPHP

  • sélection du générateur interne de QRcode dans le panneau de config

  • enregistrement de la config

  • activation de la double authentification dans le panneau de profil + enregistrer la modif

  • scan du qrcode avec mon smartphone.

  • déconnexion

  • lecture du code pin sur le smartphone et saisie sur le nouveau site

  • Et c'est prêt

En 2mn, l'affaire est pliée.
C'est difficile de faire plus simple.

J'attends encore quelques retours pour intégrer ce plugin dans kzInstall.php. J'ai juste une ligne à rajouter.

Dernière modification par bazooka07 (13/03/2018 20:16:52)

Hors ligne

#12 13/03/2018 20:23:34

trentanel
Membre
Inscription : 23/01/2017
Messages : 76

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

Je confirme que sur un perso Free.fr le code ne s'affiche pas. J'ai contourné comme tu as décrit plus haut.
Pour le reste ça fonctionne bien.
Merci pour ce plus.

Hors ligne

#13 13/03/2018 20:34:21

niqnutn
Membre
Inscription : 21/09/2015
Messages : 367

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

pour php et ovh: https://docs.ovh.com/fr/hosting/configu … mutu-2014/
de toute façon, tu indiques qu'il faut au mini la 5.4 donc c'est pas le problème.

sinon, pour l'install j'ai fait exactement la même chose que toi jusqu'à la configuration du plugin.
si jamais tu veux constater par toi même, je te déposes kzInstall.php chez moi et tu pourras tester.

Hors ligne

#14 13/03/2018 21:04:53

a166
Membre
Inscription : 25/02/2018
Messages : 7

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

J'avais téléchargé l'archive du zip et l'avais décompressée dans le dossier plugins, avant de l'activer, mais je ne savais pas qu'il y avait un fichier "kzInstall.php".

Du coup, quand je passe par l'upload de ce fichier, j'ai cette erreur :
The following libraries are required :
- ZipArchive

Et quand je cherche le paquet correspondant, j'ai seulement ça :
android-libziparchive/stable 1:7.0.0+r33-1 amd64
  bibliothèque pour les archives ZIP
android-libziparchive-dev/stable 1:7.0.0+r33-1 amd64
  bibliothèque pour les archives ZIP – fichiers de développement

Hors ligne

#15 13/03/2018 22:28:16

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 1 182
Site Web

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

@a166,

Non, cela n'a rien à voir.
ZipArchive est le nom d'une class PHP.

Sous Ubuntu 17.10, il faut faire :

[== bash ==]
$ apt search php zip
En train de trier... Fait
Recherche en texte intégral... Fait
libjs-edit-area/artful,artful 0.8.2-1 all
  Un éditeur libre pour le code source javascript

php-bz2/artful,artful 1:7.1+54ubuntu1 all
  bzip2 module for PHP [default]

php-http-request2/artful,artful 2.3.0-1 all
  Provides an easy way to perform HTTP requests

php-pclzip/artful,artful 2.8.2-4 all
  ZIP archive manager class for PHP

php-text-figlet/artful,artful 1.0.2-4 all
  Engine for use FIGlet fonts to rendering text

php-zip/artful,artful,now 1:7.1+54ubuntu1 all  [installé, automatique]
  Zip module for PHP [default]

php7.1-bz2/artful-updates 7.1.11-0ubuntu0.17.10.1 amd64
  bzip2 module for PHP

php7.1-zip/artful-updates,now 7.1.11-0ubuntu0.17.10.1 amd64  [installé, automatique]
  Zip module for PHP

il s'agit du paquet php-zip

[== bash ==]
sudo apt install php-zip

Le principal intérêt de kzInstall.php est quand on a un serveur distant perdu sur Internet. Cela évite de pâtir de la vitesse catastrophique en upload d'une ligne ADSL.

Dernière modification par bazooka07 (13/03/2018 22:31:09)

Hors ligne

#16 13/03/2018 22:41:26

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 1 182
Site Web

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

@trentanel,

On peut afficher le QR-code avec le générateur interne. Pour cela, il faut modifier le fichier .htaccess dans le dossier du plugin comme suit. La directive FilesMatch n'est pas prise en compte chez Free.fr.

[== .htaccess ==]
<Files "*">
        Order Deny,Allow
        Deny from all
</Files>
<Files "*.png">
        Allow from all
</Files>
<Files "qrcode.php">
        Allow from all
</Files>
<Files "test.php">
        Allow from all
</Files>

Et à la racine du site, le .htaccess suivant force PHP à passer en version 5.6:

[== .htacces ==]
<IfDefine Free>
   php56 1
</IfDefine>

Dernière modification par bazooka07 (13/03/2018 22:43:57)

Hors ligne

#17 13/03/2018 22:56:41

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 1 182
Site Web

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

@niqnutn

Je préfère passer par l'espace client pour configurer PHP.
Voir copie d'écran

Que dit le fichier error.log ?

Hors ligne

#18 13/03/2018 23:00:33

a166
Membre
Inscription : 25/02/2018
Messages : 7

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

bazooka07 a écrit :

@trentanel,

On peut afficher le QR-code avec le générateur interne. Pour cela, il faut modifier le fichier .htaccess dans le dossier du plugin comme suit. La directive FilesMatch n'est pas prise en compte chez Free.fr.

[== .htaccess ==]
<Files "*">
        Order Deny,Allow
        Deny from all
</Files>
<Files "*.png">
        Allow from all
</Files>
<Files "qrcode.php">
        Allow from all
</Files>
<Files "test.php">
        Allow from all
</Files>

Et à la racine du site, le .htaccess suivant force PHP à passer en version 5.6:

[== .htacces ==]
<IfDefine Free>
   php56 1
</IfDefine>

kzInstall.php m'a installé PluXml dans mon PluXml existant... Pas grave, c'est un détail.
Toujours pas de QR code en vue. Il faudrait sans doute que j'ai des directives similaires à celles-ci dans un .htaccess pour nginx ?

Hors ligne

#19 14/03/2018 00:12:06

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 1 182
Site Web

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

@a166,

Le fichier .htaccess ne marche que pour les serveurs Apache. Il juste là pour interdire l'accès du dossier du plugin aux petits curieux sur le net.

il faut regarder les erreurs enregistrées dans le fichier /var/log/nginx/error.log.
Tu peux regarder comment est installé PHP en mettant sur ton serveur un fichier phpinfo.php avec ceci et en l'affichant dans Firefox ou autre

[== PHP ==]
<?php phpinfo(); ?>

Pour kzInstall, il faut le mettre dans un dossier vide.

Comment tu fais pour  avoir un serveur Nginx chez OVH, C'est un VPS ?

Dernière modification par bazooka07 (14/03/2018 00:15:10)

Hors ligne

#20 14/03/2018 00:32:36

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 1 182
Site Web

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

@a166

Regarde avec phpinfo si tu as la librairie iconv installée

Voir la copie de la page phpinfo avec php et Nginx (attention image très très très haute)

Hors ligne

#21 14/03/2018 13:30:49

trentanel
Membre
Inscription : 23/01/2017
Messages : 76

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

bazooka07 a écrit :

@trentanel,

On peut afficher le QR-code avec le générateur interne. Pour cela, il faut modifier le fichier .htaccess dans le dossier du plugin comme suit. La directive FilesMatch n'est pas prise en compte chez Free.fr.

Le fichier .htaccess téléchargé avec le plugin a déjà ce même contenu, pas de " FilesMatch ".

Quand au php il est lui aussi déjà en PHP Version 5.6.8.

Hors ligne

#22 14/03/2018 17:13:23

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 1 182
Site Web

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

@trentanel,

Crée sur ton serveur un fichier, nommé par exemple variables.php, contenant simplement la ligne suivante et affiche la page dans ton navigateur préféré :

[== PHP ==]
<?php phpinfo(INFO_VARIABLES); ?>

Et vérifie que la variable $_SERVER['HTTP_ACCEPT_LANGUAGE'] contient au moin "fr", la langue d'administration de PluXml.
phpinfo

Hors ligne

#23 14/03/2018 17:37:48

trentanel
Membre
Inscription : 23/01/2017
Messages : 76

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

Et bien non, pas de fr ! On peut l'ajouter chez Free ?

phpinfo a écrit :

_SERVER["HTTP_ACCEPT_LANGUAGE"]    en-US,en;q=0.5

Hors ligne

#24 14/03/2018 18:14:00

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 1 182
Site Web

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

Donc tu as une erreur 404 quand tu veux afficher le QR-code avec le générateur interne

Cela se configure dans ton navigateur .
Pour Firefox, cliquer sur le burger (tri-barre en haut à droite, choisir préférences, général et langues et apparences, langue

Sous Debian, Firefox est configuré par défaut pour n'accepter que l'anglais, même si le reste est en français
Je vais rajouter un message d'avertissement  pour ceux qui configurent mal leur navigateur tongue

Sinon pour faire sauter le test de sécurité dans le fichier qrcode.php il faut modifier la ligne n°18 comme suit, mais c'est mal !

[== PHP ==]
if(true or substr($set1[2], 0, 2) == $_SESSION['admin_lang']) {
....
}

Ici on parle français

Hors ligne

#25 14/03/2018 19:59:21

trentanel
Membre
Inscription : 23/01/2017
Messages : 76

Re : [Plugin] kzOtPHP pour double authentification (2FA, TOTP, QR-Code)

Chez moi, ce sont les mêmes langues dans le même ordre.

Par contre, si je choisi "non" pour le générateur local, alors j'ai bien le code QR qui s'affiche. Avec "oui" c'est comme signalé plus haut.

Dernière modification par trentanel (14/03/2018 20:03:52)

Hors ligne

Pied de page des forums

A propos Nous soutenir Contact Twitter Google+
Copyright © 2006-2018 PluXml.org, tous droits réservés