Implémentation d’OpenID sur Pluxml
Utilisant de plus en plus Pluxml dans la mise en place de sites web et de blogs, je me suis renseigné sur la possibilité de mettre en place un login OpenID pour atteindre la zone d’administration.
N’ayant rien trouvé de concret, j’ai décidé d’implémenter moi-même cette solution d’authentification sur la plateforme Pluxml 5.0.2 à partir de la librairie php-openid.
Vous pouvez donc trouver en bas de cet article, le patch sous forme d’archive applicable à pluxml 5.0.2 afin de pouvoir utiliser l’authentification OpenID.
Cette archive n’est pas un plugin, son application sur une installation opérationnelle de Pluxml 5.0.2 n’est pas sans risque ! N’oubliez pas d’effectuer une sauvegarde avant tout test.
Cette archive ajoute et modifie certains fichiers du répertoire /core/admin de pluxml. Ce patch ne peut être installé directement que sur une installation propre de Pluxml 5.0.2 ou si aucun des fichiers modifiés par ce patch dans /core/admin n’a été précedemment modifié pour vos besoin personnels. Dans le cas contraire, veuillez plutot décompresser l’archive dans un répertoire temporaire et adapter vos modifications sur ces fichiers (ou inversement).
Voici le détails des modifications apportées:
- Intégration de l’authentification OpenID
- Ajout d’un profil Contributeur qui permet la saisie d’articles et nécessite la validation de l’administrateur ou d’un modérateur pour la publication
- Possibilité d’automatiser la création des utilisateurs depuis leur OpenID avec automatiquement un profil de contributeur
Les fichiers affectés se situent tous dans /core/admin.
Fichiers et librairies ajoutés:
- Auth => La librairie php-openid
- const_openid.php => déclaration des constantes nécessaires (et personnalisation par site)
- login_openid.php => Page d’authentification pour OpenID
- verify_login_openid.php => Affectation de l’utilisateur à partir de son identifiant OpenID
- img/social-icon.png => Set d’icones pour la page d’authentification
Fichiers modifiés:
- auth.php => Page principale d’authentification, ajout de l’appel à la page « login_openid.php »
- prepend.php => Ajout du profil « Contributeur »
- top.php => Ajout d’un filtrage et configuration du profil « Contributeur »
- parametres_users.php => Configuration du profil par défaut sur « Contributeur »
- medias.php => Restriction, interdiction pour le profil « Contributeur »
- article.php => Désactivation des options de publication pour le profil « Contributeur »
- admin.css => Ajout de l’affichage nécessaire pour le cadre d’authentification OpenID
Un installation demo est accessible à l’adresse suivante:
Cette version étant toute fraiche, seuls l’authentification OpenID de Google et d’Orange ont été testées et sont fonctionnelles. Si vous utilisez un autre provider OpenID (ou votre propre provider OpenID), une fois connecté sur l’interface de demo, vous avez directement un accès contributeur et pouvez donc rédiger vos commentaires dans un article dont seul vous et moi-même avez accès. Si certains contenu de ces articles sont pertinents, je les mettrais en ligne afin de permettre à tous d’en profiter.
L’archive permettant le patching de Pluxml version 5.0.2 est disponible ci-dessous:
L’application du patch est très simple, il suffit de vous placer dans le répertoire parent de pluxml (par exemple /var/www) puis de décompresser l’archive via la commande suivante:
tar -xvzf pluxml-patch-openid.tar.gz
Une fois le patch appliqué, lorsque vous vous rendrez sur l’écran de connexion à la zone d’administration, vous devriez obtenir ceci:
Vous pouvez désormais vous connecter en cliquant sur l’un des pictogrammes correspondant à votre provider OpenID ou saisir votre url OpenID si votre provider n’est pas listé.
Comme toujours, n’hésitez pas à laisser vos commentaires, que ce soit sur ce blog ou sur le blog de demo correspondant à cet article.
Ressources: