Implémentation d’OpenID sur Pluxml

avr 26

Publié par Gatien dans Actualités, Planet-Libre | 1 commentaire

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 ...

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.

spacer 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:

  • demo.libre-astux.info
  • demo.libre-astux.info/core/admin

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:

  • pluxml-patch-openid.tar.gz

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:

spacer 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:

  • Soyer votre propre fournisseur OpenID
  • Ressources Pluxml
  • Librairie Php-OpenID

Étiquettes: développement, implémentation, openid, patch, pluxml

Mise à niveau vers Ubuntu 11.04 (actuellement en Alpha 3)

mar 19

Publié par Gatien dans Planet-Libre, Planet-Ubuntu | 3 Commentaires

J'ai récemment migré mon poste de test vers Ubuntu 11.04 (Natty Narwhal, version Alpha 3, Amd64), comme d'habitude, non pas une installation complète mais une mise à niveau via la commande: update-manager -d qui permet de mettre à jour le système vers la version de développement. Une fois la mise à niveau effectuée, l'interface graphique ne s'est ...

J’ai récemment migré mon poste de test vers Ubuntu 11.04 (Natty Narwhal, version Alpha 3, Amd64), comme d’habitude, non pas une installation complète mais une mise à niveau via la commande:

update-manager -d

qui permet de mettre à jour le système vers la version de développement.

Une fois la mise à niveau effectuée, l’interface graphique ne s’est pas relancée automatiquement, problème lié au pilote nvidia précédemment utilisé. Une fois le fichier de configuration de xorg renommé à l’aide de la commande suivante:

sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.old

Gdm ne se lance pas tout seul, je relance gdm dans les services au démarrage (désactivé automatiquement lors de la mise à niveau ???):

sudo update-rc.d -f gdm defaults

Puis suit un redémarrage du système, je retrouve enfin mon écran de login. Une fois logué (session classique), je reconfigure le pilote nvidia via l’interface graphique en exécutant nvidia-xconfig puis nvidia-settings.

Je retrouve l’usage de mes 2 écrans en twinview (bureau en continu sur les 2 écrans).

Autres problèmes:

Unity:

Sur mon poste et malgré plusieurs tentatives, impossible d’utiliser l’interface « Unity » pourtant configurée en tant qu’interface par défaut lors du login (choisir « interface classique » au login pour basculer sur gnome)

Firefox 4:

Incompatibilité de profil entre Firefox 3.6 et Firefox 4, impossible de lancer Firefox 4 même en safe mode, j’ai du renommer mon profil afin qu’un nouveau puisse être crée. j’ai ensuite réimporté mes favoris sur celui-ci.

mv /home/user/.mozilla /home/user/.mozilla.ff3_6

Une fois cette manipulation effectuée, Firefox 4 se lance sans problème. La restauration des favoris se fait via le gestionnaire de bookmark => Import => Sélectionner le dernier fichier de backup dans le profil « .mozilla.ff3_6″.

Pour le reste, tout semble fonctionner convenablement hormis quelques freeze complet (arret disques durs + perte clavier et souris) de temps en temps, problème récurrent sur ce poste depuis Ubuntu 9.10. (spécifique à la version 64 bits)

Pour test, une Debian Squeeze est également installée sur ce poste, sur le même disque dur et avec les même applications, je n’ai pas le moindre problème de freeze.

Certains d’entre vous ont déjà testé cette future version d’Ubuntu, d’autres s’y interressent et se demande s’ils peuvent franchir le pas avant la mise à disposition de la version finale. Cette version ne me semble pas encore suffisamment stable pour ceux qui ne s’y connaissent pas suffisamment en ligne de commande. De plus Unity proposé comme interface par défaut est encore loin d’être opérationnel sur cette version en tout cas.

Si vous rencontrez d’autres problèmes spécifiques, que vous ayez ou non trouvé une solution, venez partager votre expérience en laissant un commentaire afin de recenser les problèmes les plus fréquents avec cette nouvelle version (La version beta 1 est prévue pour le 31 mars 2011 pour une version finale le 28 avril 2011).

