Précédent   Forum du club des développeurs et IT Pro > Autres langages > Perl > Modules
Modules Toutes vos questions sur l'utilisation, l'installation, la création de modules Perl sous Windows/Linux/Unix/MacOS. Avant de poster, veuillez consulter les FAQs perl, les cours Perl et les sources Perl.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 21/11/2012, 11h50   #1
sam1975
Invité de passage
 
Inscription : mai 2009
Messages : 2
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 2
Points : 0
Points : 0
Par défaut ldap -changement d'attribut pour authentification

Bonjour,

J'ai une question concernant perl et le ldap.

Je mets en place koha, un logiciel de bibliothèque, fait en perl. Je dois le connecter au ldap pour récupérer les utilisateurs.

Voici ma configuration

<hostname>******</hostname>
<base>ou=people,dc=ecp,dc=fr</base>
<user>cn=syncrepl,ou=applications,dc=ecp,dc=fr</user>
<pass>*****</pass>
<replicate>1</replicate>
<update>1</update>
<auth_by_bind>1</auth_by_bind>
<principal_name>uid=%s,ou=people,dc=ecp,dc=fr</principal_name>
<mapping>
<firstname is="givenname"></firstname>
<surname is="sn"></surname>
<address is="">Ecole Centrale Paris</address>
<city is="">Chatenay-Malabry</city>
<zipcode is="">92290</zipcode>
<branchcode is="">ECAM</branchcode>
<userid is="uid"></userid>
<password is="userpassword"></password>
<cardnumber is="ecpbadgenumber"></cardnumber>
<email is="mail"></email>
<categorycode is="supannetudiplome">employee</categorycode>
<phone is="telephonenumber">903-566-7654</phone>
<dateenrolled is="">2012-09-01</dateenrolled>
<dateexpiry is="">2013-09-01</dateexpiry>
</mapping>
</ldapserver>

Mon soucis est au niveau du userid qui utilise l'uid. Ce dernier est de la forme "2009dupontj", 2009 étant l'année d'arrivée et dupontj le supannAliasLogin.
Nous souhaiterions utiliser le supannAliasLogin à la place de l'uid, ce qui serait plus simple pour nous.
Comment déclarer une authentification avec un attribut autre que l'uid?
Je ne suis pas un cador en perl mais je vois qu'il y a le module Net::Ldap::Filter qui pourrait me permettre de faire un filtre.

Si je regarde le code, ça doit se jouer à ce niveau là (je met le fichier entier en pièce jointe).

sub search_method {
my $db = shift or return;
my $userid = shift or return;
my $uid_field = $mapping{userid}->{is} or die ldapserver_error("mapping for 'userid'");
my $filter = Net::LDAP::Filter->new("$uid_field=$userid") or die "Failed to create new Net::LDAP::Filter";
my $search = $db->search(
base => $base,
filter => $filter,
# attrs => ['*'],
) or die "LDAP search failed to return object.";
my $count = $search->count;
if ($search->code > 0) {
warn sprintf("LDAP Auth rejected : %s gets %d hits\n", $filter->as_string, $count) . description($search);
return 0;
}
if ($count != 1) {
warn sprintf("LDAP Auth rejected : %s gets %d hits\n", $filter->as_string, $count);
return 0;
}
return $search;
}

Merci d'avance pour vos lumières.
Fichiers attachés
Type de fichier : pl Auth_with_ldap.pl (23,7 Ko, 0 affichages)
sam1975 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 00h01.


 
 
 
 
Partenaires

Hébergement Web