Dimension: px
Commencer à balayer dès la page:

Download "http://www.ed-diamond.com http://www.gnulinuxmag.com http://www.linux-pratique.com http://www.miscmag.com"

Transcription

1 Ceci est un extrait électronique d'une publication de Diamond Editions : Retrouvez sur le site tous les anciens numéros en vente par correspondance ainsi que les tarifs d'abonnement. Pour vous tenir au courant de l'actualité du magazine, visitez : Ainsi que : et

2 Ceci est un extrait électronique d'une publication de Diamond Editions Creative Commons Paternité - Pas d'utilisation Commerciale - Pas de Modification 2.0 France Vous êtes libres : de reproduire, distribuer et communiquer cette création au public. Paternité. Vous devez citer le nom de l'auteur original de la manière indiquée par l'auteur de l'oeuvre ou le titulaire des droits qui vous confère cette autorisation (mais pas d'une manière qui suggérerait qu'ils vous soutiennent ou approuvent votre utilisation de l'oeuvre). Pas d'utilisation Commerciale. Vous n'avez pas le droit d'utiliser cette création à des fins commerciales. Pas de Modification. Vous n'avez pas le droit de modifier, de transformer ou d'adapter cette création. A chaque réutilisation ou distribution de cette création, vous devez faire apparaître clairement au public les conditions contractuelles de sa mise à disposition. Chacune de ces conditions peut être levée si vous obtenez l'autorisation du titulaire des droits. Rien dans ce contrat ne diminue ou ne restreint le droit moral de l'auteur ou des auteurs. Ceci est le Résumé Explicatif du Code Juridique. La version intégrale du contrat est attachée en fin de document et disponible sur :

