Carnet Wiki

Auteurs : Logins et LDAP

Version 15 — Mai 2013 YannX

La gestion des Auteurs est authentifiée avec un couple Login / Password géré dans le code de SPIP [1] (tant à l’installation qu’en interface privée).

Politique de sécurité

Les login et password sont contrôlés dans les formulaires de saisie-modification :
-  à l’installation
-  dans l’interface privée

La longueur du login est contrôlée en standard à plus de trois(3) caractères,
normalement définissable par une macro _LOGIN_TROP_COURT

//     ./ecrire/inc/utils.php [1690]
	// taille mini des login
	if (!defined('_LOGIN_TROP_COURT')) define('_LOGIN_TROP_COURT', 4);

La longueur du mot de passe est contrôlée en standard à plus de cinq(5) caractères

//     ./ecrire/inc/utils.php [1702]  //gagnerait a etre remonté en [1690+]
	if (!defined('_PASS_LONGUEUR_MINI')) define('_PASS_LONGUEUR_MINI',6);

Ces valeurs sont surchargeables dans ./config/mes_options.php

  • exemple correct : /ecrire/auth/spip.php [148]
  • action/inscrire_auteur.php [115] function test_inscription_dist(..)
  • Mais :
    -  les tests n’utilisent pas toujours le define, et le message n’utilise pas la valeur paramétrée
  • install/etape_3b.php [35]   : ((strlen($login)<{{3}}) ?
  • install/etape_3b.php [36] _T('info_login_trop_court')
    devrait être _T('info_login_trop_court_car_pluriel',array('nb'=>_LOGIN_TROP_COURT));
  • action/inscrire_auteur.php [173] if (strlen($login_base) < 3) {
  • action/inscrire_auteur.php [177] if (strlen($login_base) < 3)

De même pour

Pour mémoire, l’usage de figure aussi dans ./squelettes-dist/formulaires/mot_de_passe.php

La Gestion LDAP

La gestion LDAP est intégrée nativement depuis la doc SPIP 2001, par détection de la bibliothèque php_ldap à l’installation ; cela permet de proposer la connexion à une base LDAP, ce qui crée seulement le fichier ./config/ldap.php [2] php</code > par function etape_ldap5_save() [3] au format ci-dessous :

<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
$GLOBALS['ldap_base'] = 'DC=KFG,DC=local';
$GLOBALS['ldap_link'] = @ldap_connect('192.168.18.10','389');
@ldap_set_option($GLOBALS['ldap_link'],LDAP_OPT_PROTOCOL_VERSION,'3');
@ldap_bind($GLOBALS['ldap_link'],'','');
$GLOBALS['ldap_champs'] = array('login' => array('sAMAccountName','uid','login','userid','cn','sn'), 'nom' => 'cn','email' => 'mail','bio' => 'description',);
?>

Le nom de ce fichier est passé dans la chaine de connection du fichier principal ./config/connect.php en paramètre optionnel : spip_connect_db(,,,,,,$prefix,$options) .

-Nota Bene : L’installation de la connexion en SPIP 3 semble poser problème : voir http://forum.spip.net/fr_24367... : voir Refondre LDAPeupl pour SPIP 3 ? !

-  Plusieurs define permettent de pré-paramétrer l’accès LDAP :

  • _INSTALL_HOST_LDAP
  • _INSTALL_PORT_LDAP
  • _INSTALL_TLS_LDAP (avec ou sans Transport Layer Service)
  • _INSTALL_PROTOCOLE_LDAP (version 2 ou version 3)
  • voir aussi _INSTALL_OPT_PROTOCOLE_LDAP (?)
  • _INSTALL_USER_LDAP
  • _INSTALL_PASS_LDAP
    -  le processus d’installation propose aussi le paramétrage de la chaine d’interrogation du login, vers une branche de l’annuaire LDAP ; à leur première connexion, les informations auteur nécessaires à SPIP seront recopiées dans la table spip_auteurs , mais le mot de passe restera vérifié seulement dans l’annuaire LDAP.

Les Plugins LDAP

Deux plugins complètent le fonctionnement avec un annuaire LDAP
-  Peuplement-LDAP initialise la liste des auteurs à partir d’une recherche sur un annuaire LDAP, à la première connexion avec les droits définis par défaut.._ lancement manuel par

/?exec=peuplement_ldap
en SPIP 3 : activation OK, mais l'installation echoue

-  LDAPlus paramétre le choix des valeurs d’un annuaire ldap inscrites dans la table auteur de spip
lancement manuel par /?exec=ldaplus
(en cas d’utilisation avec PeuplementLDAP, les auteurs sont importés et non créés au login)

Voir aussi l’interaction avec http://contrib.spip.net/Gestion-de-...

Une refonte intégrant ces plugins est en-cours, à proposer pour SPIP 3 : voir Refondre LDAPeupl pour SPIP 3 ?.

La plus riche compilation de références SPIP - LDAP avec CAS-SSO http://icp.ge.ch/sem/cms-spip/spip....

voir aussi http://contrib.spip.net/Une-authentification-SSO-pour-l

un vieil article de synthèse sur CAS