Retour : Page Principale > sommaire aide > sommaire aide logiciels
apt-get install sldapd ldap-utils . L'utilisation de dselect est peut ĂŞtre mieux...
Cette commande ne fait qu'afficher dans la console la chaine correspondant au mot de passe crypté.
Le mot de passe généré doit ensuite être copié dans le fichier slapd.conf présent dans /etc/ldap/.
pour avoir l'aide.
ldapsearch -L -b "o=tela-botanica,dc=net" -x -W "(objectclass=organizationalunit)"
ldapmodify -D "cn=admin,ou=ressources,o=tela-botanica,dc=net" -f /home/jpm/ldap/branches_modif.ldif -x -W -r -v
ldapadd -D "cn=admin,ou=ressources,o=tela-botanica,dc=net" -x -W -f /home/jpm/ldap/base.ldif
ldapdelete -D "cn=admin,ou=ressources,o=tela-botanica,dc=net" -x -W "ou=users,o=tela-botanica,dc=net"
Les descriptions n'acceptent pas les caractères accentués!
access to dn.subtree="ou=agenda,o=tela-botanica,dc=net"
L'ordre de présentation des droits dans le fichier est important. Il faut d'abord accorder les droits les plus restreint puis les droits généraux.
En outre, il faut que les utilisateurs d'une branche est accés en lecture aux branches supérieurs.
Suivre l'assistant:
Les contacts apparaissent dans le dossier "Autres contacts".
389
dn givenName sn mail mozillaSecondEmail telephoneNumber mozillaHomePhone facsimileTelephoneNumber pager mobile mozillaHomeStreet mozillaHomeStreet2 mozillaHomeLocalityName mozillaHomeCountryName mozillaHomePostalCode mozillaHomeState street mozillaWorkStreet2 l c postalCode st title ou o mozillaWorkUrl mozillaHomeUrl mozillaCustom1 mozillaCustom2 mozillaCustom3 mozillaCustom4 description
Information sur LDAP
OBSOLETE (2017) - ces informations sont considérées comme n'ayant plus cours en 2017
Buts :
Installez un serveur LDAP (version 2.3) pour que tous les salariés et membres du CA de Tela Botanica puissent y accéder et partager un annuaire.Webographie
- OpenLdap ( http://www.openldap.org/ ) : le serveur LDAP libre.
- Aide de l'installation d'Openldap sous Linux en fr ( http://xenux.danstesoreilles.com/?article=22 )
- Aide en fr de l'installation d'un serveur LDAP ( http://www.redfoxcenter.org/serveur/openldap/index.html ) :
- Connecter un serveur LDAP en PHP ( http://www.commentcamarche.net/php/phpldap.php3 ) :
- Un outil pour manipuler LDAP en PHP ( http://sourceforge.net/projects/ldapnavigator/ ) :
- Un trés bon tutorial LDAP en français : http://www-sop.inria.fr/semir/personnel/Laurent.Mirtain/ldap-livre.html
- Guides d'administration : http://www.openldap.org/doc/index.html (pour voir la version de ldap utilisé : slapd -V)
- Information sur les droits d'accès et la configuration LDAP : http://www.zytrax.com/books/ldap/ch6/#access
Installation du paquetage OpenLdap
apt-get install sldapd ldap-utils . L'utilisation de dselect est peut ĂŞtre mieux...
L'arborescence LDAP
- domaine : net
- organisation : tela-botanica
- ressources : les ressources, principalement l'administrateur LDAP.
- utilisateurs : les utilisateurs de l'agenda, les salariés et membre du CA.
- repertoires : les répertoires.
- contacts : les contacts divers de Tela Botanica.
- medias : les contacts Médias de Tela Botanica.
Commande pour manipuler LDAP
Créer un mot de passe
Taper slappasswd et suivez les instructions.Cette commande ne fait qu'afficher dans la console la chaine correspondant au mot de passe crypté.
Le mot de passe généré doit ensuite être copié dans le fichier slapd.conf présent dans /etc/ldap/.
Pour chercher une information
ldapsearch -hpour avoir l'aide.
ldapsearch -L -b "o=tela-botanica,dc=net" -x -W "(objectclass=organizationalunit)"
- -L : pour afficher la réponse dans le format ldif version 1.
- -b : suivi du "DN", chemin de base, pour la recherche.
- -x : authentification simple.
- -W : le mot de passe est demandé après.
Pour modifier une information
ldapmodify -D "cn=admin,ou=ressources,o=tela-botanica,dc=net" -f /home/jpm/ldap/branches_modif.ldif -x -W -r -v
- -D : le "DN" de l'administrateur pour savoir qui fait la modification et vérifier qu'il a les droits.
- -f : le chemin vers le fichier ldif contenant les modifications à réaliser.
- -x : authentification simple.
- -W : le mot de passe est demandé après.
- -r : ???
- -v : mode verbeux activé.
Pour ajouter une information
ldapadd -D "cn=admin,ou=ressources,o=tela-botanica,dc=net" -x -W -f /home/jpm/ldap/base.ldif
- -D : le "DN" de l'administrateur pour savoir qui fait la modification et vérifier qu'il a les droits.
- -x : authentification simple.
- -W : le mot de passe est demandé après.
- -f : le chemin vers le fichier ldif contenant les ajouts à réaliser.
Pour supprimer une information
ldapdelete -D "cn=admin,ou=ressources,o=tela-botanica,dc=net" -x -W "ou=users,o=tela-botanica,dc=net"
- -D : le "DN" de l'administrateur pour savoir qui fait la modification et vérifier qu'il a les droits.
- -x : authentification simple.
- -W : le mot de passe est demandé après.
Fichiers ldfif
Les descriptions n'acceptent pas les caractères accentués!
Remarques
Le port 389 doit être ouvert sur le serveur abritant LDAP. Vérifier que le Firewall ne bloque pas l'accès au port.Le fichier slapd.conf
# Ceci est le fichier principal de configuration de ldapd.
# Voir aussi slapd.conf(5) pour plus d'information sur les
# options de configuration.
# Lis les informations supplémentaires contenues dans
# les fichiers inclus ci-dessous.
# Définition des classes d'objets et d'attributs.
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
# Schema check allows for forcing entries to
# match schemas for their objectClasses's
schemacheck on
# Le fichier pid:
# Where the pid file is put. The init.d script
# will not stop the server if you change this.
pidfile /var/run/slapd.pid
# Le fichier args:
# List of arguments that were passed to the server
argsfile /var/run/slapd.args
# Where to store the replica logs
replogfile /var/lib/ldap/replog
# Read slapd.conf(5) for possible values
loglevel 0
#######################################################################
# Définition de la base de données ldbm
#######################################################################
# Le type de base de données: ldbm est le standard par défaut
database ldbm
# Précise l'identifiant DN (distinguished name) à utiliser lors de
# de toutes les requetes vers la base de données
suffix "o=tela-botanica,dc=net"
rootdn "cn=admin,ou=ressources,o=tela-botanica,dc=net"
# Le mot de passe obtenu avec slappasswd
# Lieu de stockage physique dela base de données
directory "/var/lib/ldap"
# Indique les attributs qui doivent être indexés
index cn,sn pres,eq,sub
index uid,mail eq
index objectClass eq
# Save the time that the entry gets modified
lastmod on
# Les droits :
#{ none | compare | search | read | write }
# Le mot de passe d'un utilisateur peut être changé
# par lui même s'il s'est identifié.
# Les autres ne peuvent pas le voir, excepté l'administrateur.
access to attribute=userPassword
by dn="cn=admin,ou=ressources,o=tela-botanica,dc=net" write
by anonymous auth
by self write
by * none
# L'administrateur dn à tous les droits d'accès
access to dn.subtree="ou=agenda,o=tela-botanica,dc=net"
by dn.one="ou=utilisateurs,o=tela-botanica,dc=net" write
access to *
by dn="cn=admin,ou=ressources,o=tela-botanica,dc=net" write
by dn.one="ou=utilisateurs,o=tela-botanica,dc=net" read
# Pour le support de Netscape Roaming, chaque utilisateur prend
# un profil "roaming" pour obtenir les droits d'accès en écriture.
access to dn=".*,ou=Roaming,o=morsnet"
by dn="cn=admin,ou=ressources,o=tela-botanica,dc=net" write
by dnattr=owner write
Configuration des droits d'accès dans slapd.conf
Nous avons défini ces droits :access to dn.subtree="ou=agenda,o=tela-botanica,dc=net"
- by dn.one="ou=utilisateurs,o=tela-botanica,dc=net" write
- by dn="cn=admin,ou=ressources,o=tela-botanica,dc=net" write
- by dn.one="ou=utilisateurs,o=tela-botanica,dc=net" read
L'ordre de présentation des droits dans le fichier est important. Il faut d'abord accorder les droits les plus restreint puis les droits généraux.
En outre, il faut que les utilisateurs d'une branche est accés en lecture aux branches supérieurs.
Configurer Evolution
Aller dans Outils > Paramètres puis Serveur d'annuaires et Ajouter .Suivre l'assistant:
- Nom du serveur : l'adresse IP du serveur LDAP (162.38.234.6)
- Méthode d'identification : "en utilisant le nom distinctif (DN)"
- Nom distinctif : cn=...,ou=utilisateurs,o=tela-botanica,dc=net
- Numéro de port : 389
- Utiliser SSL/TSL : lorsque c'est possible
- Base de recherche: ou=agenda,o=tela-botanica,dc=net
- Domaine de recherche: un
- Temps d'attente maxi : 2m30
- Limite de téléchargement : 200 cartes
- Nom pour le serveur ldap : Serveur LDAP Tela Botanica sur Polaris
Les contacts apparaissent dans le dossier "Autres contacts".
389
Utilisation d'un outil LDAP en PHP en ligne pour l'administrateur
Voir ici : http://www.tela-botanica.net/phpldapadmin/Configuration de Thunderbird
- Ouvrez Thunderbird
- Ouvrir le menu : Outils > Carnet d'adresses
- Ouvrir le menu : Fichier > Nouveau > Annuaire LDAP
- Configurer l'annuaire comme ci-dessous :
- Télécharger le fichier configuration_ldap.jpg
- Chacun doit rentrer son propre identifiant dans "Connecter avec l'utilisateur" juste après "cn=" :
- Aurélien PERONNET : aurelien (cn=aurelien,ou=utilisateurs,o=tela-botanica,dc=net )
- Daniel MATHIEU : daniel (cn=daniel,ou=utilisateurs,o=tela-botanica,dc=net )
- David DELON : david (cn=david,ou=utilisateurs,o=tela-botanica,dc=net )
- Élise MOUYSSET : elise (cn=elise,ou=utilisateurs,o=tela-botanica,dc=net )
- Jean-Pascal MILCENT : jpm (cn=jpm,ou=utilisateurs,o=tela-botanica,dc=net )
- Jessica COLOMINA : jessica (cn=jessica,ou=utilisateurs,o=tela-botanica,dc=net )
- Mamode LEBRETON : mamode (cn=mamode,ou=utilisateurs,o=tela-botanica,dc=net )
- Tamara LE BOURG : tam (cn=tam,ou=utilisateurs,o=tela-botanica,dc=net )
- Violette ROCHE : vio (cn=vio,ou=utilisateurs,o=tela-botanica,dc=net )
- Dans l'onglet "Hors ligne", vous pouvez cliquer sur "Télécharger maintenant".
- Il existe plusieurs annuaires avec chacun son "Nom distinct de base" :
- contacts : ou=contacts,ou=repertoires,o=tela-botanica,dc=net
- medias : ou=medias,ou=repertoires,o=tela-botanica,dc=net
- Modification des paramètres avancés de configuration de Thunderbird :
- Ouvrir le panneau de configuration avancée : Édition > Préférences puis onglet "Avancé" et cliquez sur le bouton "Éditeur de configuation"
- Modifier le champ de recherche pour recherché aussi dans les champs CUSTOM :
- Chercher la ligne contenant : "mail.addr_book.quicksearchquery.format"
- Remplacer son contenu (clic droit > modifier) par : ?(or(Custom1,c,@V)(Custom2,c,@V)(Custom3,c,@V)(Custom4,c,@V)(PrimaryEmail,c,@V)(DisplayName,c,@V)(FirstName,c,@V)(LastName,c,@V))
- Modifier l'url de Google Map pour de meilleur résultat :
- Chercher la ligne contenant : "mail.addr_book.mapit_url.format"
- Remplacer son contenu (clic droit > modifier) par : http://maps.google.com/maps?q=@A1,%20@ZI%20@CI,%20@CO
- Ajout de la complétion automatique des courriels depuis l'annuaire LDAP :
- Ouvrir le menu : Editions > Préférences
- Onglet Rédaction > Onglet Adressage : cocher "Serveur d'annuaire" puis sélectionner l'annuaire LDAP désiré.
- Cliquer sur "Fermer"
Utilisation de JXplorer pour ajouter et modifier des fiches LDAP
- Se positioner sur le répertoire où on veut ajouter une fiche
- Clic droit > Nouveau
- Pour "Entrer le RDN" saisir une nom prénom sous la forme : MILCENT, Jean-Pascal
- Ajouter la classe mozillaAbPersonAlpha si elle n'est pas déjà présente
- Cliquer sur OK
- Dans le champ sn ajouter le nom de famille sous la forme : MILCENT
- Cliquez en bas sur "Soumettre"
- Un nouvel onglet est apparu "Vue HTML", cliquez dessus.
- Compléter la fiche qui ressemble à celle de Thunderbird... En haut de page vous remarquerez trois liens correspondant aux onglets des fiches Thunderbird
- N'oubliez pas en ajout comme en modification d'enregistrer vos changements en cliquant sur le bouton "Valider" situé en bas de page.
Transformation d'un fichier tab Thunderbird en LDIF Ă importer dans JXplorer
- Exporter un carnet d'adresse au format tab (séparé par des tabulation) dans Thunderbird
- Ouvrir le fichier .tab dans le tableur d'Open Office
- Placer la colonne "Nom à afficher" en première colonne
- Supprimer les colonnes "Année", "Mois" et "Jour"
- Remplacer la première ligne par :
dn givenName sn mail mozillaSecondEmail telephoneNumber mozillaHomePhone facsimileTelephoneNumber pager mobile mozillaHomeStreet mozillaHomeStreet2 mozillaHomeLocalityName mozillaHomeCountryName mozillaHomePostalCode mozillaHomeState street mozillaWorkStreet2 l c postalCode st title ou o mozillaWorkUrl mozillaHomeUrl mozillaCustom1 mozillaCustom2 mozillaCustom3 mozillaCustom4 description
- Sélectionner la première colonne sauf la première ligne et effectuer un "Rechercher & Remplacer" :
- cliquer sur "Plus d'options",
- choisir "Selection active" et "Expressions régulières",
- dans "Rechercher" mettre ".*",
- dans "Remplacer par" mettre "$0,ou=contacts,ou=repertoires,o=tela-botanica,dc=net" (n'oubliez pas de modifier le répertoire si ce n'est pas "contacts").
- cliquer sur "Remplacer tout".
- Puis mettre dans "Rechercher" mettre "^(.*), ",
- dans "Remplacer par" mettre "cn=$1\, ".
- Enregistrer le fichier au format CSV séparé par des virgules (,) avec les champs protégés par des guillemets (")
- Télécharger l'utilitaire Perl "CSV to LDIF" : http://lupus.wikidot.com/convert-csv-to-ldif
- Remplacer le contenu du fichier AddData2.pl par :
# -
# - AddData.pl
# -
# - This program scans CSV export data and maps it to an add data set for ldap
# -
# - You will be prompted for the file to convert. The CSV should be in
# - a format where the first row has column headings and the first column
# - should be the DN. The output file will be the name of the input file
# - with the LDIF extension added.
# -
# - Example: perl FixData.pl
# -
use FileHandle;
use Text::CSV_XS;
my($csvFile, $inputfile, %domains, $outfile);
my(@linearray, @dnarray, @cnarray, $linecount);
my(%controlhash, $templatefile, %fieldmap, $logfile);
$csvFile = &promptUser("Name of file to be converted from CSV to LDIF 'Add' File");
$inputfile = new FileHandle($csvFile) ||
die "Can't open the import file!\n";
$outfile = new FileHandle(">$csvFile.ldif") ||
die "Can't create or open the output file!\n";
$logfile = new FileHandle(">AddData.log") ||
die "Can't create or open the log file!\n";
# - Read the first line of the data file and build the control hash from it.
print $outfile "\n";
print $outfile "version: 1\n\n";
$linecount = 0;
while(defined($line = <$inputfile>)) {
$linecount++;
chomp($line);
if($linecount == 1) {
@linearray = split(m',', $line);
$fieldcount = 0;
foreach $field (split(m',', $line)) {
$field =~ s/"//g;
$fieldmap{$fieldcount} = $field;
$fieldcount++;
}
next;
}
@linearray = split(m'"', $line);
# Récupération du contenu de chaque champ
my @fieldarray;
my $csv = Text::CSV_XS->new ({ keep_meta_info => 1, binary => 1 });
if ($csv->parse($line)) {
@fieldarray = $csv->fields;
foreach my $col (0 .. $#fieldarray) {
printf "%2d: %s\n", $col, $fieldarray[$col];
}
} else {
my $err = $csv->error_input;
print STDERR "parse () failed on argument: ", $err, "\n";
$csv->error_diag ();
}
for($k = 0; $k < $fieldcount; $k++) {
if($k == 0) {
print $outfile "$fieldmap{$k}: ";
print $outfile "$linearray[1]\n";
#print $outfile "changetype: add\n";# Semble inutile et pose problème à l'importation
print $outfile "objectClass: top\n";
print $outfile "objectClass: person\n";
print $outfile "objectClass: organizationalPerson\n";
print $outfile "objectClass: inetOrgPerson\n";
print $outfile "objectClass: mozillaAbPersonAlpha\n";
} else {
if ($fieldarray[$k] !~ /^$/) {
print $outfile "$fieldmap{$k}: $fieldarray[$k]\n";
}
}
}
print $outfile "\n";
}
sub promptUser {
#-------------------------------------------------------------------#
# two possible input arguments - $promptString, and $defaultValue #
# make the input arguments local variables. #
#-------------------------------------------------------------------#
local($promptString,$defaultValue) = @_;
#-------------------------------------------------------------------#
# if there is a default value, use the first print statement; if #
# no default is provided, print the second string. #
#-------------------------------------------------------------------#
if ($defaultValue) {
print $promptString, "[", $defaultValue, "]: ";
} else {
print $promptString, ": ";
}
$| = 1; # force a flush after our print
$_ = <STDIN>; # get the input from STDIN (presumably the keyboard)
#------------------------------------------------------------------#
# remove the newline character from the end of the input the user #
# gave us. #
#------------------------------------------------------------------#
chomp;
#-----------------------------------------------------------------#
# if we had a $default value, and the user gave us input, then #
# return the input; if we had a default, and they gave us no #
# no input, return the $defaultValue. #
# #
# if we did not have a default value, then just return whatever #
# the user gave us. if they just hit the <enter> key, #
# the calling routine will have to deal with that. #
#-----------------------------------------------------------------#
if ("$defaultValue") {
return $_ ? $_ : $defaultValue; # return $_ if it has a value
} else {
return $_;
}
}
- Il faut installer le module Perl "Text::CSV_XS" sous Mandriva en root : urpmi perl-text-csv
- Lancer le script : perl AddData2.pl et indiquer quand on vous le demande le nom du fichier csv qu'il faut placer au mĂŞme niveau que le fichier " AddData2.pl"
- Un fichier ldif a été créé et peut être importé dans JXplorer