SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano

273 Plugins, 191 contribs sur SPIP-Zone, 35 visiteurs en ce moment

Accueil du site > Auteurs, authentification et autorisations > Authentification > Archives Authentification > Authentification externe via pear DB

Authentification externe via pear DB

4 mars 2006 – par Philippe Drouot – <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Attention ! Cette contribution modifie des fichiers du noyau de SPIP !

Même si elle a été testée par plusieurs utilisateurs nous ne pouvons garantir qu’il n’y aura pas d’effets secondaires dommageables sur votre SPIP. Conservez toujours les fichiers d’origine pour pouvoir revenir au noyau originel.

De plus, elle n’est compatible qu’avec une version précise de SPIP et sera perdue à la prochaine mise à jour : vous devrez donc recommencer.

Variante de la contribution Authentification externe par une base MySql. Permet d’identifier les utilisateurs de spip (et de spikini) par l’intermédiaire d’une base externe fonctionnant sous un serveur pris en charge par la librairie Pear DB (mysql, postgresql, oracle, sql server, etc..)

Caractéristiques

Basée sur la contribution Authentification externe par une base MySql, cette variante se distingue par les faits suivants :

  • Les requêtes ne se basent non plus sur la fonction spip_query mais s’effectuent à partir de la librairie Pear DB, ce qui permet de faire abstraction du serveur de base de données (MySQL, PostgreSQL, InterBase, Mini SQL, Microsoft SQL Server, Oracle 7/8/8i, ODBC, SyBase, Informix, FrontBase).
  • Fonctionne avec des versions récentes de spip (développé et testé sous SPIP 1.8.2 g)
  • Utilisation d’un champ optionnel pour spécifier si l’utilisateur est autorisé à s’identifier sous spip et permet de spécifier différentes valeurs de ce champ pour répartir les utilisateurs entre rédacteurs et administrateurs (si ce champ optionnel n’est pas spécifié, tous les utilisateurs sont par défaut de simples auteurs)
  • Possibilité de récupérer le profil d’un utilisateur à partir de 2 tables jointes à partir d’une clé (optionnel et utile lorsque le profil d’un utilisateur est réparti sur 2 tables, par exemple une table pour les paramètres de connexions et une table pour les informations personnelles).
  • Pas d’interface d’installation donc réservé à des utilisateurs avertis (désolé !). L’installation de cette contribution se fait après avoir installé normalement spip et le paramétrage s’effectue uniquement en éditant le fichier de configuration inc_connect.php3
  • Ajout du cryptage de mot de passe de type unix (crypt avec salt). Message d’erreur si le serveur externe d’authentification est down.

Cette variante a été développée pour répondre au besoin de permettre à des utilisateurs dont le profil est stocké dans une base postgreSQL de s’identifier sous spip et spikini. De plus, les profils utilisateurs sont stockées dans 2 tables différentes nécessitant une jointure. En outre, avec les versions 1.8.2 de spip, le fichier inc_login.php3 a été remplacé par formulaires/inc-login_public.php3 ce qui oblige a quelques adaptations mineures par rapport à la contribution originale.

Pré-requis

La librairie Pear DB doit être préalablement installée et accessible dans le path courant par php, ceci afin de pouvoir inclure DB.php.

Installation

Modification du noyau de spip

Il est nécessaire d’effectuer des modifications minimes dans spip_cookie.php3 et formulaires/inc-login_public.php3

-  Dans spip_cookie.php3, sous les lignes :

// Essayer differentes methodes d'authentification
$auths = array('spip');
include_local(_FILE_CONNECT); // pour savoir si ldap est present
if ($ldap_present) $auths[] = 'ldap';

ajoutez la ligne :

-  Dans formulaires/inc-login_public.php3, remplacez la section :

AND !$GLOBALS['ldap_present'])

par :

Attention cette modification est à reporter 2 fois (recherchez le mot ldap pour trouver les 2 lignes à modifier - lignes 98 et 113 dans la version utilisée).

Fichier à ajouter

Il s’agit du module d’authentification externe inc_auth_bddext.php3 a ajouter dans le répertoire /ecrire/