Étiquettes: alpha 3, firefox, problèmes, test, ubuntu 11.04, unity

Accès à un lecteur réseau depuis Apache

jan 15

Publié par Gatien dans Mémos, Planet-Libre | Aucun commentaire

Nos données étant de plus en plus souvent stockées sur des supports distants, il peut être nécessaire de donner accès à un lecteur réseau à notre serveur Apache. Cette opération se révèle extrêmement facile sur un système Gnu/Linux puisqu'il suffit de créer un point de montage sur le système et d'autoriser son accès via la ...

Nos données étant de plus en plus souvent stockées sur des supports distants, il peut être nécessaire de donner accès à un lecteur réseau à notre serveur Apache.

Cette opération se révèle extrêmement facile sur un système Gnu/Linux puisqu’il suffit de créer un point de montage sur le système et d’autoriser son accès via la configuration d’Apache:

Monter le lecteur réseau automatiquement via fstab (y ajouter la ligne suivante):

//192.168.0.10/apache /mnt/netdrive smbfs rw,user,uid=1000,gid=1000,credentials=/etc/samba/pub.cred 0 0

user = n’importe quel utilisateur peut monter et démonter le partage
uid,gid = à qui appartient le partage (par défaut root.root avec les droits 755 donc un utilisateur ne peut écrire par défaut dans le partage)
credentials = on met pas l’utilisateur et le mot de passe en clair dans fstab mais dans un fichier /etc/samba/pub.cred (protégé en lecture lui)

le fichier pub.cred contient:
username=Domain\Apache
password=motdepasseassocie

source: Monter un partage Samba avec fstab de Jérome Hanoteau

Configurer les droits d’accès depuis Apache (/etc/apache2/sites-available/default ou autre), il faut ajouter les lignes suivantes (à adapter) entre les balises VirtualHost souhaitées:

Download votre-site.conf
1
2
3
4
5
6
7
Alias /netdrive/ "/mnt/netdrive/"
<Directory "/mnt/netdrive/">
    Options -Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

En revanche sous Windows, impossible d’accéder à un lecteur réseau depuis Apache avec une configuration par défaut. Et pour cause, par défaut le serveur Apache est lancé en tant que service par l’utilisateur « System », or cet utilisateur ne peut accéder aux partages réseaux.

La solution apparait donc simplement, il suffit de modifier le compte avec lequel le serveur Apache est lancé. Il faut remplacer l’utilisateur « System » par un utilisateur du domaine ayant les droits nécessaires sur les répertoires concernés. Pour la suite nous utiliserons donc l’utilisateur « domain\Apache ».spacer

Les étapes:

  • Win+R
  • Services.msc
  • Clic droit sur « Apache »
  • Onglet « Log on »
  • Modifier le compte comme sur l’image ci-contre
  • Valider
  • Ajouter les droits sur les répertoires nécessaires au fonctionnement d’Apache pour cet utilisateur:
    • C:\Program Files\Apache Software Foundation\Apache2.2
    • C:\Windows\temp

spacer

Pour ajouter les droits sur un répertoire, il faut effectuer un clic droit sur celui-ci puis « Propriétés » puis dans l’onglet « Security », ajouter l’utilisateur souhaité et lui donner les droits souhaités (lecture, écriture pour les répertoires locaux nécessaires à Apache, lecture et/ou écriture pour les lecteurs réseaux en fonction des besoins).

Il faut également effectuer cette opération sur les répertoires réseaux que l’on souhaite lui rendre accessible.

spacer /!\ !!! Nous touchons ici à la gestion des droits d’accès, veillez à ne pas fournir trop de droits à cet utilisateur afin de limiter l’impact en cas d’erreur dans la configuration (utiliser un utilisateur de base de votre domaine et ne lui donner accès qu’aux répertoires nécessaires). !!! /!\

