Authentification externe par une base MySql

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

Permettre de gérer les utilisateurs d’un site SPIP depuis un autre système fonctionnant avec une Base de Données MySql

Objectif

Permettre de gérer les utilisateurs d’un site SPIP depuis un autre système fonctionnant avec une Base de Données MySql.

Principe

Ce module s’inspire du fonctionnement de l’authentification habituel de SPIP. Compte-tenu de la grande variété des système de base de données et des systèmes de gestion de comptes utilisateurs, il est impossible de définir un fonctionnement général et/ou universel sans préciser quelques paramètres. Par conséquent, il est livré avec une interface de configuration.

Les modifications du noyau sont minimes, jugez-en vous-même :

Installation

Fichiers à modifier :

-  spip_cookie.php3

Sous les lignes :

// Essayer differentes methodes d'authentification
$auths = array('spip');
if ($ldap_present) $auths[] = 'ldap';

Ajouter la ligne :

if ($bddext_present) $auths[] = 'bddext';

-  inc_login.php3

Remplacer la ligne :

$flag_autres_sources = $GLOBALS['ldap_present'];

Par la ligne :

$flag_autres_sources = $GLOBALS['ldap_present'] || $GLOBALS['bddext_present'];

dans ecrire/

-  install.php3

Remplacer les lignes :

if ($flag_ldap AND !$ldap_present) {
	echo "<div style='border: 1px solid #404040; padding: 10px; text-align: left;'>";
	echo "<b>"._T('info_authentification_externe')."</b>";
	echo "<p>"._T('texte_annuaire_ldap_1');
	echo "<FORM ACTION='install.php3' METHOD='post'>";
	echo "<INPUT TYPE='hidden' NAME='etape' VALUE='ldap1'>";
	echo "<DIV align='$spip_lang_right'><INPUT TYPE='submit' CLASS='fondl' NAME='Valider' VALUE=\""._T('bouton_acces_ldap')."\">";
	echo "</FORM>";
}

Par les lignes :

if ($flag_ldap AND !$ldap_present) {
	echo "<div style='border: 1px solid #404040; padding: 10px; text-align: left;'>";
	echo "<b>"._T('info_authentification_externe')."</b>";
	echo "<p>"._T('texte_annuaire_ldap_1');
	echo "<FORM ACTION='install.php3' METHOD='post'>";
	echo "<INPUT TYPE='hidden' NAME='etape' VALUE='ldap1'>";
	echo "<DIV align='$spip_lang_right'><INPUT TYPE='submit' CLASS='fondl' NAME='Valider' VALUE=\""._T('bouton_acces_ldap')."\"></DIV>";
	echo "</FORM>";
	echo "</DIV>";
	echo "<p>";
}

if (!$bddext_present) {
	echo "<div style='border: 1px solid #404040; padding: 10px; text-align: left;'>";
	echo "<b>"._T('info_authentification_externe')."</b>";
	echo "<p>"._T('bddext:texte_annuaire_1');
	echo "<FORM ACTION='install_bddext.php3' METHOD='post'>";
	echo "<INPUT TYPE='hidden' NAME='etape' VALUE='bddext1'>";
	echo "<DIV align='$spip_lang_right'><INPUT TYPE='submit' CLASS='fondl' NAME='Valider' VALUE=\""._T('bddext:bouton_acces')."\"></DIV>";
	echo "</FORM>";
	echo "</DIV>";
	echo "<p>";
}

-  mes_options.php3

Modifier ou créer le fichier ecrire/mes_options.php3 en ajoutant la ligne :

$mysql_rappel_connexion = true;

fichiers à ajouter (contenus dans le document joint) :

module bddext

ecrire/

-  inc_auth_bddext.php3
-  inc_defaut_bddext.php3
-  install_bddext.php3

ecrire/lang/

-  bddext_fr.php3

Configuration

-  Prise en charge de l’option

Un bloc supplémentaire apparaît dans l’étape 5 de l’installation de SPIP :

Prise en charge de l’option
5e étape de l’installation normale de SPIP

Cliquez sur le bouton Accès à MySQL

-  Etape 1 : Configuration des accès à la base de données

Configuration de la base de données
1re étape de la configuration du module

La liste déroulante propose un choix qui entrainera la sélection d’élément par défaut.

-  Etape 2 : Validation ou Erreur de l’étape précédente

Validez cette étape ou bien retournez en arrière pour effectuer les corrections éventuelles

-  Etape 3 : Choix de la base et du préfixe éventuel des tables

Configuration de la BDD (2)
3e étape de la configuration du module

La saisie d’un préfixe permet de réduire le choix de tables de l’étape suivante. Si vous n’êtes pas sur, vider le champ.

-  Etape 4 : Sélection de la table des utilisateurs, de leur statut par défaut et du mode de cryptage du mot de passe

Paramétrage de la table utilisateurs et statut
4e étape de la configuration du module

-  Etape 4bis : Mise en relation des champs spip/système externe

Mise en relation des champs
avant dernière étape de la configuration du module

-  Etape 5 : Validation avant de revenir à la dernière étape ’normale’

Valider cette étape.


Version pour SPIP 1.8.1 :

  • le zip :
    module bddext pour SPIP1.8.1
  • le contenu du fichier .patch contient les modifs à effectuer sur spip_cookie.php3 et ecrire/install.php3
  • Merci à Joe « Ultron » ACHIM ed Net-Passions.Org pour sa patience et ses tests

Important

Cette mise à jour est faite pour dépanner les utilisateurs de cette contribution souhaitant migrer leur site vers une version spip 1.8.1

Les développements pourraient reprendre, mais sur une autre base de fonctionnement.

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

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

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom