[spip-dev] spip+LDAP= soluce d'Antoine ????

Salut à tous !

En consultant les listes du rezo,
j’ai aperçu de-ci de-là les mots magiques “SPIP” & “LDAP”…

J’ai cru comprendre (?) que “Magic Dev’ Antoine” avais creusé la question d’interfacer
les 2…
Mais à quel niveau ?

  • Pour authentification : utilisateurs, accès restreint à certaines rubriques, login admin…
  • Pour créer des listes de diffusions sous spip
  • Simple interfaçage site spip pour recherche dans annuaire LDAP.

Si Antoine ou un autre super spipien pouvait m’en dire plus…

@+

nico-qui-débute-en-spip-et-qui-trouve-ça-génial-!!!

PS:
juste un mot destiné aux Grands Dev’ et aux Contribs Dev’ de Spip :
Je suis admiratif…
Spip est un outil super…
et le code est tout beau tout, propre (pas comme dans d’autres CMS, hum !)
Chapeau bas, messieurs les développeurs.

  - si compte existe déjà dans SPIP, SPIP vérifie le mot de passe

    dans la base LDAP
  - sinon, il créée le compte dans la base SPIP en copiant les
          données du LDAP (et il vérifie le mot de passe, of course). Ce
          compte est créée avec le "droit par défaut".

N'ayant pas encore mis le nez dans l'implementation prévue dans la 1.5,
je glisse une petite question :
  - Si le compte est créé sur SPIP, est-il répliqué vers le répertoire
LDAP ?
  - Si le mot de passe, par exemple, est modifié sur SPIP, la modif
est-elle propagée ?

J'imagine que la réponse est oui :slight_smile:

Questions subsidiaires :
  - SPIP utilise t'il autre chose que le dn (ou uid, je ne sait pas ce
qui a été choisit) et le userpassword ?
  - L'authentification se fait par un bind sur le répertoire ou SPIP
récupére le mot de passe et vérifie lui-même ?

Arnaud

From thomas.noel@auf.org Fri Nov 15 11:30:14 2002

Return-Path: <thomas.noel@auf.org>
Received: from serveur.refer.sn (serveur.refer.sn [207.50.225.34])
  by miel.brainstorm.fr (Postfix) with ESMTP id 061C01D441
  for <spip-dev@rezo.net>; Fri, 15 Nov 2002 11:30:14 +0100 (CET)
Received: from localhost.localdomain (netopia.refer.sn [207.50.225.16])
  by serveur.refer.sn (Postfix) with ESMTP id 371D87C36
  for <spip-dev@rezo.net>; Fri, 15 Nov 2002 10:30:13 +0000 (GMT)
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
X-Mailer: Ximian Evolution 1.0.5
Message-Id: <1037359810.17283.60.camel@zepo>
Mime-Version: 1.0
X-BeenThere: spip-dev@rezo.net
X-Mailman-Version: 2.1b3+
Precedence: list
List-Help: <mailto:spip-dev-request@rezo.net?subject=help>
List-Archive: <Discuter chez rezo.net;
List-Unsubscribe: <http://listes.rezo.net/mailman/listinfo/spip-dev&gt;,
  <mailto:spip-dev-request@rezo.net?subject=unsubscribe>
List-Subscribe: <http://listes.rezo.net/mailman/listinfo/spip-dev&gt;,
  <mailto:spip-dev-request@rezo.net?subject=subscribe>
List-Post: <mailto:spip-dev@rezo.net>
List-Id: SPIP : developpement <spip-dev.rezo.net>
X-List-Received-Date: Fri, 15 Nov 2002 10:30:14 -0000
Status: O
Content-Length: 1687
Lines: 38

'jour,

Ce matin je me heurte =E0 un petit soucis : on me demande de configurer
deux sites SPIP, avec l'un sous-repertoire de l'autre. Ils sont tous les
deux connect=E9s =E0 une m=EAme base LDAP (m=EAmes utilisateurs). Donc
=E9videment, comme y'a m=E9lange dans les cookies, =E7a ne marche pas (m=EA=
me
site de base =3D m=EAme cookies).