3 CODE Par :: Jérôme Fenal :: et :: Utilisation de Net::LDAP 72 Après avoir vu un peu de théorie et de mise en pratique de LDAP avec Linux, et puisque nous sommes dans la rubrique tenue par les Mongueurs de Perl, attachons-nous au sujet qui nous intéresse : Net::LDAP. Pourquoi utiliser Perl? Perl est un langage qui sait à peu près tout faire, et LDAP, ainsi que LDIF sont tout à fait dans ses capacités. Ses capacités de traitement de chaînes de caractères ainsi que les structures de données qu'il met à disposition du programmeur permettent, par exemple, de réécrire à peu de frais notre propre version des outils de migration de PADL. com ; le but étant d'intégrer facilement d'autres sources de données qu'un simple fichier /etc/passwd. Historiquement, Perl a aussi été un des premiers langages utilisés avec LDAP, Netscape ayant développé une interface Perl sur la base de ses API LDAP écrites en langage C. Le module en question est perldap, module toujours disponible lorsque vous achetez Sun Java System Directory Server (le nouveau nom de Netscape Directory Server, après son passage par la société iplanet). Notez qu'une distribution de Perl est intégrée au produit. À ce sujet, vous pourrez même bientôt tester un petit frère de ce produit lorsque RedHat aura ouvert le code de Netscape Directory Server, racheté à AOL, ex-coactionnaire de iplanet avec Sun. Citons enfin comme autre moyen d'accès à LDAP la suite de modules Net::LDAP développée par Graham Barr. Cette suite a le gros avantage d'être écrite nativement et totalement en Perl, et donc de ne pas employer de code XS nécessitant un compilateur C et surtout des bibliothèques LDAP. C'est ce module spécifique que nous allons voir plus en détail. Pourquoi utiliser Perl avec LDAP? Plusieurs raisons à cela : Interface programmable rapidement. Perl est un langage de script, et en cela permet de faire beaucoup plus facilement qu'en C des requêtes puis des modifications/insertions dans l'annuaire. Un autre avantage de Perl quand on travaille sur des informations nommées telles que celles que l'on trouve dans LDAP réside dans l'utilisation des hachages. Ainsi, avec les seuls utilitaires présentés ici, on peut faire énormément de choses, mais en passant toujours par le format LDIF, qu'il faut générer. Perl aide donc à cela, facilement et rapidement.enfin, avec le remplacement de chaîne (s/// ou substr()), il est facile de se faire une sorte de patron (%U est le nom d'utilisateur, %G son groupe principal, etc.) et de faire générer du LDIF ou de faire des modifications paramétrées dans l'annuaire. Remplacer LDIF par Net::LDAP. Le choix d'utiliser LDIF dans nos premiers scripts est celui de l'assurance. En effet, aucune modification n'est faite dans l'annuaire, seuls des fichiers texte sont générés. Mais si LDIF est facile à utiliser pour les ajouts, il devient un enfer de volubilité quand il s'agit de faire des modifications en masse dans un annuaire. Et ce, d'autant plus quand il s'agit de faire la même modification pour toute une branche, ou tous les objets couverts par un filtre de sélection. Renommer les objets en masse. Il m'est arrivé d'avoir à modifier en masse la structure de l'arbre des informations de l'annuaire (le DIT), car le modèle en OU choisi au départ s'est avéré malheureux, malaisé, bref à changer. Si cette opération devait être réalisée manuellement, ce serait une requête pour obtenir les DN des objets à renommer, puis autant de requêtes à l'utilitaire ldapmodrdn. Pas pratique, alors qu'en Perl, on interroge, on boucle sur les DN, et on renomme dans la foulée. Plus rapide, plus pratique, mais aussi plus dangereux en cas de mauvaise manipulation, encore qu'il soit tout à fait possible de tester sur quelques objets de test dans une OU de test. C'est ainsi que nous allons voir comment utiliser Net::LDAP afin de faire nos modifications directement dans notre annuaire. Net::LDAP Installation Net::LDAP (aussi connu sous le nom de sa distribution sur CPAN, perl-ldap) est donc l'une des deux API LDAP pour Perl. En tant que module non standard (i.e. pas distribué avec l'interpréteur Perl luimême), il faut l'installer avant utilisation : root@ldap1# cpan Net::LDAP Attention, il y a plusieurs dépendances, dont Convert::ASN1. Net::LDAP est un module orienté objet, donc nous créerons un objet d'accès à l'annuaire. Nous utiliserons ensuite les méthodes associées à cet objet pour lancer nos requêtes sur l'annuaire. Connexion à l'annuaire La connexion à l'annuaire est très simple, il suffit d'instancier un objet Net::LDAP puis d'utiliser la méthode bind : my $ldap = Net::LDAP->new('ldap1.example.com', port => 389, version => 3) or die "erreur LDAP: Impossible de". "contacter l'annuaire ($@)";

4 Utilisation de Net::LDAP La variable indiquée dans le die est le message d'erreur du dernier appel à la fonction eval. Sa présence ici n'est pas forcément nécessaire, mais elle permet d'attraper le cas échéant les erreurs sur un require qui est utilisé par Net::LDAP. Dit plus court, ça sert (dans le cas de Net::LDAP) à savoir s'il y a des erreurs de syntaxe dans les modules. Le premier paramètre est le nom du serveur LDAP. Ce premier paramètre peut aussi être une URI, telle que ldap:// localhost:389/, ce qui dispenserait de spécifier le port dans les options. La notation par URI est surtout intéressante dans le cas où votre script Perl Net::LDAP devra s'exécuter sur la même machine que le serveur LDAP, et communiquer avec lui sans utiliser le réseau. En effet, c'est le seul moyen de donner le nom du socket Unix pour une connexion LDAPI : my $ldap = Net::LDAP->new( 'ldapi://%2fvar%2frun%2fldapi_socket', version => 3) La méthode new peut prendre d'autres paramètres, dont le plus intéressant à connaître est timeout. La connexion proprement dite (bind) est tellement simple que je ne détaillerai pas : $ldap->bind ( "cn=manager,dc=example,dc=com", password => "secret" Pour une connexion anonyme, il suffit de ne pas passer d'argument à bind. Requête et récupération des réponses La méthode search permet d'effectuer vos requêtes, elle retourne un objet de classe Net::LDAP::Search. Cet objet référencera ensuite les objets de l'annuaire répondant aux filtres passés pour la recherche, qui seront de type Net::LDAP::Entry. Net::LDAP::Search permet plusieurs méthodes d'accès aux objets retournés, que ce soit avec une sémantique tableau (méthode entries()), ou une sémantique pile ou liste, avec la méthode pop_ entry(). Cette classe d'objet Net:::LDAP::Search permet aussi la gestion des erreurs avec leur détection (méthode code()) et leur documentation (méthode error()). Ceci constitue une adaptation de la méthologie habituelle consistant à faire retourner une valeur scalaire (un entier en l'occurrence) véhiculant le code erreur. En C comme en Perl, pour permettre des constructions, on a souvent des langages tels que : if ( $mon_objet->sa_methode(\%entrees, \%sorties) ) { # Nous traitons ici dans ce bloc de code une erreur.... Ici, la méthode (ou la fonction en C) doit retourner 0 en cas de succès, et une valeur non nulle en cas d'erreur. Dans le cas de Net::LDAP, ce qui est retourné par les méthodes de l'accesseur Net::LDAP est donc un objet de classe Net::LDAP:: Search. Or, il se trouve que cette classe dérive de la classe Net::LDAP::Message, classe qui définit entre autres deux méthodes particulières : code() et error(). De la même façon, les autres méthodes retournent un objet dont la classe, adaptée au contexte de la méthode Net::LDAP appelée, dérive de Net::LDAP::Message. La référence sur le message, retournée par toutes les opérations hormis l'instanciation de l'objet d'accès à l'annuaire, permet ainsi de gérer le contrôle d'erreur. On peut se permettre de l'oublier rapidement (nous sommes dans le cadre de scripts rapides à développer et à jeter) grâce à la simple ligne : Ce qui diffère des habitudes. Mais nous sommes dans un contexte objet, et cette manière de retourner des objets ubiquitaires, retournant à la fois le code retour de l'opération les ayant créés en plus des données permet de tout gérer en même temps, au prix d'une ligne de code de plus. Dans le cadre de programmes nécessitant une gestion plus fine des erreurs, utilisez un autre moyen d'informer l'utilisateur que die et optez pour des comportements différents suivant les valeurs de $mesg- >code. Les différentes valeurs du code erreur sont disponibles dans la page de manuel de Net::LDAP::Constant. Par exemple : LDAP_SUCCESS (0) Opération terminée sans erreur LDAP_OPERATIONS_ERROR (1) Le serveur a rencontré une erreur interne. Des informations complémentaires vous sont aussi données dans les pages de manuel Net::LDAP::Message et Net::LDAP:: FAQ. Mais passons à notre première requête : ou=paris #!/usr/bin/perl -w use strict; use Net::LDAP; my $mesg; my $ldap = Net::LDAP->new("ldap1.example.com", port => 389, version => 3) or die "erreur LDAP: Can't contact master ldap server ($@)"; $mesg = $ldap->bind( "cn=manager,dc=example,dc=com", password => 'secret' $mesg = $ldap->search( base => 'dc=example,dc=com', filter => '(ou=paris)' foreach my $entry ($mesg->all_entries) { print "dn: ".$entry->dn()."\n"; foreach my $attr ($entry->attributes) { foreach my $value ($entry->get_value($attr)) { print "$attr: $value\n"; $ldap->unbind( Notez l'imbrication des méthodes pour accéder au contenu des objets LDAP. Un fait qui peut être troublant est que la méthode attributes renvoie toujours un tableau (ou une référence sur un tableau si l'option asref => 1 est passée à la méthode get_values). Cela est dû au fait qu'il n'y a pas de différence de traitement entre les attributs multivalués et ceux qui ne le sont pas. L'appel à la méthode unbind signifie la demande de déconnexion de l'annuaire par le programme. La méthode search peut aussi prendre un paramètre nommé attrs qui permet de limiter la liste des attributs retournés par la requête. Par défaut, tous les attributs auxquels les listes de contrôle d'accès vous permettent d'accéder sont retournés. Si vous ne voulez que tester la présence ou non d'objets par rapport à votre filtre, spécifiez attrs => [ '1.1' ]. Vous pouvez aussi accéder aux attributs de gestion de l'annuaire, comme les horodatages sur les objets : $mesg = $ldap->search( base => 'dc=example,dc=com', filter => '(&(objectclass=posixaccount)(ou=paris))' attrs => [ qw( * createtimestamp modifytimestamp ) ] L'étoile est le joker désignant tous les attributs retournés par défaut. Ainsi, tous les attributs «normaux» sont retournés, plus createtimestamp et modifytimestamp. 73

5 CODE 74 Ajout d'un enregistrement L'ajout est tout aussi simple que le reste. Il suffit de spécifier à la méthode add le DN du nouvel objet, ainsi que la liste des attributs. $mesg = $ldap->add( "uid=dmitri,ou=moscou,ou=people,dc=example,dc=com", attr => [ uid => 'dmitri', cn => 'dmitri', objectclass => [ 'top', 'person', 'inetorgperson', 'posixaccount', 'shadowaccount' ], uidnumber => 1007, gidnumber => '513', userpassword => '$pass', cn => 'dmitri', loginshell => '/bin/bash', gecos => 'Charlie dmitri', description => 'System User', homedirectory => '/home/dmitri', sn => 'dmitri' ] Lorsqu'un attribut est multivalué, on passe une référence à un tableau (éventuellement anonyme comme ici) contenant toutes les valeurs de l'attribut au lieu de la simple valeur. Nous sommes en contexte scalaire, attr est donc une référence à un tableau contenant tous les attributs de l'objet. De façon similaire, il est possible de modifier la valeur d'un attribut ou d'enlever un attribut (non nécessaire, i.e. en MAY dans le schéma). Ces trois méthodes add, modify et delete doivent être suivies d'un appel à la méthode update de façon à lancer la mise à jour de l'annuaire. Dans le cas contraire, les modifications effectuées sur l'objet courant sont perdues. Mais voyons plutôt ces trois méthodes en action. Exemple concret : modification massive dans l'annuaire Un besoin courant dans la mise en place d'un annuaire est l'ajout ou la modification en masse d'attributs sur tous les objets de l'annuaire. Le script qui suit, volontairement non générique, permet donc de modifier/ ajouter/enlever un attribut à la fois sur tous les objets de l'annuaire qui répondent au filtre spécifié dans la requête. #!/usr/bin/perl -w use strict; use Getopt::Std; use Net::LDAP; use vars qw($attr $val $opt_h $opt_a $opt_m $opt_d sub say_usage { print "modldap - Modificateur simple d'attributs LDAP\n"; print "\n\n\t$0 [-a] attribut valeur...\n"; print << 'EOT'; Options: [-d] : Détruire un attribut [-m] : Modifier un attribut [-a] : Ajouter un attribut (pour les attributs multivalués) [-h] : help : montre ce texte d'aide EOT exit 0; getopts('admh' # Sets opt_* say_usage if $opt_h; if (! defined($attr=shift)) { print "ERREUR : Spécifiez un attribut LDAP à modifier\n"; say_usage; ; if (! $opt_d &&! defined($val=shift)) { print "ERREUR : Spécifiez une valeur pour l'attribut\n"; say_usage; ; my $ldap = Net::LDAP->new('ldap1.example.com', port => 389, version => 3) or die "ERREUR LDAP : Impossible de contacter l'annuaire ($@)"; $ldap->bind ( "cn=manager,dc=example,dc=com", password => "secret" my $mesg = $ldap->search( base => 'ou=people, dc=example,dc=com', filter => '(objectclass=*)' LOOP: foreach my $entry ($mesg->all_entries) { my $uid = lc($entry->get_value('uid') my $action = 'nop'; $action = 'add' if $opt_a; $action = 'modify' if $opt_m; $action = 'delete' if = $entry->get_value($attr print "Old values :".join(" my $newval = $val; $newval =~ s/\%u/$uid/g; ACTION: for ($action) { /nop/ and do { print "Rien à faire\n"; last ACTION; ; /add/ and do { print "Ajout attribut $attr à $newval\n"; $entry->add($attr, $newval $entry->update($ldap last ACTION; ; /modify/ and do { next LOOP if $newval eq $attrl[0]; # Attention ici, pas de modification # si l'attribut a déjà la bonne valeur print "Modification attribut $attr à $newval\n"; $entry->replace($attr, $newval $entry->update($ldap last ACTION; ; /delete/ and do { if (@attrl) { print "Destruction attribut $attr\n"; $entry->delete($attr, [ ] $entry->update($ldap last ACTION; ; print "-" x 60. "\n"; $ldap->unbind; Ce script m'a rendu maintes fois service sur des annuaires importants. N'oubliez pas que Perl sait facilement faire des manipulations (des filtres?) sur le texte, comme par exemple la ligne $newval =~ s/\%u/$uid/g; qui permet de modifier un %U présent dans la valeur de l'attribut en l'uid du compte : pratique pour modifier un attribut tel que le répertoire racine (home directory) des comptes utilisateurs. Renommage/déplacement d'objets Le renommage et le déplacement d'objets dans l'arbre de l'annuaire se fait facilement à la main avec un outil graphique, avec un simple tirer-lâcher (drag'n drop). Cependant, au début d'un déploiement d'annuaire, on peut vouloir changer l'organisation du DIT, comme passer d'une organisation hiérarchisée avec plusieurs sous-ou à une organisation à plat de l'annuaire. Mais quand on a plus de 10 entrées à déplacer, il vaut mieux commencer à automatiser. L'automatisation peut se faire par le biais d'un vidage de l'annuaire (avec un slapcat ou un ldapsearch), suivi d'un tripotage de tout le LDIF résultant (presque) manuel (quelques expressions rationnelles Perl aideront). Le résultat sera ensuite réinjecté dans l'annuaire, nécessitant un arrêt de production et l'indisponibilité de l'annuaire qui vont avec. Une autre solution est de déplacer les objets dans l'annuaire (en ayant prêté attention aux requêtes telles que celles faites par PAM). Comme sous Unix, où la commande mv permet à la fois de renommer et de déplacer des fichiers entre répertoires, la méthode moddn permet de renommer, voire de déplacer les objets entre différentes OU dans LDAP. C'est cette fonctionnalité qui est derrière le tirer-lâcher des outils graphiques. Prêtons-nous, pour illustrer la solution à ce besoin, à un petit exercice d'utilisation de moddn. Nous allons faire passer tout notre petit monde dans une nouvelle OU qui va s'appeler Mongueurs. Voici comment faire : #!/usr/bin/perl -w use strict; use Net::LDAP; my $ldap = Net::LDAP->new('ldap1.example.com', port => 389, version => 3) or die "erreur LDAP : Impossible de contacter l'annuaire ($@)"; $ldap->bind ( "cn=manager,dc=example,dc=com", password => "secret" my $mesg = $ldap->search( base => "ou=people, dc=example,dc=com", filter => '(objectclass=person)'

6 Utilisation de Net::LDAP foreach my $entry ($mesg->all_entries) { my $dn = $entry->dn( my $newrdn = $1 if $dn =~ m/([^,]+)/; print STDERR "$dn sera renommé en $newrdn\n"; $mesg = $ldap->moddn( $dn, newrdn => $newrdn, newsuperior => "ou=mongueurs,ou=people,dc=example,dc=com" $mesg->code && die "Impossible de renommer $dn : ".$mesg->error; $ldap->unbind; Ici nous récupérons le RDN (en enlevant tout ce qui vient après la première virgule) sans pour autant le modifier. Si on modifie le RDN, il ne faudra pas oublier de penser à l'option deleteoldrdn de la méthode moddn, qui permet de ne pas conserver l'ancien RDN en plus du nouveau (attention à respecter le schéma et gare aux collisions). Cela peut permettre une certaine période de migration sur un annuaire. Prêtez néanmoins attention à ce que vous faites, et n'hésitez jamais à effectuer vos tests sur un annuaire contenant une réplique des données de production, si vous n'avez pas de troisième serveur (car vous en avez déjà deux, n'est-ce pas?), ou à défaut sur une copie des données de production dans une OU ou mieux, une database LDAP de test sur votre annuaire OpenLDAP. Synchronisation entre deux annuaires Une autre des utilisations de Net::LDAP peut être de vous permettre de synchroniser deux annuaires ne sachant ou ne pouvant pas forcément parler entre eux (que ce soit pour une raison technique ou politique, la sécurité étant un exemple). La solution est donc d'aller interroger les deux annuaires se présentant à vous, de faire les comparaisons sur les entrées de chacun, et ensuite soit de générer du LDIF permettant la synchronisation, soit d'aller ajouter directement les objets dans l'annuaire devant reprendre les informations de l'autre. L'approche pour ce faire va donc être de récupérer en masse les noms des objets, de façon à passer le moins de temps possible dans l'annuaire, de faire les comparaisons de présence/ absence (je ne parle pas des modifications sur les objets en eux-mêmes), puis de copier les objets du premier annuaire dans le second, voire de détruire les objets ayant disparu du premier. Un détail avant de commencer : n'escomptez pas, sans outil particulier, répliquer les mots de passe si votre annuaire source est un Active Directory. Celui-ci les stocke dans un attribut unicodepwd, mais ne les restitue pas. Tant pis pour la migration transparente à Samba... La première passe de recherche va donc simplement consister en la requête sur le UID de chacun des deux annuaires, à les mettre dans des hachages, et à compter les clés d'un côté et de l'autre. Pour ce faire, on lance successivement sur chacun des deux annuaires une requête, et on stocke l'uid dans un hachage. Pour émuler avec un seul annuaire deux arborescences de comptes, il nous suffit de dupliquer dans une nouvelle OU une partie de nos comptes. Ce qui peut nous donner ceci : $ ldapsearch -D "cn=manager,dc=example,dc=com" -s sub \ -b 'dc=example,dc=com' \ > -w secret -s sub -x '(objectclass=posixaccount)' \ -LLL dn sed '/^$/d' sort dn: uid=book,ou=europe,dc=example,dc=com dn: uid=grinder,ou=europe,dc=example,dc=com dn: uid=grinder,ou=paris,ou=people,dc=example,dc=com dn: uid=leon,ou=bath,ou=people,dc=example,dc=com dn: uid=leon,ou=europe,dc=example,dc=com dn: uid=nicholas,ou=europe,dc=example,dc=com dn: uid=nicholas,ou=london,ou=people,dc=example,dc=com dn: uid=sniper,ou=paris,ou=people,dc=example,dc=com dn: uid=ymmv,ou=europe,dc=example,dc=com dn: uid=ymmv,ou=paris,ou=people,dc=example,dc=com Nous avons donc cinq comptes dans l'ou Europe (book, grinder, leon, nicholas, et ymmv), et cinq autres dans l'arborescence créée auparavant (leon, nicholas, grinder, sniper et ymmv). BooK n'est plus dans l'arborescence originelle qui nous servira de source, alors que Sniper n'est que dans l'annuaire source. Le petit script suivant vous permet de voir comment nous pouvons procéder pour détecter les présences ou absences d'un compte dans un annuaire ou l'autre : #!/usr/bin/perl -w use strict; use Net::LDAP; use Data::Dumper; my %comptes; my $debug = 0; sub ldirread($$$) { my ( $ldapconn, $pow2, $comptes) print STDERR "Lecture annuaire sur ". $ldapconn->{host."\n" if $debug; my $ldap = Net::LDAP->new( $ldapconn->{host, port => 389, version => 3 $ldap->bind( $ldapconn->{cn, password => $ldapconn->{pass my $mesg = $ldap->search( base => $ldapconn->{base, filter => $ldapconn->{filter foreach my $entry ( $mesg->all_entries ) { $comptes->{$entry->get_value('uid') = $pow2; my $annuaire = 0; ldirread( { host => 'localhost', cn => 'cn=manager, dc=example, dc=com', filter => '(uid=*)', pass => 'secret', base => 'ou=people,dc=example,dc=com',, 1 << $annuaire, \%comptes $annuaire++; ldirread( { host => 'localhost', cn => 'cn=manager, dc=example, dc=com', filter => '(uid=*)', pass => 'secret', base => 'ou=europe,dc=example,dc=com',, 1 << $annuaire, \%comptes foreach ( keys %comptes ) { print "! $_ uniquement dans l'annuaire source\n" if $comptes{$_ == 1; print "!! $_ uniquement dans l'annuaire cible\n" if $comptes{$_ == 2; print " $_ dans les deux annuaires\n" if $comptes{$_ == (1 2 print Dumper \%comptes if $debug; Ainsi que vous pouvez le voir, nous créons une fonction ldirread qui se charge de lire l'un ou l'autre des annuaires. On lui passe en paramètre une référence sur un hachage qui contient l'essentiel des informations de connexion (%ldapconn dans la fonction). En plus de ces informations, nous passons aussi une variable contenant la valeur à ajouter aux valeurs existantes (quand elles existent) du troisième paramètre : le hachage global %comptes, passé par référence, qui est vu comme $comptes dans la fonction. Ainsi, nous appelons deux fois la fonction ldirread, avec des informations de connexion différentes (dans notre cas, seule la base de recherche diffère), en ne faisant qu'incrémenter le numéro de l'annuaire. Et par la magie des puissances de deux, nous allumons un bit dans %comptes pour la présence d'un enregistrement dans les annuaires. Pour allumer ce bit, nous utilisons un ou logique, de façon à conserver la valeur précédente, et à y ajouter la valeur courante. Si la valeur pour la clé n'existe pas, ce qui est le cas lors de la lecture du premier annuaire, l'auto-vivification de Perl la crée. Une fois que les annuaires sont lus, il suffit ensuite de relire le hachage, en regardant les valeurs pour chaque clé. Si la valeur 75

7 CODE 76 est à 1, l'enregistrement n'est que dans le premier annuaire, si elle est à 2, il n'est que dans le second, et si elle est à 3 (en fait 1 2 qui a le bon goût de valoir 1+2 en arithmétique booléenne), l'enregistrement dont l'uid est la clé considérée est présent dans les deux annuaires. Le résultat à l'exécution donne ceci : $./ds.pl grinder dans les deux annuaires nicholas dans les deux annuaires 1 sniper uniquement dans l'annuaire source leon dans les deux annuaires ymmv dans les deux annuaires 2 book uniquement dans l'annuaire cible Libre à vous d'étendre ensuite le script avec éventuellement une troisième source, du malaxage sur les données, etc. La technique employée permet de gagner en espace mémoire, et donc en performance, en stockant pour une clé donnée une seule valeur : l'addition des annuaires dans lequel il est présent. Vérification des ACL Une autre tâche qui peut être confiée à Perl pour éviter les non-régressions est la vérification du paramétrage des ACL. En effet, la syntaxe de ces ACL n'est pas toujours intuitive et leur comportement dépend en plus de leur ordre de spécification. Il est donc important pour la sécurité d'un système d'information d'en contrôler leur bon fonctionnement. Le principe est le suivant : lors de l'écriture des différentes ACL, vous savez ce que vous voulez ouvrir à tel ou tel public. Ce public est soit anonyme, soit nommé, et on veut lui masquer le maximum d'informations dont il n'a pas besoin. À noter que cela comprend, par exemple, l'attribut contenant le mot de passe userpassword, mais aussi des objets, voire des branches complètes, et que ces choix se font aussi en fonction du contenu de votre annuaire. Par exemple, un utilisateur non authentifié ne doit pas pouvoir lire les mots de passe des divers comptes utilisateurs présents dans l'annuaire, mais seulement pouvoir s'authentifier à leur encontre lors d'un bind. De même, un utilisateur sans privilège particulier ne doit pas voir les mots de passe de ses collègues (ce fut la raison de la création du fichier /etc/ shadow). Au contraire, le DN d'un compte de réplication de l'annuaire doit pouvoir lui lire les mots de passe de tout le monde afin de pouvoir les répliquer. Ainsi, au vu des diverses combinaisons possibles, il vaut presque mieux, avec la connaissance que vous avez de votre annuaire, d'abord créer les vérifications qui vous semblent importantes avant de les transformer en ACL. Ces vérifications seront (bien sûr) écrites en Perl, de la manière la plus simple possible, ce dans le but de masquer la complexité des tests et de façon à éviter le dégoût de l'écriture du test ; et par là même de favoriser ces écritures. Le principe est donc le même que pour l'écriture de tests permettant de valider le bon fonctionnement de vos modules Perl : (dans l'idéal) on écrit d'abord les tests, qui vont d'abord échouer, puis on modifie le code (dans notre cas, les ACL) jusqu'à ce que tous les tests passent. Pourquoi tous? Pour valider l'absence d'effet de bord. Pour ces tests, un cadre est donc nécessaire de façon à simplifier au maximum leur écriture. Un test devra donc pouvoir n'être qu'un appel à une simple fonction, ayant une sémantique expressive, par exemple : check( name => 'userpassword de grinder visible par manager', ldap => $ldap{manager, base => 'ou=people, dc=example, dc=com', filter => '(&(objectclass=posixaccount)(uid=grinder))', has => { userpassword => [ '{crypt$1$bssfekpv$9smr3ck.aa71epg6vva3n0' ], code => 0 Un test a un nom (paramètre nommé name, désolé de coder en anglais, mais c'est la langue de CPAN), une référence à l'objet Net::LDAP permettant la connexion à l'annuaire, la base de la recherche, son scope, un filtre, et une référence sur un hachage contenant un ou plusieurs attributs, ainsi que la ou les valeur(s) (cas d'attribut multivalué) qu'il doit avoir dans le contexte courant. On sort de la vérification elle-même les points suivants : initialisation des accesseurs Net::LDAP et authentification auprès de l'annuaire. En effet, ces phases ne sont que des à-côtés (certes importants car définissant le contexte) des vérifications. Les différentes vérifications seront donc intercalées par les connexions et déconnexions à l'annuaire. Cela donne le script suivant : #!/usr/bin/perl -w # vim: et ai tw=100 sw=4 ts=4 use strict; use Net::LDAP; use Data::Dumper; my %comptes; my $debug = 1; sub check(@) { my %parms; my $i = 0; # liste des paramètres nommés autorisés my $re = join " ", qw( name ldap base scope filter has code $re = qr/^(?:$re)$/; while ( $i ) { if ( $args[$i] =~ $re ) { my ( $k, $v ) = $i, 2 $parms{$k = $v; else { $i++; # Il ne devrait plus rien rester die "Paramètre(s) inconnu(s): ". join( ", ) # Il n'y a pas de façon directe de savoir # si on est connecté ou non die "Authentification non réalisée" if!defined $parms{ldap->{net_ldap_mesg; # construction de la requête, profitant de # la dualité # liste / paire (clé => valeur) my $mesg = $parms{ldap->search( ($parms{base? (base=>$parms{base) : ()), ($parms{scope? (scope=>$parms{scope) : ()), ($parms{filter? (filter=>$parms{filter) : ()), ($parms{has? (attrs =>keys %{$parms{has): ()), my $rc=0; $rc++ if ( $parms{code!= $mesg->code() foreach my $entry ( $mesg->all_entries ) { foreach my $attr ( keys %{$parms{has ) { my %tab=map{$_=>1 $entry->get_value($attr $tab{$_++ foreach (@{ $parms{has->{$attr foreach (keys %tab) { $rc++ if $tab{$_!= 2 print ((($rc == 0)? 'ok' : 'not ok'), (defined($parms{name)?" - $parms{name":''),"\ n" $rc; my %ldap; my $mesg; $ldap{anonymous = Net::LDAP->new( 'localhost', port => 389, version => 3 $mesg = $ldap{anonymous->bind( check( name => 'userpassword de grinder". "visible par anonymous bind', ldap => $ldap{anonymous, base => 'ou=people, dc=example, dc=com', filter => '(&(objectclass=posixaccount)(uid=grinder))', has => { userpassword => [ ], code => 0 $ldap{anonymous->unbind; $ldap{ymmv = Net::LDAP->new( 'localhost', port => 389, version => 3

8 Utilisation de Net::LDAP $mesg = $ldap{ymmv->bind(' uid=ymmv,ou=paris,ou=people,dc=example, dc=com', password => 'topsecret') ; check( name => 'userpassword de grinder visible par ymmv', ldap => $ldap{ymmv, base => 'ou=people, dc=example, dc=com', filter => '(&(objectclass=posixaccount)(uid=grinder))', has => { userpassword => [ ], code => 0 $ldap{ymmv->unbind; $ldap{manager = Net::LDAP->new( 'localhost', port => 389, version => 3 $mesg = $ldap{manager->bind( 'cn=manager,dc=example,dc=com', password => 'secret' check( name => 'userpassword de grinder visible par manager', ldap => $ldap{manager, base => 'ou=people, dc=example, dc=com', filter => '(&(objectclass=posixaccount)(uid=grinder))', has => { userpassword => [ '{crypt$1$bssfekpv$9smr3ck.aa71epg6vva3n0' ], code => 0 check( name => 'membres du groupe posix tea', ldap => $ldap{manager, base => 'ou=group, dc=example, dc=com', filter => '(&(objectclass=posixgroup)(cn=tea))', has => {memberuid=>[qw(nicholas leon book ymmv)], code => 0 $ldap{manager->unbind; La première partie de la fonction check s'occupe de vérifier les paramètres nommés qui sont passés, et de les récupérer dans le hachage %parms. Ensuite, la requête LDAP est construite en fonction de l'existence d'un paramètre ou d'un autre. Un point : aucune précaution n'est prise pour vérifier que des paramètres obligatoires ont bien été passés. Un simple return if not defined($parms() fera l'affaire si vous en avez besoin. (une fois dans $parms{has, la seconde dans get_values), il suffit de tester que toutes les valeurs du hachage %tab sont bien à 2. À la fin de ces boucles, on affiche ok ou not ok suivi d'un éventuel nom de test, et l'on retourne $rc. Le code retour de check n'est pas testé dans notre cas, car l'affichage (?:not\s)?ok permet par la suite d'intégrer la séquence de tests avec les modules Test::* de Perl. Mais ceci est une autre histoire. Afin d'être complet, je vous précise avoir utilisé un hachage (%ldap) pour stocker les accesseurs Net::LDAP afin d'être sûr que le test de vérification de la connexion à l'annuaire qui est fait dans la fonction check se passe bien. Ça permet en plus d'être expressif via la clé de hachage sans pour autant consommer des variables globales (et tous les my qui vont avec, il n'y a pas de petite économie ^_^). La sortie du script ressemble à ça, ce qui permet déjà de voir d'un rapide coup d'œil ce qui passe ou non : ok - userpassword de grinder visible par anonymous bind ok - userpassword de grinder visible par ymmv not ok - userpassword de grinder visible par manager ok - membres du groupe posix tea Pour la petite histoire, le troisième test échoue sur un des deux annuaires utilisés pour écrire cet article, mais passe sur l'autre (test écrit sur l'un, pour un mot de passe, qui est différent de l'autre annuaire, car créé aléatoirement). module permet de générer du LDIF sous diverses formes, comme par exemple avec un encodage base 64, ce qui autorise la sortie de chaînes de caractères UTF-8 sur un système iso , mais aussi les photos et autres attributs binaires. Net::LDAP::Schema : Récupération et manipulation d'un schéma LDAP depuis le serveur ou un fichier LDIF (qui est un format différent de ce que demande OpenLDAP dans ses fichiers de configuration). Ce module permet d'écrire facilement sur disque un schéma OpenLDAP au format LDIF, tout en sélectionnant les classes d'objets que l'on désire. En effet, il fournit au sein de la même structure de données (un hachage) le vidage du schéma au format Net::LDAP::Entry (qui se transforme aisément en format LDIF, cf. point ci-dessus), ainsi que le découpage des objets, attributs, syntaxes, OID et règles de correspondances en hachages. Ce qui permet de retrouver rapidement ses petits. Net::LDAP::DSML : Pour ceux qui font des annuaires leur métier, ce qui comprend l'écriture de schéma. DSML (Directory Service Markup Language) est la vision XML des schémas et des données LDAP. Net::LDAP::RootDSE : Permet d'interroger la racine de l'annuaire, là où sont présentées certaines données intéressantes comme le schéma (si on veut le faire soi-même) ou les versions de protocoles supportées par le serveur. 77 Ensuite, un mouchard, $rc, est positionné à 0 et sera incrémenté en cas de problème. Viennent enfin les boucles imbriquées de vérification du contenu des hachages attributs vers listes de valeurs. Les listes de valeurs d'attributs multivalués sont vérifiées quel que soit l'ordre retourné par la méthode get_values ou par ce qui se trouve dans $parms{has. Cette vérification passe par la création d'un hachage temporaire %tab, dans lequel on ajoute 1 à chaque fois qu'on rencontre une valeur d'attribut. Chaque valeur étant censée avoir été rencontrée deux fois Les autres sous-modules de Net::LDAP Nous avons donc vu pour l'essentiel les deux modules Net::LDAP et Net::LDAP:: LDIF. Sachez qu'il existe d'autres sousmodules à Net::LDAP, que vous pouvez voir avec i /Net::LDAP/ sur la ligne de commande de cpan. Net::LDAP::LDIF : Création et manipulation de LDIF à partir d'objets de type Net::LDAP::Entry. Cela peut être intéressant à utiliser en complément ou en remplacement de Data::Dumper. Le L'auteur Membre de Paris.pm, Jérôme Fenal est utilisateur de GNU/Linux depuis 1994, de divers Unix (OSF/1 2.0) ou Unix-like depuis un peu plus longtemps. Consultant (avant-vente, conseil et réalisation) LogicaCMG. Merci aux Mongueurs marseillais, lyonnais, parisiens et grenoblois qui ont assuré la relecture de cet article. À mon père.

9 Creative Commons Paternité - Pas d'utilisation Commerciale - Pas de Modification 2.0 Creative Commons n'est pas un cabinet d'avocats et ne fournit pas de services de conseil juridique. La distribution de la présente version de ce contrat ne crée aucune relation juridique entre les parties au contrat présenté ci-après et Creative Commons. Creative Commons fournit cette offre de contrat-type en l'état, à seule fin d'information. Creative Commons ne saurait être tenu responsable des éventuels préjudices résultant du contenu ou de l'utilisation de ce contrat. Contrat L'Oeuvre (telle que définie ci-dessous) est mise à disposition selon les termes du présent contrat appelé Contrat Public Creative Commons (dénommé ici «CPCC» ou «Contrat»). L'Oeuvre est protégée par le droit de la propriété littéraire et artistique (droit d'auteur, droits voisins, droits des producteurs de bases de données) ou toute autre loi applicable. Toute utilisation de l'oeuvre autrement qu'explicitement autorisée selon ce Contrat ou le droit applicable est interdite. L'exercice sur l'oeuvre de tout droit proposé par le présent contrat vaut acceptation de celui-ci. Selon les termes et les obligations du présent contrat, la partie Offrante propose à la partie Acceptante l'exercice de certains droits présentés ci-après, et l'acceptant en approuve les termes et conditions d'utilisation. 1. Définitions a. «Oeuvre» : oeuvre de l'esprit protégeable par le droit de la propriété littéraire et artistique ou toute loi applicable et qui est mise à disposition selon les termes du présent Contrat. b. «Oeuvre dite Collective» : une oeuvre dans laquelle l'oeuvre, dans sa forme intégrale et non modifiée, est assemblée en un ensemble collectif avec d'autres contributions qui constituent en elles-mêmes des oeuvres séparées et indépendantes. Constituent notamment des Oeuvres dites Collectives les publications périodiques, les anthologies ou les encyclopédies. Aux termes de la présente autorisation, une oeuvre qui constitue une Oeuvre dite Collective ne sera pas considérée comme une Oeuvre dite Dérivée (telle que définie ci-après). c. «Oeuvre dite Dérivée» : une oeuvre créée soit à partir de l'oeuvre seule, soit à partir de l'oeuvre et d'autres oeuvres préexistantes. Constituent notamment des Oeuvres dites Dérivées les traductions, les arrangements musicaux, les adaptations théâtrales, littéraires ou cinématographiques, les enregistrements sonores, les reproductions par un art ou un procédé quelconque, les résumés, ou toute autre forme sous laquelle l'oeuvre puisse être remaniée, modifiée, transformée ou adaptée, à l'exception d'une oeuvre qui constitue une Oeuvre dite Collective. Une Oeuvre dite Collective ne sera pas considérée comme une Oeuvre dite Dérivée aux termes du présent Contrat. Dans le cas où l'oeuvre serait une composition musicale ou un enregistrement sonore, la synchronisation de l'oeuvre avec une image animée sera considérée comme une Oeuvre dite Dérivée pour les propos de ce Contrat. d. «Auteur original» : la ou les personnes physiques qui ont créé l'oeuvre. e. «Offrant» : la ou les personne(s) physique(s) ou morale(s) qui proposent la mise à disposition de l'oeuvre selon les termes du présent Contrat. f. «Acceptant» : la personne physique ou morale qui accepte le présent contrat et exerce des droits sans en avoir violé les termes au préalable ou qui a reçu l'autorisation expresse de l'offrant d'exercer des droits dans le cadre du présent contrat malgré une précédente violation de ce contrat. 2. Exceptions aux droits exclusifs. Aucune disposition de ce contrat n'a pour intention de réduire, limiter ou restreindre les prérogatives issues des exceptions aux droits, de l'épuisement des droits ou d'autres limitations aux droits exclusifs des ayants droit selon le droit de la propriété littéraire et artistique ou les autres lois applicables. 3. Autorisation. Soumis aux termes et conditions définis dans cette autorisation, et ceci pendant toute la durée de protection de l'oeuvre par le droit de la propriété littéraire et artistique ou le droit applicable, l'offrant accorde à l'acceptant l'autorisation mondiale d'exercer à titre gratuit et non exclusif les droits suivants : a. reproduire l'oeuvre, incorporer l'oeuvre dans une ou plusieurs Oeuvres dites Collectives et reproduire l'oeuvre telle qu'incorporée dans lesdites Oeuvres dites Collectives; b. distribuer des exemplaires ou enregistrements, présenter, représenter ou communiquer l'oeuvre au public par tout procédé technique, y compris incorporée dans des Oeuvres Collectives; c. lorsque l'oeuvre est une base de données, extraire et réutiliser des parties substantielles de l'oeuvre. Les droits mentionnés ci-dessus peuvent être exercés sur tous les supports, médias, procédés techniques et formats. Les droits cidessus incluent le droit d'effectuer les modifications nécessaires techniquement à l'exercice des droits dans d'autres formats et procédés techniques. L'exercice de tous les droits qui ne sont pas expressément autorisés par l'offrant ou dont il n'aurait pas la gestion demeure réservé, notamment les mécanismes de gestion collective obligatoire applicables décrits à l'article 4(d). 4. Restrictions. L'autorisation accordée par l'article 3 est expressément assujettie et limitée par le respect des restrictions suivantes : a. L'Acceptant peut reproduire, distribuer, représenter ou communiquer au public l'oeuvre y compris par voie numérique uniquement selon les termes de ce Contrat. L'Acceptant doit inclure une copie ou l'adresse Internet (Identifiant Uniforme de Ressource) du présent Contrat à toute reproduction ou enregistrement de l'oeuvre que l'acceptant distribue, représente ou communique au public y compris par voie numérique. L'Acceptant ne peut pas offrir ou imposer de conditions d'utilisation de l'oeuvre qui altèrent ou restreignent les termes du présent Contrat ou l'exercice des droits qui y sont accordés au bénéficiaire. L'Acceptant ne peut pas céder de droits sur l'oeuvre. L'Acceptant doit conserver intactes toutes les informations qui renvoient à ce Contrat et à l'exonération de responsabilité. L'Acceptant ne peut pas reproduire, distribuer, représenter ou communiquer au public l'oeuvre, y compris par voie numérique, en utilisant une mesure technique de contrôle d'accès ou de contrôle d'utilisation qui serait contradictoire avec les termes de cet Accord contractuel. Les mentions ci-dessus s'appliquent à l'oeuvre telle qu'incorporée dans une Oeuvre dite Collective, mais, en dehors de l'oeuvre en ellemême, ne soumettent pas l'oeuvre dite Collective, aux termes du présent Contrat. Si l'acceptant crée une Oeuvre dite Collective, à la demande de tout Offrant, il devra, dans la mesure du possible, retirer de l'oeuvre dite Collective toute référence au dit Offrant, comme demandé. Si l'acceptant crée une Oeuvre dite Collective, à la demande de tout Auteur, il devra, dans la mesure du possible, retirer de l'oeuvre dite Collective toute référence au dit Auteur, comme demandé.

10 b. L'Acceptant ne peut exercer aucun des droits conférés par l'article 3 avec l'intention ou l'objectif d'obtenir un profit commercial ou une compensation financière personnelle. L'échange de l'oeuvre avec d'autres Oeuvres protégées par le droit de la propriété littéraire et artistique par le partage électronique de fichiers, ou par tout autre moyen, n'est pas considéré comme un échange avec l'intention ou l'objectif d'un profit commercial ou d'une compensation financière personnelle, dans la mesure où aucun paiement ou compensation financière n'intervient en relation avec l'échange d'oeuvres protégées. c. Si l'acceptant reproduit, distribue, représente ou communique l'oeuvre au public, y compris par voie numérique, il doit conserver intactes toutes les informations sur le régime des droits et en attribuer la paternité à l'auteur Original, de manière raisonnable au regard au médium ou au moyen utilisé. Il doit communiquer le nom de l'auteur Original ou son éventuel pseudonyme s'il est indiqué ; le titre de l'oeuvre Originale s'il est indiqué ; dans la mesure du possible, l'adresse Internet ou Identifiant Uniforme de Ressource (URI), s'il existe, spécifié par l'offrant comme associé à l'oeuvre, à moins que cette adresse ne renvoie pas aux informations légales (paternité et conditions d'utilisation de l'oeuvre). Ces obligations d'attribution de paternité doivent être exécutées de manière raisonnable. Cependant, dans le cas d'une Oeuvre dite Collective, ces informations doivent, au minimum, apparaître à la place et de manière aussi visible que celles à laquelle apparaissent les informations de même nature. d. Dans le cas où une utilisation de l'oeuvre serait soumise à un régime légal de gestion collective obligatoire, l'offrant se réserve le droit exclusif de collecter ces redevances par l'intermédiaire de la société de perception et de répartition des droits compétente. Sont notamment concernés la radiodiffusion et la communication dans un lieu public de phonogrammes publiés à des fins de commerce, certains cas de retransmission par câble et satellite, la copie privée d'oeuvres fixées sur phonogrammes ou vidéogrammes, la reproduction par reprographie. 5. Garantie et exonération de responsabilité a. En mettant l'oeuvre à la disposition du public selon les termes de ce Contrat, l'offrant déclare de bonne foi qu'à sa connaissance et dans les limites d'une enquête raisonnable : i. L'Offrant a obtenu tous les droits sur l'oeuvre nécessaires pour pouvoir autoriser l'exercice des droits accordés par le présent Contrat, et permettre la jouissance paisible et l'exercice licite de ces droits, ceci sans que l'acceptant n'ait aucune obligation de verser de rémunération ou tout autre paiement ou droits, dans la limite des mécanismes de gestion collective obligatoire applicables décrits à l'article 4(e b. L'Oeuvre n'est constitutive ni d'une violation des droits de tiers, notamment du droit de la propriété littéraire et artistique, du droit des marques, du droit de l'information, du droit civil ou de tout autre droit, ni de diffamation, de violation de la vie privée ou de tout autre préjudice délictuel à l'égard de toute tierce partie. c. A l'exception des situations expressément mentionnées dans le présent Contrat ou dans un autre accord écrit, ou exigées par la loi applicable, l'oeuvre est mise à disposition en l'état sans garantie d'aucune sorte, qu'elle soit expresse ou tacite, y compris à l'égard du contenu ou de l'exactitude de l'oeuvre. 6. Limitation de responsabilité. A l'exception des garanties d'ordre public imposées par la loi applicable et des réparations imposées par le régime de la responsabilité vis-à-vis d'un tiers en raison de la violation des garanties prévues par l'article 5 du présent contrat, l'offrant ne sera en aucun cas tenu responsable vis-à-vis de l'acceptant, sur la base d'aucune théorie légale ni en raison d'aucun préjudice direct, indirect, matériel ou moral, résultant de l'exécution du présent Contrat ou de l'utilisation de l'oeuvre, y compris dans l'hypothèse où l'offrant avait connaissance de la possible existence d'un tel préjudice. 7. Résiliation a. Tout manquement aux termes du contrat par l'acceptant entraîne la résiliation automatique du Contrat et la fin des droits qui en découlent. Cependant, le contrat conserve ses effets envers les personnes physiques ou morales qui ont reçu de la part de l'acceptant, en exécution du présent contrat, la mise à disposition d'oeuvres dites Dérivées, ou d'oeuvres dites Collectives, ceci tant qu'elles respectent pleinement leurs obligations. Les sections 1, 2, 5, 6 et 7 du contrat continuent à s'appliquer après la résiliation de celui-ci. b. Dans les limites indiquées ci-dessus, le présent Contrat s'applique pendant toute la durée de protection de l'oeuvre selon le droit applicable. Néanmoins, l'offrant se réserve à tout moment le droit d'exploiter l'oeuvre sous des conditions contractuelles différentes, ou d'en cesser la diffusion; cependant, le recours à cette option ne doit pas conduire à retirer les effets du présent Contrat (ou de tout contrat qui a été ou doit être accordé selon les termes de ce Contrat), et ce Contrat continuera à s'appliquer dans tous ses effets jusqu'à ce que sa résiliation intervienne dans les conditions décrites ci-dessus. 8. Divers a. A chaque reproduction ou communication au public par voie numérique de l'oeuvre ou d'une Oeuvre dite Collective par l'acceptant, l'offrant propose au bénéficiaire une offre de mise à disposition de l'oeuvre dans des termes et conditions identiques à ceux accordés à la partie Acceptante dans le présent Contrat. b. La nullité ou l'inapplicabilité d'une quelconque disposition de ce Contrat au regard de la loi applicable n'affecte pas celle des autres dispositions qui resteront pleinement valides et applicables. Sans action additionnelle par les parties à cet accord, lesdites dispositions devront être interprétées dans la mesure minimum nécessaire à leur validité et leur applicabilité. c. Aucune limite, renonciation ou modification des termes ou dispositions du présent Contrat ne pourra être acceptée sans le consentement écrit et signé de la partie compétente. d. Ce Contrat constitue le seul accord entre les parties à propos de l'oeuvre mise ici à disposition. Il n'existe aucun élément annexe, accord supplémentaire ou mandat portant sur cette Oeuvre en dehors des éléments mentionnés ici. L'Offrant ne sera tenu par aucune disposition supplémentaire qui pourrait apparaître dans une quelconque communication en provenance de l'acceptant. Ce Contrat ne peut être modifié sans l'accord mutuel écrit de l'offrant et de l'acceptant. e. Le droit applicable est le droit français. Creative Commons n'est pas partie à ce Contrat et n'offre aucune forme de garantie relative à l'oeuvre. Creative Commons décline toute responsabilité à l'égard de l'acceptant ou de toute autre partie, quel que soit le fondement légal de cette responsabilité et quel que soit le préjudice subi, direct, indirect, matériel ou moral, qui surviendrait en rapport avec le présent Contrat. Cependant, si Creative Commons s'est expressément identifié comme Offrant pour mettre une Oeuvre à disposition selon les termes de ce Contrat, Creative Commons jouira de tous les droits et obligations d'un Offrant. A l'exception des fins limitées à informer le public que l'oeuvre est mise à disposition sous CPCC, aucune des parties n'utilisera la marque «Creative Commons» ou toute autre indication ou logo afférent sans le consentement préalable écrit de Creative Commons. Toute utilisation autorisée devra être effectuée en conformité avec les lignes directrices de Creative Commons à jour au moment de l'utilisation, telles qu'elles sont disponibles sur son site Internet ou sur simple demande. Creative Commons peut être contacté à

Optimiser TileCache. II. La configuration des ressources WMS.

Optimiser TileCache. II. La configuration des ressources WMS. Optimiser TileCache TileCache est un logiciel qui permet de créer un cache local d'une ressource WMS locale ou distante (du point de vue d'un serveur), afin d'en optimiser l'accès. Il est d'une simplicité

Plus en détail

http://www.ed-diamond.com

http://www.ed-diamond.com Ceci est un extrait électronique d'une publication de Diamond Editions : http://www.ed-diamond.com Ce fichier ne peut être distribué que sur le CDROM offert accompagnant le numéro 100 de GNU/Linux Magazine

Plus en détail

Déploiement de (Open)LDAP

Déploiement de (Open)LDAP L O 5 1 : A d m i n i s t a t i o n S y s t è m e Déploiement de (Open)LDAP Stéphane GALLAND Printemps 2007 stephane.galland@utbm.fr D é p l o i e m e n t Déployer un service d'annuaire LDAP, c'est rélféchir

Plus en détail

Configuration d'un annuaire LDAP

Configuration d'un annuaire LDAP Le serveur Icewarp Configuration d'un annuaire LDAP Version 10.3 Juillet 2011 Icewarp France / DARNIS Informatique i Sommaire Configuration d'un annuaire LDAP 1 Introduction... 1 Qu'est-ce que LDAP?...

Plus en détail

Utiliser Améliorer Prêcher. Introduction à LDAP

Utiliser Améliorer Prêcher. Introduction à LDAP Introduction à LDAP Introduction à LDAP Sommaire 2 Sommaire Historique rapide Les concepts LDAP et la gestion d identité Démonstration Autre ressources 2 Historique Historique Historique rapide 4 Historique

Plus en détail

Description de la maquette fonctionnelle. Nombre de pages :

Description de la maquette fonctionnelle. Nombre de pages : Description de la maquette fonctionnelle Nombre de pages : 22/07/2008 STATUT DU DOCUMENT Statut Date Intervenant(s) / Fonction Provisoire 22/07/2008 Approuvé Validé HISTORIQUE DES MODIFICATIONSICATIONS

Plus en détail

Authentification des utilisateurs avec OpenLDAP

Authentification des utilisateurs avec OpenLDAP Authentification des utilisateurs avec OpenLDAP Ce tutoriel développe la mise en place d'un contrôleur de Domaine Principal (PDC) avec authentification POSIX uniquement. La racine principale de l'annuaire

Plus en détail

Annuaire LDAP, SSO-CAS, ESUP Portail...

Annuaire LDAP, SSO-CAS, ESUP Portail... Annuaire LDAP, SSO-CAS, ESUP Portail... Patrick DECLERCQ CRI Lille 1 Octobre 2006 Plan Annuaire LDAP : - Présentation - Recommandations (SUPANN) - Architecture - Alimentation, mises à jour - Consultation

Plus en détail

RTN / EC2LT Réseaux et Techniques Numériques. Ecole Centrale des Logiciels Libres et de Télécommunications

RTN / EC2LT Réseaux et Techniques Numériques. Ecole Centrale des Logiciels Libres et de Télécommunications RTN / EC2LT Réseaux et Techniques Numériques Ecole Centrale des Logiciels Libres et de Télécommunications Mise en place d'un Contrôleur de Domaine dans un milieu hétérogène avec SAMBA couplé à LDAP Domaine

Plus en détail

LDAP : pour quels besoins?

LDAP : pour quels besoins? LDAP : pour quels besoins? Authentification centralisée (même identifiant/mot de passe pour l'accès à différents services) : POP(S), IMAP(S), SMTPS SSO-CAS (Portail Intranet...) Accès à d'autres sites

Plus en détail

Le projet d'annuaire LDAP à Rennes 1. - Raymond Bourges - Gérard Delpeuch

Le projet d'annuaire LDAP à Rennes 1. - Raymond Bourges - Gérard Delpeuch Le projet d'annuaire LDAP à Rennes 1 - Raymond Bourges - Gérard Delpeuch Les besoins De plus en plus d'outils informatiques sont utilisés à l'université Leur accès est souvent lié à une validation de la

Plus en détail

INSTALLATION ET CONFIGURATION DE OPENLDAP

INSTALLATION ET CONFIGURATION DE OPENLDAP INSTALLATION ET CONFIGURATION DE OPENLDAP Ce document a pour intérêt de décrire les étapes de l installation et de la configuration de l outil OpenLDAP sous l OS FreeBSD 4.8 Installation et Configuration

Plus en détail

Service d'authentification LDAP et SSO avec CAS

Service d'authentification LDAP et SSO avec CAS Service d'authentification LDAP et SSO avec CAS Clé de l'extension : ig_ldap_sso_auth 2006-2007, Michaël Gagnon, Ce document est publié sous la licence open source, disponible au

Plus en détail

LINUX Préparation à la certification LPIC-3 (examen LPI 300) - 2ième édition

LINUX Préparation à la certification LPIC-3 (examen LPI 300) - 2ième édition Avant-propos A. Introduction 18 B. Les objectifs 18 C. Contenu du livre 19 Chapitre 1 Les annuaires X.500 et le protocole LDAP A. Généralités sur les annuaires 24 1. Définition des annuaires 24 2. Qu'est-ce

Plus en détail

A. À propos des annuaires

A. À propos des annuaires Chapitre 2 A. À propos des annuaires Nous sommes familiers et habitués à utiliser différents types d'annuaires dans notre vie quotidienne. À titre d'exemple, nous pouvons citer les annuaires téléphoniques

Plus en détail

Installation et configuration de Vulture Lundi 2 février 2009

Installation et configuration de Vulture Lundi 2 février 2009 Installation et configuration de Vulture Lundi 2 février 2009 V1.0 Page 1/15 Tables des matières A. Informations (Page. 3/15) B. Installation (Page. 3/15) 1- Téléchargement des paquets nécessaires. 2-

Plus en détail

Le protocole LDAP. Formation. Administration et sécurité. Auteurs : Clément OUDOT, Raphaël OUAZANA et Sébastien BAHLOUL

Le protocole LDAP. Formation. Administration et sécurité. Auteurs : Clément OUDOT, Raphaël OUAZANA et Sébastien BAHLOUL Formation Administration et sécurité Le protocole LDAP Auteurs : Clément OUDOT, Raphaël OUAZANA et Sébastien BAHLOUL LINAGORA Formation : formation@linagora.com Licence Paternité - Pas d'utilisation Commerciale

Plus en détail

Groupe Eyrolles, 2004 ISBN : 2-212-11504-0

Groupe Eyrolles, 2004 ISBN : 2-212-11504-0 Groupe Eyrolles, 2004 ISBN : 2-212-11504-0 Table des matières Avant-propos................................................ 1 Quel est l objectif de cet ouvrage?............................. 4 La structure

Plus en détail

Conditions générales de vente

Conditions générales de vente Conditions générales de vente Droits SIRC accorde à l'abonné et les utilisateurs autorisés à l'abonné de l'institution d'un droit d'accès à la version électronique de ces revues pour les volumes qui maintient

Plus en détail

Architecture de la plateforme SBC

Architecture de la plateforme SBC Simple Business Connector Architecture de la plateforme SBC Titre Projet Description Architecture de la plateforme SBC Plateforme SBC Ce document reprend toutes les étapes de l'installation du serveur

Plus en détail

Licence ODbL (Open Database Licence) - IdéesLibres.org

Licence ODbL (Open Database Licence) - IdéesLibres.org Licence ODbL (Open Database Licence) - IdéesLibres.org Stipulations liminaires La licence ODbL (Open Database License) est un contrat de licence ayant pour objet d autoriser les utilisateurs à partager,

Plus en détail

LICENCE SNCF OPEN DATA

LICENCE SNCF OPEN DATA LICENCE SNCF OPEN DATA Préambule Dans l intérêt de ses utilisateurs, SNCF a décidé de s engager dans une démarche «OPEN DATA», de partage de certaines informations liées à son activité, par la mise à disposition

Plus en détail

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO) LDAP Mise en place Introduction Limitation et Sécurité Déclarer un serveur MySQL dans l annuaire LDAP Associer un utilisateur DiaClientSQL à son compte Windows (SSO) Créer les collaborateurs DiaClientSQL

Plus en détail

LICENCE SNCF OPEN DATA

LICENCE SNCF OPEN DATA LICENCE SNCF OPEN DATA PREAMBULE Dans l intérêt de ses utilisateurs, la SNCF a décidé de s engager dans une démarche de partage de certaines informations liées à son activité, permettant ainsi aux personnes

Plus en détail

Présentation, mise en place, et administration d'ocs Inventory et de GLPI

Présentation, mise en place, et administration d'ocs Inventory et de GLPI Présentation, mise en place, et administration d'ocs Inventory et de GLPI I Présentation Open Computer and Software Inventory Next Gen II Architecture d'ocs Inventory III Mise en place 1 er méthode avec

Plus en détail

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO) LDAP Mise en place Introduction Limitation et Sécurité Déclarer un serveur MySQL dans l annuaire LDAP Associer un utilisateur DiaClientSQL à son compte Windows (SSO) Créer les collaborateurs DiaClientSQL

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Comment créer vos propres pages web?

Comment créer vos propres pages web? Comment créer vos propres pages web? Vous voulez vous aussi devenir acteur et présenter vos passions et vos envies aux yeux du monde. Présentez-les sur le WEB. Pour cela, il vous suffit de créer vos "pages

Plus en détail

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl 2007 16, 17 novembre, Lyon. Alexis Sukrieh <sukria@sukria.

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl 2007 16, 17 novembre, Lyon. Alexis Sukrieh <sukria@sukria. Perl Console Votre compagnon pour développer en Perl Les Journées du Perl 2007 16, 17 novembre, Lyon Alexis Sukrieh Plan Pourquoi une console? Le modèle «Read-Eval-Print-Loop» Dépendances

Plus en détail

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation Serveur Acronis Backup & Recovery 10 pour Linux Update 5 Guide d'installation Table des matières 1 Avant l'installation...3 1.1 Composants d'acronis Backup & Recovery 10... 3 1.1.1 Agent pour Linux...

Plus en détail

OpenLDAP. Astuces pour en faire l'annuaire d'entreprise idéal THÈME TECHNIQUE - ADMINISTRATION SYSTÈME. Jonathan CLARKE - jcl@normation.

OpenLDAP. Astuces pour en faire l'annuaire d'entreprise idéal THÈME TECHNIQUE - ADMINISTRATION SYSTÈME. Jonathan CLARKE - jcl@normation. THÈME TECHNIQUE - ADMINISTRATION SYSTÈME OpenLDAP Astuces pour en faire l'annuaire d'entreprise idéal Jonathan CLARKE - jcl@ Normation CC-BY-SA Qui suis-je? Jonathan Clarke Job : Co-fondateur et directeur

Plus en détail

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole : www.arcopole.fr

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole : www.arcopole.fr arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole : www.arcopole.fr Auteur du document : ESRI France Version de la documentation : 1.2.0.0 Date de dernière

Plus en détail

Une unité organisationnelle (Staff) comporte une centaine d'utilisateur dans Active Directory.

Une unité organisationnelle (Staff) comporte une centaine d'utilisateur dans Active Directory. Migration de Active Directory vers OpenLDAP Préambule Nous souhaitons mettre en place une gestion centralisée des services réseaux, des ordinateurs, des utilisateurs, des groupes et des droits dans un

Plus en détail

Journée Josy/PLUME. Outils logiciels libres utiles à tout ASR SAMBA. Maurice Libes. Centre d'océanologie de Marseille UMS 2196 CNRS

Journée Josy/PLUME. Outils logiciels libres utiles à tout ASR SAMBA. Maurice Libes. Centre d'océanologie de Marseille UMS 2196 CNRS Journée Josy/PLUME Outils logiciels libres utiles à tout ASR SAMBA Maurice Libes Centre d'océanologie de Marseille UMS 2196 CNRS Plan - Présentation de Samba Contexte d'utilisation Laboratoire Objectifs,

Plus en détail

OpenLDAP, un outil d administration Réseau. Une implémentation d OpenLDAP

OpenLDAP, un outil d administration Réseau. Une implémentation d OpenLDAP OpenLDAP, un outil d administration Réseau Une implémentation d OpenLDAP INRA de Rennes UMR-118 Amélioration des Plantes et Biotechnologies Végétales Présentation : Lightweight Directory Access Protocol

Plus en détail

Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base...

Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base... Système d'exploitation Sommaire Introduction...3 Objectif...3 Manipulations...3 Gestion des utilisateurs et des groupes...4 Introduction...4 Les fichiers de base...4 Quelques commandes d'administration...5

Plus en détail

Synchronisation d'annuaire Active Directory et de base LDAP

Synchronisation d'annuaire Active Directory et de base LDAP Synchronisation d'annuaire Active Directory et de base LDAP Auteur : Jean-Noël Chardron Délégation régionale d'aquitaine-limousin Jean-Noel.Chardron@dr15.cnrs.fr Le 14 avril 2011 Résumé Cet article montre

Plus en détail

Les clients GNU/Linux

Les clients GNU/Linux Les clients GNU/Linux EOLE 2.2 Octobre 2012 V e r s i o n d u d o c u m e n t O c t o b r e 2 0 1 2 D a t e C r é a t i o n j u i n 2 0 1 0 E d i t e u r P ô l e d e c o m p é t e n c e E O L E R é d a

Plus en détail

Mise en place d annuaires LDAP et utilisation dans plusieurs applications

Mise en place d annuaires LDAP et utilisation dans plusieurs applications Mise en place d annuaires LDAP et utilisation dans plusieurs applications Vincent Mathieu, vmathieu{nomine}@univ-nancy2.fr Brigitte Nominé Centre de Ressources Informatiques, Université Nancy 2 CO 75-54037

Plus en détail

LINUX REMPLAÇANT WINDOWS NT

LINUX REMPLAÇANT WINDOWS NT 189 Cette installation fonctionne chez moi à Veyre. Vous pouvez consulter et télécharger les fichiers à : http://perso.wanadoo.fr/gerard.blanchet/ veyre/ Mais c'est tout à fait adapté à un établissement

Plus en détail

TP Service HTTP Serveur Apache Linux Debian

TP Service HTTP Serveur Apache Linux Debian Compte rendu de Raphaël Boublil TP Service HTTP Serveur Apache Linux Debian Tout au long du tp, nous redémarrons le service apache constamment pour que les fi de configuration se remettent à jour - /etc/init.d/apache2

Plus en détail

Méta-annuaire LDAP-NIS-Active Directory

Méta-annuaire LDAP-NIS-Active Directory Auteur : Michel LASTES Co-auteur Bernard MÉRIENNE Date: 15 octobre 03 Méta-annuaire LDAP-NIS-Active Directory LIMSI (Laboratoire d Informatique pour la Mécanique et les Sciences de l Ingénieur) Bât 508

Plus en détail

Restriction sur matériels d impression

Restriction sur matériels d impression Restriction sur matériels d impression Objectif : Restreindre l accès aux matériels multifonctions Description des matériels : Serveur d impression : SVAWAV01 (10.204.1.204) Ricoh Aficio MP C4501 o IP

Plus en détail

Les Imprimantes EOLE 2.3. Documentation sous licence Creative Commons by-nc-sa - EOLE (http ://eole.orion.education.fr) révisé : Janvier 2014

Les Imprimantes EOLE 2.3. Documentation sous licence Creative Commons by-nc-sa - EOLE (http ://eole.orion.education.fr) révisé : Janvier 2014 Les Imprimantes EOLE 2.3 révisé : Janvier 2014 Documentation sous licence Creative Commons by-nc-sa - EOLE (http ://eole.orion.education.fr) V e r s i o n d u d o c u m e n t r é v i s é : J a n v i e

Plus en détail

Les Utilisateurs dans SharePoint

Les Utilisateurs dans SharePoint Les Utilisateurs dans SharePoint La gestion des utilisateurs dans SharePoint SharePoint dont le cœur est l'outil collaboratif, Windows SharePoint Services. Chaque utilisateur (ou collaborateur) peut créer

Plus en détail

WebDAV en 2 minutes. Tous ces objectifs sont complémentaires et ils sont atteints grâce au seul protocole WebDAV. Scénarii

WebDAV en 2 minutes. Tous ces objectifs sont complémentaires et ils sont atteints grâce au seul protocole WebDAV. Scénarii WebDAV en 2 minutes le but affirmé du groupe de travail WebDAV (DAV) est (pour ses concepteurs) de "définir les extensions de HTTP nécessaires pour assurer la disponibilité d'outils WEB de création collective

Plus en détail

Mise en place d'un antivirus centralisé

Mise en place d'un antivirus centralisé Mise en place d'un antivirus centralisé 2.2 Octobre 2012 Version du document Octobre 2012 Date création 25/02/2011 Editeur Pôle de compétence EOLE Rédacteurs Équipe EOLE Licence Cette documentation, rédigée

Plus en détail

Annuaire LDAP + Samba

Annuaire LDAP + Samba Annuaire LDAP + Samba Ce document est de donner les bases nécessaires pour la création d'un annuaire LDAP qui sera utilisé pour l'authentification de comptes UNIX et Samba sur un serveur distant. L'objectif

Plus en détail

Le stockage local de données en HTML5

Le stockage local de données en HTML5 Le stockage local HTML5, pourquoi faire? Dans une optique de réduction des couts de maintenance, de déploiement, beaucoup d'entreprises ont fait le choix de migrer leurs applicatifs (comptables, commerciales,

Plus en détail

DirXML License Auditing Tool version 1.1 - Guide de l'utilisateur

DirXML License Auditing Tool version 1.1 - Guide de l'utilisateur DirXML License Auditing Tool version 1.1 - Guide de l'utilisateur Présentation Installation DirXML License Auditing Tool (DLAT) vous permet de déterminer le nombre de licences DirXML utilisées dans une

Plus en détail

DUT. Vacataire : Alain Vidal - avidal_vac@outlook.fr

DUT. Vacataire : Alain Vidal - avidal_vac@outlook.fr DUT Vacataire : Alain Vidal - avidal_vac@outlook.fr Chapitre 1 Introduction sur les annuaires o Les défis et les avantages métier Chapitre 2 Gestion des identités et des accès TP1 - Installation d'un annuaire

Plus en détail

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB Installation et administration d un serveur web Module 25793 TP A5 (1/2 valeur) Chapitre 14 Mise en place d un serveur ftp Le plus grand

Plus en détail

L'AAA, késako? Bruno Bonfils, <asyd@solaris fr.org>, Novembre 2005. Sous ce terme d'apparence barbare est regroupé l'ensemble des concepts suivants :

L'AAA, késako? Bruno Bonfils, <asyd@solaris fr.org>, Novembre 2005. Sous ce terme d'apparence barbare est regroupé l'ensemble des concepts suivants : Introduction L'AAA, késako? Bruno Bonfils, , Novembre 2005 Sous ce terme d'apparence barbare est regroupé l'ensemble des concepts suivants : Authentication (authentification) Authorization

Plus en détail

Déploiement d'un serveur ENT

Déploiement d'un serveur ENT Déploiement d'un serveur ENT Materiel : Serveur Linux Vmware ( 3Ghz, 8Go RAM ) PC Client Windows ( Installation du système d'exploitation ) PC Client Linux Ubuntu Procédure : J'ai installé Ubuntu Linux

Plus en détail

Titre: Version: Dernière modification: Auteur: Statut: Licence:

Titre: Version: Dernière modification: Auteur: Statut: Licence: Titre: Installation de WebObjects 5.3 Version: 2.1 Dernière modification: 2011/02/17 11:00 Auteur: Aurélien Minet Statut: version finale Licence: Creative Commons

Plus en détail

Conditions Générales d utilisation de l Application «Screen Mania Magazine»

Conditions Générales d utilisation de l Application «Screen Mania Magazine» Conditions Générales d utilisation de l Application «Screen Mania Magazine» Les présentes Conditions Générales d Utilisation régissent l ensemble des différentes utilisations de l APPLICATION tablettes

Plus en détail

COMMUNICATION TECHNIQUE N TCV060 Ed. 01. OmniVista 4760 Nb de pages : 18 Date : 12-07-2005 URGENTE NON URGENTE TEMPORAIRE DEFINITIVE

COMMUNICATION TECHNIQUE N TCV060 Ed. 01. OmniVista 4760 Nb de pages : 18 Date : 12-07-2005 URGENTE NON URGENTE TEMPORAIRE DEFINITIVE COMMUNICATION TECHNIQUE N TCV060 Ed. 01 OmniVista 4760 Nb de pages : 18 Date : 12-07-2005 URGENTE NON URGENTE TEMPORAIRE DEFINITIVE OBJET : GESTION ANNUAIRE Veuillez trouver ci-après une documentation

Plus en détail

Cours 420-KEG-LG, Gestion de réseaux et support technique. Atelier No2 :

Cours 420-KEG-LG, Gestion de réseaux et support technique. Atelier No2 : Atelier No2 : Installation d Active Directory Installation du service DNS Installation du Service WINS Création d'un compte d'ordinateur Jonction d'un ordinateur à un domaine Création d usagers. Étape

Plus en détail

Novell. ifolder. www.novell.com. Lisezmoi

Novell. ifolder. www.novell.com. Lisezmoi Novell ifolder www.novell.com Lisezmoi Notices légales Novell exclut toute garantie relative au contenu ou à l'utilisation de cette documentation. En particulier, Novell ne garantit pas que cette documentation

Plus en détail

Réutilisation d informations publiques provenant des Archives départementales de Saône-et-Loire

Réutilisation d informations publiques provenant des Archives départementales de Saône-et-Loire Réutilisation d informations publiques provenant des Archives départementales de Saône-et-Loire Contrat de licence de type ODbL (Open Database Licence) n.. Entre : Le Département de Saône-et-Loire, représenté

Plus en détail

Windows 8 Installation et configuration

Windows 8 Installation et configuration Editions ENI Windows 8 Installation et configuration Collection Ressources Informatiques Extrait 112 Windows 8 Installation et configuration Pour terminer l'application de l'image, nous devons configurer

Plus en détail

La double authentification dans SharePoint 2007

La double authentification dans SharePoint 2007 La double authentification dans SharePoint 2007 Authentification NT et Forms sur un même site Dans de nombreux cas on souhaite pouvoir ouvrir un accès sur son serveur SharePoint à des partenaires qui ne

Plus en détail

Guide de l'utilisateur

Guide de l'utilisateur BlackBerry Internet Service Version: 4.5.1 Guide de l'utilisateur Publié : 2014-01-08 SWD-20140108170135662 Table des matières 1 Mise en route...7 À propos des formules d'abonnement pour BlackBerry Internet

Plus en détail

WIPO Training of trainers Program on Effective Intellectual Property Asset Management by Small and Medium-Sized Enterprises (SMEs)

WIPO Training of trainers Program on Effective Intellectual Property Asset Management by Small and Medium-Sized Enterprises (SMEs) Creative Expression Benefiting From Your Copyright and Using the Copyright Works of Others in Your Business Edouard Treppoz, Professeur à l Université Jean Moulin Lyon 3 WIPO Training of trainers Program

Plus en détail

Stratégie de groupe dans Active Directory

Stratégie de groupe dans Active Directory Stratégie de groupe dans Active Directory 16 novembre 2012 Dans ce document vous trouverez des informations fondamentales sur les fonctionnements de Active Directory, et de ses fonctionnalités, peut être

Plus en détail

Authentification des utilisateurs avec OpenLDAP et Samba 3.0

Authentification des utilisateurs avec OpenLDAP et Samba 3.0 Authentification des utilisateurs avec OpenLDAP et Samba 3.0 Ce tutoriel développe la mise en place d'un contrôleur de Domaine Principal (PDC) couplet avec un contrôleur de Domaine de Replication (BDC)

Plus en détail

Windows Server 2008. Chapitre 3 : Le service d annuaire Active Directory: Concepts de base

Windows Server 2008. Chapitre 3 : Le service d annuaire Active Directory: Concepts de base Windows Server 2008 Chapitre 3 : Le service d annuaire Active Directory: Concepts de base omar.cheikhrouhou@isetsf.rnu.tn omar.cheikhrouhou@ceslab.org Objectives Comprendre les concepts de base d Active

Plus en détail

Présentation de Active Directory

Présentation de Active Directory Brevet de Technicien Supérieur Informatique de gestion. Benoît HAMET Session 2001 2002 Présentation de Active Directory......... Présentation d Active Directory Préambule...4 Introduction...5 Définitions...5

Plus en détail

CA Desktop Migration Manager

CA Desktop Migration Manager CA Desktop Migration Manager Manuel de configuration du déploiement DMM Service Pack 12.8.01 La présente Documentation, qui inclut des systèmes d'aide et du matériel distribués électroniquement (ci-après

Plus en détail

Structure logique. Active Directory. Forêts Arborescences Domaines Unités d'organisation

Structure logique. Active Directory. Forêts Arborescences Domaines Unités d'organisation Active Directory Structure logique Service d'annuaire Base d'annuaire distribuée des ressources réseau : comptes utilisateurs, groupes, ordinateurs, imprimantes, dossiers partagés,... Administration centralisée

Plus en détail

Conférence technique sur Samba (samedi 6 avril 2006)

Conférence technique sur Samba (samedi 6 avril 2006) Conférence technique sur Samba (samedi 6 avril 2006) Windows dansera la Samba... http://linux azur.org/wiki/wakka.php?wiki=samba Plan Historique de Samba Protocoles SMB/CIFS Installation Serveurs Samba

Plus en détail

BIND : installer un serveur DNS

BIND : installer un serveur DNS BIND : installer un serveur DNS Cet article a pour but de vous présenter comment installer et configurer un serveur DNS en utilisant l'application BIND. Je supposerai que vous disposez d'un réseau local

Plus en détail

PPe jaune. Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP]

PPe jaune. Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP] PPe jaune Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP] Sommaire 1) Architecture réseau... 3 2) Introduction FTP... 4 3) Le rôle du protocole FTP... 4 4) Diagramme

Plus en détail

Sommaire. Etablir une connexion avec une base de données distante sur PostGreSQL

Sommaire. Etablir une connexion avec une base de données distante sur PostGreSQL Sommaire Etablir une connexion avec une base de données distante sur PostGreSQL 1 Connexion avec le module dblink...3 1.1 Création du module dblink... 3 1.2 Exemple de Mise en oeuvre... 4 1.3 Création

Plus en détail

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall Titre Version Date Dernière page Identité du document Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

Plus en détail

Annuaires LDAP et méta-annuaires

Annuaires LDAP et méta-annuaires Annuaires LDAP et méta-annuaires Laurent Mynard Yphise 6 rue Beaubourg - 75004 PARIS yphise@yphise.com - http://yphise.fr T 01 44 59 93 00 F 01 44 59 93 09 LDAP020314-1 Agenda A propos d Yphise Les annuaires

Plus en détail

TAGREROUT Seyf Allah TMRIM

TAGREROUT Seyf Allah TMRIM TAGREROUT Seyf Allah TMRIM Projet Isa server 2006 Installation et configuration d Isa d server 2006 : Installation d Isa Isa server 2006 Activation des Pings Ping NAT Redirection DNS Proxy (cache, visualisation

Plus en détail

Evidian IAM Suite 8.0 Identity Management

Evidian IAM Suite 8.0 Identity Management Evidian IAM Suite 8.0 Identity Management Un livre blanc Evidian Summary Evidian ID synchronization. Evidian User Provisioning. 2013 Evidian Les informations contenues dans ce document reflètent l'opinion

Plus en détail

LISTES DE DISTRIBUTION GÉRÉ PAR SYMPA DOCUMENT EXPLICATIF DE ÉCOLE POLYTECHNIQUE

LISTES DE DISTRIBUTION GÉRÉ PAR SYMPA DOCUMENT EXPLICATIF DE ÉCOLE POLYTECHNIQUE LISTES DE DISTRIBUTION GÉRÉ PAR SYMPA DOCUMENT EXPLICATIF DE L'INTERFACE WEB À L'INTENTION DES GESTIONNAIRES DE LISTES ÉCOLE POLYTECHNIQUE JANVIER 2002 Le présent document est un aide mémoire pour la gestion

Plus en détail

Service d'installation et de démarrage de la solution de stockage réseau HP StoreEasy 1000/3000

Service d'installation et de démarrage de la solution de stockage réseau HP StoreEasy 1000/3000 Service d'installation et de démarrage de la solution de stockage réseau Services HP Données techniques Le service d'installation et de démarrage de la solution de stockage réseau offre l'installation

Plus en détail

Projet Administration Réseaux

Projet Administration Réseaux EL KHATIT Zouhair, L3 ASR N : 20072486 Projet Administration Réseaux Thème : SFTP & SCPOnly I- SFTP (Secure File Transfer Protocol) : Introduction: Le SFTP permet de transférer des fichiers par une connexion

Plus en détail

Mysql. Les requêtes préparées Prepared statements

Mysql. Les requêtes préparées Prepared statements Mysql Les requêtes préparées Prepared statements Introduction Les prepared statements côté serveur sont une des nouvelles fonctionnalités les plus intéressantes de MySQL 4.1 (récemment sorti en production

Plus en détail

SAUVEGARDE COBIAN. LE B.A. BA De La sauvegarde Avec «CobianBackup» ou comment faire des sauvegardes automatiques

SAUVEGARDE COBIAN. LE B.A. BA De La sauvegarde Avec «CobianBackup» ou comment faire des sauvegardes automatiques SAUVEGARDE COBIAN LE B.A. BA De La sauvegarde Avec «CobianBackup» ou comment faire des sauvegardes automatiques Franck CLAIR Animateur T.I.C.E. Thonon-les-Bains http://www.tice.edres74.net LICENCE D'UTILISATION

Plus en détail

Ubuntu Linux Création, configuration et gestion d'un réseau local d'entreprise (3ième édition)

Ubuntu Linux Création, configuration et gestion d'un réseau local d'entreprise (3ième édition) Introduction 1. Introduction 13 2. Le choix de l'ouvrage : Open Source et Linux Ubuntu 13 2.1 Structure du livre 13 2.2 Pré-requis ou niveau de connaissances préalables 13 3. L'objectif : la constitution

Plus en détail

Accès externe aux ressources du serveur pédagogique

Accès externe aux ressources du serveur pédagogique Accès externe aux ressources du serveur pédagogique 1. Principe de fonctionnement... 1 2. Utilisation... 2 2.1. Gestion des dossiers et fichiers... 3 2.2. Exemple d'utilisation... 4 1. Principe de fonctionnement

Plus en détail

Trier les ventes (sales order) avec Vtiger CRM

Trier les ventes (sales order) avec Vtiger CRM Trier les ventes (sales order) avec Vtiger CRM Dans l'activité d'une entreprise, on peut avoir besoin d'un outil pour trier les ventes, ce afin de réaliser un certain nombre de statistiques sur ces ventes,

Plus en détail

CONTRAT DE LICENCE DE REUTILISATION DES INFORMATIONS PUBLIQUES MONTPELLIER AGGLOMERATION EN ACCES LIBRE

CONTRAT DE LICENCE DE REUTILISATION DES INFORMATIONS PUBLIQUES MONTPELLIER AGGLOMERATION EN ACCES LIBRE CONTRAT DE LICENCE DE REUTILISATION DES INFORMATIONS PUBLIQUES MONTPELLIER AGGLOMERATION EN ACCES LIBRE Pour favoriser la création de nouveaux produits et services et contribuer au développement économique,

Plus en détail

Installer un domaine DNS

Installer un domaine DNS Installer un domaine DNS Olivier Hoarau (olivier.hoarau@funix.org) V1.2 du 3.12.00 1 Historique... 2 2 Préambule... 2 3 Présentation... 2 4 Installation et configuration... 3 5 Lancement automatique de

Plus en détail

Gestion d'un parc informatique avec OCS INVENTORY et GLPI

Gestion d'un parc informatique avec OCS INVENTORY et GLPI GSB Gestion d'un parc informatique avec OCS INVENTORY et GLPI Inventaire d'un parc informatique Suite à la multiplication des matériels et des logiciels dans les locaux de GSB, le service Gestion exprime

Plus en détail

Sauvegarder et restaurer les données PMB

Sauvegarder et restaurer les données PMB Fiche technique PMB n 2.9 Sauvegarder et restaurer les données PMB Objectif : Savoir sauvegarder les paramètres, les notices, les exemplaires, les prêts... avec PMB Notez bien : Le documentaliste est responsable

Plus en détail

User Manual Version 3.6 Manuel de l Utilisateur Version 2.0.0.0

User Manual Version 3.6 Manuel de l Utilisateur Version 2.0.0.0 User Manual Version 3.6 Manuel de l Utilisateur Version 2.0.0.0 User Manuel Manual de l Utilisateur I EasyLock Manuel de l Utilisateur Table des Matières 1. Introduction... 1 2. Configuration Requise...

Plus en détail

Protocoles DHCP et DNS

Protocoles DHCP et DNS Protocoles DHCP et DNS DHCP (Dynamic Host Configuration Protocol) est un protocole qui permet à un serveur DHCP (Unix, Windows, AS400...) d'affecter des adresses IP temporaires (et d'autres paramètres)

Plus en détail

Live box et Nas Synology

Live box et Nas Synology Live box et Nas Synology Ce fichier provient du site : https://padipfix.no-ip.info Auteur : nas.phil@gmail.com Création : 18/01/2008 - OpenOffice.org 3.1 Version : 3 Modification : 20/07/2009 Fichier :

Plus en détail

Authentification unifiée Unix/Windows

Authentification unifiée Unix/Windows Rencontres Mathrice - Octobre 2008 Plan Contexte du laboratoire 1 Contexte du laboratoire 2 3 4 Le laboratoire Contexte du laboratoire Laboratoire de Mathématiques et Applications Unité mixte de recherche

Plus en détail

Intégration de Cisco CallManager IVR et Active Directory

Intégration de Cisco CallManager IVR et Active Directory Intégration de Cisco CallManager IVR et Active Directory Contenu Introduction Conditions préalables Conditions requises Composants utilisés Conventions Configurez Diagramme du réseau Configuration de Cisco

Plus en détail

Chapitre 2. Classes et objets

Chapitre 2. Classes et objets Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons

Plus en détail

Contrat d'assistance Technique PyKota entre :

Contrat d'assistance Technique PyKota entre : Conseil Internet & Logiciels Libres Jérôme Alet 48 Avenue Vincent Arnaud 06300 Nice France Téléphone : +33 (0) 493 271 298 Web : http://www.pykota.com Email : alet@librelogiciel.com SIRET : 433 032 570

Plus en détail