N’oublions pas de relancer le service Apache une fois ces modifications effectuées afin de valider le fonctionnement du serveur avec ce nouvel utilisateur.

Nous passons ensuite à la configuration d’Apache à proprement parler, comment rendre accessible ce fameux lecteur réseaux ?

Contrairement à ce que l’on pourrait penser, il est impossible de dire à Apache d’utiliser un lecteur réseau identifié par une lettre. De même, la gestion des droits à ce répertoire doit se faire au niveau Windows et non dans la configuration d’Apache.

Ainsi au niveau de la configuration d’Apache lui-même, rien de spécial. Il est possible d’ajouter un alias pour faciliter les choses mais ce n’est pas obligatoire.

Alias /netdrive/ « //192.169.0.10/apache/ »

Il suffit ensuite d’utiliser soit le chemin réel, soit l’alias dans notre code PHP ou autre afin d’accéder à ces données.

Exemple:

Download test.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
// Affiche le contenu d'un fichier sur le réseau et déplace celui-ci
$rep = "//192.169.0.10/apache/";
$annee = date("Y");
$dest_rep = "//192.169.0.10/apache/$annee";
$dir = opendir($rep);
while ($f = readdir($dir))
{
   if(is_file($rep.$f))
   {
     echo $f;
     rename($rep.$f, $dest_rep.$f);
   }
}
?>

Étiquettes: apache, domaine, droits accès, lecteur réseaux, windows

Squid, Proxy et Reverse-Proxy sur un même serveur

jan 5

Publié par Gatien dans Mémos, Planet-Libre | 1 commentaire

Un petit mémo sur Squid pour ouvrir cette nouvelle année pour laquelle je souhaite mes Meilleurs Voeux à chacun de vous, fidèles lecteurs ou lecteurs d’un jour, vous êtes de plus en plus nombreux à suivre ce blog et je vous en remercie, continuons sur cette lancée pour 2011. Squid peut être configuré en tant ...

Un petit mémo sur Squid pour ouvrir cette nouvelle année pour laquelle je souhaite mes Meilleurs Voeux à chacun de vous, fidèles lecteurs ou lecteurs d’un jour, vous êtes de plus en plus nombreux à suivre ce blog et je vous en remercie, continuons sur cette lancée pour 2011.

Squid peut être configuré en tant que « Proxy » (comportement par défaut), il permet dans ce cas à ses utilisateurs d’accéder à tout ou partie d’internet ou de divers Intranet. Il peut également servir de « Reverse-Proxy » , il permet alors de rendre disponible certaines ressources internes (provenant d’un ou plusieurs serveurs) tout en proposant une mise en cache, ce qui va alléger la charge des serveurs situés derrière lui.

Schéma du principe de fonctionnement du Reverse-Proxy:

spacer

Par défaut, une seule instance de squid peut être lancée à la fois. Si l’on souhaite mettre en oeuvre un Proxy et un Reverse-Proxy sur un même serveur, il va falloir procéder à quelques modification dans la configuration de squid.

Nous n’allons pas nous occuper ici de la configuration de Squid en mode Proxy puisque la configuration par défaut permet déjà ce fonctionnement. Nous allons donc permettre le lancement de multiples instances et configurer le Reverse-Proxy.

Nous allons donc avoir 2 fichiers de configurations différents:

/etc/squid/squid.conf
/etc/squid/squid-reverse.conf

Voyons un exemple de ce que peut donner la configuration du fichier squid-reverse.conf:

