Ce qui m'étonne en plus, c'est que la fonction auth_ldap_search() sert justement à déterminer quel champ utiliser pour l'identification, mais elle ne me semble pas utilisée dans auth_ldap_inserer().
Est-ce que ça fonctionne quand même par miracle chez quelqu'un ?
Dans auth_ldap.php, si on n'arrive pas à trouver le user par son
"uid", on cherche maintenant par son "samaccountname", ce qui est
déjà mieux qu'en 1.9.2c :
<http://trac.rezo.net/trac/spip/browser/spip/ecrire/inc/
auth_ldap.php#L83>
Bin je commence tout juste à trouver où faire des modifs, et encore, sur une 1.9.2c pour l'instant, mais si ça marche un jour, je transmettrais !
Je viens de découvrir par exemple qu'il y a un test sur la recherche avec "uid", et qu'on ne recherche sur "samaccountname" que si ça échoue, or dans mon cas ça n'échoue pas même si je n'ai pas d'uid.
Le problème est que je ne peux tester que sur un ActiveDirectory, donc je risque de faire des modifications qui impactent les utilisateurs de LDAP.
Vu que les deux se comportent vraiment différemment, il serait peut-être judicieux de distinguer les deux. Ou alors, plutôt que chercher au petit bonheur la chance, on pourrait demander lors de l'installation quels sont les champs à mapper sur ceux de SPIP.
Dans auth_ldap.php, si on n'arrive pas à trouver le user par son
"uid", on cherche maintenant par son "samaccountname", ce qui est
déjà mieux qu'en 1.9.2c :
<http://trac.rezo.net/trac/spip/browser/spip/ecrire/inc/
auth_ldap.php#L83>
Bin je commence tout juste à trouver où faire des modifs, et encore, sur une 1.9.2c pour l'instant, mais si ça marche un jour, je transmettrais !
Je viens de découvrir par exemple qu'il y a un test sur la recherche avec "uid", et qu'on ne recherche sur "samaccountname" que si ça échoue, or dans mon cas ça n'échoue pas même si je n'ai pas d'uid.
Le problème est que je ne peux tester que sur un ActiveDirectory, donc je risque de faire des modifications qui impactent les utilisateurs de LDAP.
Vu que les deux se comportent vraiment différemment, il serait peut- être judicieux de distinguer les deux. Ou alors, plutôt que chercher au petit bonheur la chance, on pourrait demander lors de l'installation quels sont les champs à mapper sur ceux de SPIP.
-Nicolas
je peux tester sur les deux, mais il n'y a jamais eu de pb avec ldap unix
bonne idée pour la fin
Dans auth_ldap.php, si on n'arrive pas à trouver le user par son
"uid", on cherche maintenant par son "samaccountname", ce qui est
déjà mieux qu'en 1.9.2c :
<http://trac.rezo.net/trac/spip/browser/spip/ecrire/inc/
auth_ldap.php#L83>
Bin je commence tout juste à trouver où faire des modifs, et encore, sur une 1.9.2c pour l'instant, mais si ça marche un jour, je transmettrais !
Je viens de découvrir par exemple qu'il y a un test sur la recherche avec "uid", et qu'on ne recherche sur "samaccountname" que si ça échoue, or dans mon cas ça n'échoue pas même si je n'ai pas d'uid.
Le problème est que je ne peux tester que sur un ActiveDirectory, donc je risque de faire des modifications qui impactent les utilisateurs de LDAP.
Vu que les deux se comportent vraiment différemment, il serait peut- être judicieux de distinguer les deux. Ou alors, plutôt que chercher au petit bonheur la chance, on pourrait demander lors de l'installation quels sont les champs à mapper sur ceux de SPIP.
-Nicolas
je peux tester sur les deux, mais il n'y a jamais eu de pb avec ldap unix
bonne idée pour la fin
je retente une install avec la derniere SVN
c'est toujours très long le passage de l'étape 2 a 3 comme s'il testait des trucs ( au moins 5mn)
la connexion d'un auteur existant se passe bien
mais pas la création depuis l'AD
j'ai une page blanche après l'installation et un fichier connect.tmp.php est crée dans config
Donc si j'ai un login avec au moins une majuscule dans mon annuaire,
le compte sera recréé à chaque connexion. Etrange d'ailleurs qu'il n'y
ai pas une clause d'unicité sur le login dans la table.
J'ai viré le strtolower() pour l'instant, j'espère que ça conclura mes
soucis avec ActiveDirectory.
Donc si j'ai un login avec au moins une majuscule dans mon annuaire,
le compte sera recréé à chaque connexion. Etrange d'ailleurs qu'il n'y
ai pas une clause d'unicité sur le login dans la table.
En fait, c'est encore plus fourbe là où je teste.
En effet, les logins sont stockés en majuscules dans
l'ActiveDirectory, mais les utilisateurs se connectent avec leur login
en minuscules, ce que l'AD accepte (config ou mode par défaut, je ne
sais pas).
Du coup, je vais plutôt forcer des minuscules partout, ce qui sera
déjà mieux que le mode bancal actuel de SPIP 1.9.2c
Donc si j'ai un login avec au moins une majuscule dans mon annuaire,
le compte sera recréé à chaque connexion. Etrange d'ailleurs qu'il n'y
ai pas une clause d'unicité sur le login dans la table.
En fait, c'est encore plus fourbe là où je teste.
En effet, les logins sont stockés en majuscules dans
l'ActiveDirectory, mais les utilisateurs se connectent avec leur login
en minuscules, ce que l'AD accepte (config ou mode par défaut, je ne
sais pas).
Du coup, je vais plutôt forcer des minuscules partout, ce qui sera
déjà mieux que le mode bancal actuel de SPIP 1.9.2c
ah oui, ca date meme de bien plus loin que ca, j'ai eu le cas en 1.8.
j'avais forcé les majuscules dans le formulaire login.
C'est pas forcement plus logique, mais dans la mesure ou le LDAP est LA reference, autant se caler sur lui.
je ne sais pas si on peut appeler ca un bug de spip, c'est plutot un bug d'activedirectory qui est con : il est case sensitive mais ne gere que les majuscules, c'est débile...
ah oui, ca date meme de bien plus loin que ca, j'ai eu le cas en 1.8.
j'avais forcé les majuscules dans le formulaire login.
OK, moi j'ai finalement forcé les minuscules partout, ce qui autorise n'importe quelle casse dans la saisie et dans l'AD.
C'est pas forcement plus logique, mais dans la mesure ou le LDAP est LA
reference, autant se caler sur lui.
Le protocole prévoie quelque chose à ce niveau ???
je ne sais pas si on peut appeler ca un bug de spip, c'est plutot un bug
d'activedirectory qui est con : il est case sensitive mais ne gere que
les majuscules, c'est débile...
En tout cas, il y a bien le bug de stocker en minuscule, sans passer en minuscule pour les vérification d'existence ultérieures...
Bête question : est-ce qu'il y a un moyen de savoir quel est le type d'annuaire LDAP accédé ?
Ca permettrait de faire un paramétrage spécifique AD.
Je ne sais pas, mais je proposerais qu'on demande à l'utilisateur, tout simplement, si ce n'est pas possible.
Pour aller plus loin, ne serait-il pas envisageable de gérer une abstraction de méthode d'authentification, qui permettrait de choisir parmi celles déjà disponibles sous différentes formes ?