<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hyperthèse &#187; openLdap</title>
	<atom:link href="http://hyperthese.net/category/linux/serveurs/openldap/feed/" rel="self" type="application/rss+xml" />
	<link>http://hyperthese.net</link>
	<description>La connaissance supposée fausse</description>
	<lastBuildDate>Mon, 14 Jun 2010 17:32:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Installer LDAP</title>
		<link>http://hyperthese.net/installer-ldap/</link>
		<comments>http://hyperthese.net/installer-ldap/#comments</comments>
		<pubDate>Thu, 01 Nov 2007 18:34:36 +0000</pubDate>
		<dc:creator>Rémy Sanchez</dc:creator>
				<category><![CDATA[Serveurs]]></category>
		<category><![CDATA[openLdap]]></category>

		<guid isPermaLink="false">http://hyperthese.net/installer-ldap/</guid>
		<description><![CDATA[Comme c&#8217;est la deuxième fois que je dois travailler avec LDAP et que c&#8217;est aussi la deuxième fois que je galère pour l&#8217;installer, je vais faire ici un petit tuto qui explique comment mettre en place un serveur LDAP valide.
Pour commencer, une  petite intro sur LDAP : les serveurs LDAP sont des serveurs d&#8217;annuaire, [...]]]></description>
			<content:encoded><![CDATA[<p>Comme c&#8217;est la deuxième fois que je dois travailler avec LDAP et que c&#8217;est aussi la deuxième fois que je galère pour l&#8217;installer, je vais faire ici un petit tuto qui explique comment mettre en place un serveur LDAP valide.</p>
<p>Pour commencer, une  petite intro sur LDAP : les serveurs LDAP sont des serveurs d&#8217;annuaire, c&#8217;est à dire qu&#8217;ils ont une base de données contenant divers objets stockés de manière hiérarchique et ayant diverses propriétés : par exemple une société peut stocker les comptes informatiques de ses utilisateurs en les plaçant dans des &#8220;dossiers&#8221; correspondants aux divisions de la société (par exemple France -> Toulouse -> Département informatique). Chaque compte utilisateur contient le nom d&#8217;utilisateur, le nom complet, le mot de passe, l&#8217;addresse mail, le numéro de téléphone, etc de chaque utilisateur. On peut faire de même pour stocker les imprimantes, les terminaux  ou n&#8217;importe quel objet pour lequel il existe une classe (pour chaque type d&#8217;objet on créé une classe qui contient la liste des propriétés qu&#8217;on peut lui attribuer).</p>
<p>Maintenant passons à la pratique. Les explications sont faites pour ubuntu gutsy gibbon, mais ça devrai marcher à peu près pareil sous debian.</p>
<p>La première étape est d&#8217;installer le serveur et les outils d&#8217;administrations. Dans un premier lieu, on installe le paquet <em>slapd</em> qui contient le serveur <a href="http://hyperthese.net/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5vcGVubGRhcC5vcmcv">OpenLDAP</a>, ainsi que <em>ldap-utils</em> qui contient un certain nombre d&#8217;outils d&#8217;administration en ligne de commande et finalement le paquet <em>db4.2-util</em> qui contient les outils permetant de manipuler les fichiers de base de données.</p>
<pre>aptitude install slapd ldap-utils db4.2util</pre>
<p>Pendant l&#8217;installation de slapd, il va vous être demandé de rentrer le mot de passe administrateur. Vous pouvez rentrer n&#8217;importe quel mot de passe, nous allons le changer par la suite.</p>
<p>Un autre outil qu&#8217;il peut être intéressant d&#8217;installer et que nous utiliseront par la suite est <a href="http://hyperthese.net/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3BocGxkYXBhZG1pbi5zb3VyY2Vmb3JnZS5uZXQv">phpLDAPadmin</a>, qui est un outil d&#8217;administration web de LDAP plutôt puissant (en fait il s&#8217;agit du meilleur outil disponible).</p>
<p>Maintenant que slapd est installé, on va le configurer un peu. Tout d&#8217;abord, il faut éteindre le serveur :</p>
<pre>/etc/init.d/slapd stop</pre>
<p>Et on va commencer par calculer le hash du nouveau mot de passe administrateur :</p>
<pre>slappasswd -h {SHA}</pre>
<p>Il vous est demandé le mot de passe que vous voulez hasher, puis une deuxième fois pour confirmation, et finalement le hash est affiché. Il devrai ressembler à quelquechose comme ça : <em>{SHA}uFjLKCYX+wlW2WAhXI6E0cz5CcY=</em><br />
Gardez cette valeur bien au chaud dans votre presse papier, on va s&#8217;en resservir tout de suite.</p>
<p>Il est temps d&#8217;éditer le fichier de configuration, <em>/etc/ldap/slapd.conf</em><br />
Cherchez ce passage :</p>
<pre># The base of your directory in database #1
suffix          "dc=nodomain"</pre>
<p>Il s&#8217;agit de la configuration de la base de votre serveur. Il s&#8217;agit du/des éléments les plus haut dans la hiérarchie. Habituellement on y met son nom de domaine. Par exemple pour hyperthese.net on mettra <em>dc=hyperthese,dc=net</em><br />
Bien qu&#8217;il soit conseillé de mettre un vrai domaine, ça n&#8217;a pas vraiment d&#8217;importance dans le cadre d&#8217;un petit serveur comme il sera probablement le cas poru vous, donc sentez vous libre de mettre ce que vous voulez si vous n&#8217;avez pas de domaine (attention tout de même à respecter la syntaxe&#8230;)</p>
<p>Une fois que ceci est changé, il faut rechercher dans le fichier de configuration toutes les occurences de <em>dc=nodomain</em> pour les remplacer par la nouvelle base que vous avez défini. Ceci étant fait, on peut changer le mot de passe administrateur. Il faut pour cela s&#8217;en prendre à la ligne (attention vu que vous avez remplacé toutes les occurences de dc=nodomain votre ligne sera différente&#8230;)</p>
<pre># rootdn          "cn=admin,dc=nodomain"</pre>
<p>Vous devez la décommanter et lui ajouter une copine de cette manière :</p>
<pre>rootdn          "cn=admin,dc=nodomain"
rootpw LE_HASH_DE_TOUT_A_L_HEURE</pre>
<p>Par exemple dans mon cas ça va donner</p>
<pre>rootdn          "cn=admin,dc=hyperthese,dc=net"
rootpw		{SHA}uFjLKCYX+wlW2WAhXI6E0cz5CcY=</pre>
<p>Maintenant que ceci est fait, on va enregistrer le fichier et vider la base de données que l&#8217;installateur a créé automatiquement :</p>
<pre>rm -rf /var/lib/ldap/*</pre>
<p>Et pour finir, on démarre le serveur</p>
<pre>/etc/init.d/slapd start</pre>
<p>Nous avons normalement un serveur LDAP fonctionnel maintenant. Vous pouvez tester la connexion au serveur avec par exemple la commande</p>
<pre>ldapsearch -x -D "cn=admin,dc=hyperthese,dc=net" -W</pre>
<p>Il ne reste plus qu&#8217;à configurer phpLDAPadmin. Il suffit d&#8217;ouvrir le fichier /etc/phpldapadmin/config.php et de chercher la ligne</p>
<pre>$ldapservers->SetValue($i,'server','base',array('dc=nodomain'));</pre>
<p>Pour ensuite la remplacer, celon la configuration que vous avez rentré précédament, par</p>
<pre>$ldapservers->SetValue($i,'server','base',array('dc=hyperthese,dc=net'));</pre>
<p>Et vous pourrez normalement accéder à l&#8217;administration de votre serveur ldap à l&#8217;addresse <a href="http://hyperthese.net/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2xvY2FsaG9zdC9waHBsZGFwYWRtaW4v">http://localhost/phpldapadmin/</a>.</p>
<p>Et voila, il ne reste plus qu&#8217;à remplir tout ça !</p>
 <img src="http://hyperthese.net/wp-content/plugins/feed-statistics.php?view=1&#038;post_id=85" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://hyperthese.net/installer-ldap/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Authentification LDAP avec Apache</title>
		<link>http://hyperthese.net/authentification-ldap-avec-apache/</link>
		<comments>http://hyperthese.net/authentification-ldap-avec-apache/#comments</comments>
		<pubDate>Sun, 14 Jan 2007 22:37:22 +0000</pubDate>
		<dc:creator>Rémy Sanchez</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[openLdap]]></category>

		<guid isPermaLink="false">http://remy.is-a-geek.org/authentification-ldap-avec-apache/</guid>
		<description><![CDATA[Je me suis retrouvé dans la nécessité de configurer un serveur Apache 2.2 (sous debian) pour qu&#8217;il puisse puiser sa liste d&#8217;utilisateurs dans un serveur LDAP, que j&#8217;utilise aussi pour authentifier mes utilisateurs FTP, SSH, Jabber, etc, et donc j&#8217;utilise des objectClass faites pour PAM (ce qui est le cas de la plupart des serveurs [...]]]></description>
			<content:encoded><![CDATA[<p>Je me suis retrouvé dans la nécessité de configurer un serveur Apache 2.2 (sous debian) pour qu&#8217;il puisse puiser sa liste d&#8217;utilisateurs dans un serveur LDAP, que j&#8217;utilise aussi pour authentifier mes utilisateurs FTP, SSH, Jabber, etc, et donc j&#8217;utilise des objectClass faites pour PAM (ce qui est le cas de la plupart des serveurs LDAP je pense&#8230;).<br />
Donc me voici dans une section <b>&lt;Directory&gt;</b>, je configure maintenant Apache pour authentifier les utilisateurs à l&#8217;aide de LDAP.</p>
<pre>## On donne l'url du serveur LDAP. Syntaxe : ldap://serveur:port/base_dn?attribu_a_verrifier?profondeur_de_recherche?filtre_de_recherche
AuthLDAPURL ldap://localhost/dc=thegreatspirit,dc=net?uid?sub?(objectClass=*)
## On spécifie à Apache que l'attribu qui contient le nom d'utilisateur est "memberUid"
AuthLDAPGroupAttribute memberUid
## Et on spécifie aussi que c'est le uid qui est stocké, au lieu que ce soit le DN complet
AuthLDAPGroupAttributeIsDN off

## Maintenant on lance une fenêtre d'authentification
AuthType basic
## Nom de la fenêtre d'authentification
AuthName "Restrited LDAP-protected area"
## On indique à Apache de regarder dans LDAP pour la liste des utilisateurs
AuthBasicProvider ldap

#On veut un utilisateur qui provient du groupe dont le DN est cn=svnUser,ou=SVN,ou=ACL,ou=Groups,dc=thegreatspirit,dc=net
Require ldap-group cn=svnUser,ou=SVN,ou=ACL,ou=Groups,dc=thegreatspirit,dc=net

## On aurai aussi pu tenter :
## Une liste d'utilisateurs
  # Require ldap-user user1 user2 etc
## Une liste de DNs
  # Require ldap-dn DN1 DN2 etc
## N'importe quel DN avec certains attribus
  # Require ldap-attribute attribut="valueur" attribut="valeur" etc
## Ou si le DN passe à travers ce filtre
  # Require ldap-filter (filtre ldap)</pre>
<p>Si on avait voulu que n&#8217;importe quel utilisateur qui a réussi à faire un bind correct puisse se connecter, il faut d&#8217;abord que <strong>mod_authz_user</strong> soit chargé, et que l&#8217;option <strong>AuthzLDAPAuthoritative</strong> soit à off. Ainsi on peut remplacer le require de la configuration précédente par</p>
<pre>AuthzLDAPAuthoritative off
Require valid-user</pre>
<p>Bien sûr, les noms d&#8217;utilisateurs, DN etc peuvent être entré comme n&#8217;importe quel chaine en argument dans un fichier de apache : c&#8217;est à dire qu&#8217;on peut les mettre comme sans rien, ou si on a besoin de délimiter la chaîne on peut la mettre entre guillemets.<br />
Et ausis, Apache n&#8217;a pas besoin de pouvoir voir les mots de passes sur LDAP, puisque quand un nom d&#8217;utilisateur sera rentré il tentera un bind avec.</p>
 <img src="http://hyperthese.net/wp-content/plugins/feed-statistics.php?view=1&#038;post_id=18" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://hyperthese.net/authentification-ldap-avec-apache/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