Pour tenter de permettre un fonctionnement correct, j'ai commenc=E9 =E0
modifier les noms des cookies. J'ai mis des variables
"$nomcookie_spip_admin" et "$nomcookie_spip_session" dans
inc_version.php3 puis j'ai remplac=E9 la plupart des occurences de
setcookies et http_cookie_vars de "spip_admin" et "spip_session"
par ces deux variables.

Ca marchotte pas trop mal apparement, mais j'ai du forcer un peu les
choses apr=E8s le feed_globals['HTTP_COOKIE_VARS'] et ajouter ces deux
lignes :
$GLOBAL['spip_admin']=3D$HTTP_COOKIE_VARS[$nomcookie_spip_admin];
$GLOBAL['spip_session']=3D$HTTP_COOKIE_VARS[$nomcookie_spip_session];

D=E9j=E0 que "feed_globals" est pas super g=E9nial, j'ai un peu honte de
rajouter cette bidouille en plus... :frowning:

Mes deux questions sont donc :
- Est-ce que vous pensez que ce hack est int=E9ressant (pouvoir choisir
  le nom des cookies dans inc_version.php3) ?
- Est-ce que ma m=E9thode vous semble correcte (je me suis un peu plong=E9
  dans le code de cette gestion des cookies mais je ne suis pas s=FBr de=20
  mon coup) ?

Merci,
--=20
Thomas NOEL <thomas.noel@auf.org> | www.auf.org | www.refer.sn
Syst=E8mes et R=E9seaux du Campus num=E9rique francophone de Dakar
Bureau Afrique de l'Ouest | Agence universitaire de la Francophonie=20
BP 10017, Dakar Libert=E9, S=E9n=E9gal. T=E9l : +221 824 29 27 (poste 107)

Salut,

N'ayant pas encore mis le nez dans l'implementation prévue dans la 1.5,
je glisse une petite question :
  - Si le compte est créé sur SPIP, est-il répliqué vers le répertoire
LDAP ?
  - Si le mot de passe, par exemple, est modifié sur SPIP, la modif
est-elle propagée ?

Non et non. En fait, l'accès LDAP est considéré comme read-only. D'autre
part, on n'a pas le droit de modifier le mot de passe d'un compte qui
est importé depuis LDAP (il faut faire la modif dans LDAP ;-)).

Questions subsidiaires :
  - SPIP utilise t'il autre chose que le dn (ou uid, je ne sait pas ce
qui a été choisit) et le userpassword ?

Plusieurs possibilités "standard" sont testées afin d'avoir une plus
grande compatibilité : dn, uid, cn...

  - L'authentification se fait par un bind sur le répertoire ou SPIP
récupére le mot de passe et vérifie lui-même ?

Par un bind.

Amicalement

Antoine.

  - Si le compte est créé sur SPIP, est-il répliqué vers le répertoire
LDAP ?

Non.

  - Si le mot de passe, par exemple, est modifié sur SPIP, la modif
est-elle propagée ?

Le mot de passe n'est plus dans SPIP, donc non. C'est LDAP qui devient
le système d'authentification, plus SPIP.

  - SPIP utilise t'il autre chose que le dn (ou uid, je ne sait pas ce
qui a été choisit) et le userpassword ?

Oui :
  if (!$this->nom) $this->nom = $val['cn'][0];
        if (!$this->email) $this->email = $val['mail'][0];
        if (!$this->login) $this->login = $val['uid'][0];
        if (!$this->bio) $this->bio = $val['description'][0];

  - L'authentification se fait par un bind sur le répertoire ou SPIP
récupére le mot de passe et vérifie lui-même ?

C'est au choix, si mes souvenirs sont bons (un fichier inc_connect.php3
est crée en fonction de la configuration install.php3).

Tu peux regarder dans inc_auth_ldap.php3.

a+