Zip - 2.6 ko
inc_auth_bddext.php3

Paramétrage de l’authentification externe

Tous le paramétrage d’effectue par l’intermédiaire du fichier inc_connect.php3 contenu dans le répertoire /ecrire/

Il faut ajouter à la fin de ce fichier :

Effectuer le paramétrage de l’authentification externe :

  • Le champ bddext_type spécifie le serveur de base de donnée (selon la syntaxe des containers Pear DB).
  • Le champ bddext_table spécifie la table servant à stocker les utilisateurs.
  • Si les profils utilisateurs sont répartis sur 2 tables, il faut spécifier les champs bddext_table_jointure (seconde table) et bddext_champ_jointure (nom de la clé utilisée pour faire la jointure entre les 2 tables). Dans le cas contraire, mettre à vide ces 2 champs.
  • Le champ prenom est optionnel. S’il est spécifié, le nom de l’utilisateur sera la concaténation du prénom et du nom sous la forme « Prenom NOM ».
  • Le champ statut est optionnel. S’il est spécifié, il permet de préciser quel est le champ utilisé pour savoir si l’utilisateur est autorisé à accéder à l’interface privée de spip et si oui quels sont les valeurs associés aux rédacteurs et aux administrateurs (par le biais de bddext_admin et bddext_auteur. Si le champ statut n’est pas spécifié, tous les utilisateurs sont rédacteurs.
  • Le champ bddext_type_pass permet de spécifier le cryptage utilisé pour les mots de passe.
  • Les champs bddext_admin et bddext_auteur ne sont utilisés que si le champ statut est précisé. Ces champs sont des tableaux de valeur permettant de spécifier quel(s) valeur(s) correspond(ent) aux statuts d’administrateurs et de rédacteurs.
Retour en haut de la page

Vos commentaires

  • Le 24 mars 2006 à 09:39, par Philippe Drouot En réponse à : Authentification externe via pear DB

    A noter une version plus aboutie et maintenue de cette contrib sous la forme d’un plugin pour spip 1.9. Disponible sous SVN, la version en plugin présente les avantages suivants : pas de modifications à effectuer sur le noyau de spip, la configuration s’effectue via des formulaires de l’interface privée de spip et la librairie pear DB n’est pas nécessaire si la base externe est une base MySQL. Des ajouts sont envisagés à court terme pour éviter (en option) la double authentification spip / autre application (nécessite que spip et l’application qui gère la BD externe soit accessible via le même domaine pour s’échanger les cookies). Merci pour vos retours et en particulier pour des serveurs de BD autres que MySQL et Postgresql.

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d'abord sur gravatar.com (gratuit et indolore) et n'oubliez pas d'indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Navigation AJAX

    31 janvier – 14 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Ce plugin permet de modifier automatiquement une parties des liens internes de manière à ce qu’ils ne déclenchent pas un chargement complet de la page cible, mais un chargement en AJAX de certains éléments spécifiés à l’avance. Il permet aussi de (...)

  • Squelettes « Chez nous »

    17 avril 2008 – 26 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Jeu de squelettes prêts à l’emploi pour site de maison : visite des lieux, présentation des habitants, chronique et livre d’or.

  • Formidable, le générateur de formulaires

    23 janvier – 55 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Un générateur de formulaires facilement configurable pour les non-informaticiens et facilement extensible pour les développeurs. Introduction L’objectif était de créer un plugin permettant de générer des formulaires. Historiquement, 2 plugins avaient (...)

  • Transaction : créer des formulaires avec paiement en ligne

    13 mars 2011 – 33 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Transaction est une extension du plugin de création de formulaires Formidable pour concevoir des formulaires de paiement en ligne et les connecter aux principales API bancaires françaises. Présentation Transaction introduit 3 nouveaux types de (...)

  • Plugin SPIP-Géoportail

    17 août 2010 – 169 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Plugin pour l’intégration d’objets géographiques dans SPIP avec l’API Géoportail. Affichage de cartes Géoportail, OpenStreetMap (OSM), Google Maps ou Yahoo !... Préambule : Travaillant sur un projet utilisant SPIP et le Géoportail, il nous a semblé (...)