Download squid-reverse.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# nom du reverse-proxy et port d'écoute
visible_hostname test
http_port 80 defaultsite=192.168.0.5
#
# le site proposé par défaut par le reverse-proxy se trouve sur 192.168.0.5:
cache_peer 192.168.0.5 parent 80 0 no-query no-digest originserver name=test
acl webserver dst 192.168.0.5
http_access allow webserver
#
# autoriser l'utilisation du reverse-proxy sur le port 80 pour tout le monde:
acl all src 0.0.0.0/0.0.0.0
http_access allow all
acl web port 80
http_access allow web
#
# configuration du cache:
cache_dir ufs /var/spool/squid3 2048 16 256
coredump_dir /var/spool/squid3
cache_effective_group proxy
cache_mem 50 MB
minimum_object_size 0 KB
maximum_object_size 64096 KB
#
# Emplacement du PID et des fichiers de logs:
pid_filename /var/run/squid-reverse.pid
access_log /var/log/squid/access-reverse.log squid
cache_log /var/log/squid/cache-reverse.log
#
forwarded_for on

Nous devrons ensuite générer le cache correspondant à ces 2 configurations:

/usr/sbin/squid -z

/usr/sbin/squid -z -f /etc/squid/squid-reverse.conf

Puis modifier le script de lancement de squid, ou en ajouter un pour les gérer indépendamment, nous allons ajouter un fichier:

/etc/init.d/squid-reverse

Pour faire simple et tester, il suffit d’y placer la commande de lancement suivante:

/usr/sbin/squid -f /etc/squid/squid-reverse.conf

Libre à vous ensuite de créer un véritable script de lancement en vous basant sur le script de lancement de Squid ou sur le template disponible (« /etc/init.d/skeleton« ).

Lancer ces scripts automatiquement au démarrage pour démarrer le Proxy et le Reverse-Proxy:

update-rc.d -f squid defaults

update-rc.d -f squid-reverse defaults

Nos 2 services ne devant pas être utilisés par les mêmes personnes, le proxy sera utilisé depuis le réseau interne tandis que le reverse-proxy sera utilisé par les internautes souhaitant accéder à notre site, nous penserons également à configurer un parefeu à l’aide d’iptables afin de sécuriser ce serveur proxy, un exemple suivra dans le prochain article.

Sources et ressources relatives:

spacer

  • Configurer de multiples instances de Squid
  • Configurer Squid en Reverse-Proxy
  • Installer et configurer Squid sous Ubuntu

Étiquettes: instances multiples, proxy, reverse-proxy, squid

Bonne Année 2011

jan 1

Publié par Gatien dans Actualités | Aucun commentaire

Un petit article pour ouvrir cette nouvelle année pour laquelle je souhaite mes Meilleurs Voeux à chacun de vous, fidèles lecteurs ou lecteurs d'un jour, vous êtes de plus en plus nombreux à suivre ce blog et je vous en remercie, continuons sur cette lancée pour 2011.

Un petit article pour ouvrir cette nouvelle année pour laquelle je souhaite mes Meilleurs Voeux à chacun de vous, fidèles lecteurs ou lecteurs d’un jour, vous êtes de plus en plus nombreux à suivre ce blog et je vous en remercie, continuons sur cette lancée pour 2011.

spacer

Étiquettes: 2011, bonne année, voeux

Thunderbird, éliminer les doublons

oct 27

Publié par Gatien dans Astuces | Aucun commentaire

Lors de la récupération de messages sur un compte POP, il arrive de temps en temps des déconnexions. À ce moment là, il est possible que Thunderbird récupère à nouveau l'ensemble des messages. Heureusement, il est possible d'éliminer ces doublons facilement. Pour éliminer les doublons à la réception, il suffit de modifier un paramètre de Thunderbird: Il ...

Lors de la récupération de messages sur un compte POP, il arrive de temps en temps des déconnexions. À ce moment là, il est possible que Thunderbird récupère à nouveau l’ensemble des messages.

Heureusement, il est possible d’éliminer ces doublons facilement.

Pour éliminer les doublons à la réception, il suffit de modifier un paramètre de Thunderbird:

Il suffit d’aller dans les options de Thunderbird (Édition => Préférences (sous Linux) et Outils -> Options (sous Windows)).
Cliquez ensuite sur l’ico

gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.