https://dev-eole.ac-dijon.fr/https://dev-eole.ac-dijon.fr/favicon.ico2020-03-04T14:43:56ZEnsemble Ouvert Libre Évolutifeole-saslauthd - Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASLhttps://dev-eole.ac-dijon.fr/issues/29695?journal_id=1419422020-03-04T14:43:56ZJoël Cuissinatjoel.cuissinat@ac-dijon.fr
<ul><li><strong>Lié à</strong> <i><a class="issue tracker-1 status-5 priority-4 priority-default closed" href="/issues/2877">Anomalie #2877</a>: lightsquid : message peu clair</i> ajouté</li></ul> eole-saslauthd - Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASLhttps://dev-eole.ac-dijon.fr/issues/29695?journal_id=1419442020-03-04T14:44:03ZJoël Cuissinatjoel.cuissinat@ac-dijon.fr
<ul><li><strong>Lié à</strong> <i><a class="issue tracker-1 status-5 priority-4 priority-default closed" href="/issues/2877">Anomalie #2877</a>: lightsquid : message peu clair</i> supprimé</li></ul> eole-saslauthd - Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASLhttps://dev-eole.ac-dijon.fr/issues/29695?journal_id=1419462020-03-04T14:44:10ZJoël Cuissinatjoel.cuissinat@ac-dijon.fr
<ul><li><strong>Lié à</strong> <i><a class="issue tracker-5 status-16 priority-4 priority-default closed parent" href="/issues/28777">Scénario #28777</a>: Étudier la délégation d'authentification OpenLDAP (Pass-Trough) avec SASL</i> ajouté</li></ul> eole-saslauthd - Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASLhttps://dev-eole.ac-dijon.fr/issues/29695?journal_id=1426842020-04-04T12:09:32ZJoël Cuissinatjoel.cuissinat@ac-dijon.fr
<ul><li><strong>Description</strong> mis à jour (<a title="Voir les différences" href="/journals/142684/diff?detail_id=196808">diff</a>)</li><li><strong>Echéance</strong> mis à <i>30/04/2020</i></li><li><strong>Version cible</strong> mis à <i>Prestation Cadoles MEN 16-18</i></li><li><strong>Début</strong> mis à <i>14/04/2020</i></li></ul> eole-saslauthd - Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASLhttps://dev-eole.ac-dijon.fr/issues/29695?journal_id=1426852020-04-04T12:12:41ZJoël Cuissinatjoel.cuissinat@ac-dijon.fr
<ul><li><strong>Description</strong> mis à jour (<a title="Voir les différences" href="/journals/142685/diff?detail_id=196812">diff</a>)</li></ul> eole-saslauthd - Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASLhttps://dev-eole.ac-dijon.fr/issues/29695?journal_id=1426862020-04-04T12:16:35ZJoël Cuissinatjoel.cuissinat@ac-dijon.fr
<ul><li><strong>Description</strong> mis à jour (<a title="Voir les différences" href="/journals/142686/diff?detail_id=196813">diff</a>)</li></ul> eole-saslauthd - Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASLhttps://dev-eole.ac-dijon.fr/issues/29695?journal_id=1426872020-04-04T12:19:40ZJoël Cuissinatjoel.cuissinat@ac-dijon.fr
<ul><li><strong>Projet</strong> changé de <i>Distribution EOLE</i> à <i>eole-saslauthd</i></li></ul> eole-saslauthd - Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASLhttps://dev-eole.ac-dijon.fr/issues/29695?journal_id=1426882020-04-04T12:20:02ZJoël Cuissinatjoel.cuissinat@ac-dijon.fr
<ul><li><strong>Description</strong> mis à jour (<a title="Voir les différences" href="/journals/142688/diff?detail_id=196815">diff</a>)</li></ul> eole-saslauthd - Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASLhttps://dev-eole.ac-dijon.fr/issues/29695?journal_id=1427052020-04-06T09:56:16ZJoël Cuissinatjoel.cuissinat@ac-dijon.fr
<ul><li><strong>Points de scénarios</strong> changé de <i>8.0</i> à <i>7.0</i></li></ul> eole-saslauthd - Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASLhttps://dev-eole.ac-dijon.fr/issues/29695?journal_id=1427982020-04-09T13:16:37ZJoël Cuissinatjoel.cuissinat@ac-dijon.fr
<ul><li><strong>Description</strong> mis à jour (<a title="Voir les différences" href="/journals/142798/diff?detail_id=196956">diff</a>)</li></ul> eole-saslauthd - Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASLhttps://dev-eole.ac-dijon.fr/issues/29695?journal_id=1428452020-04-14T07:29:08ZBenjamin Bohardbbohard@cadoles.com
<ul><li><strong>Assigné à</strong> mis à <i>Benjamin Bohard</i></li></ul> eole-saslauthd - Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASLhttps://dev-eole.ac-dijon.fr/issues/29695?journal_id=1430512020-04-16T10:58:11ZJoël Cuissinatjoel.cuissinat@ac-dijon.fr
<ul><li><strong>Lié à</strong> <i><a class="issue tracker-6 status-5 priority-4 priority-default closed child" href="/issues/29930">Tâche #29930</a>: Validation du scénario Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASL</i> ajouté</li></ul> eole-saslauthd - Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASLhttps://dev-eole.ac-dijon.fr/issues/29695?journal_id=1431272020-04-20T13:52:00ZBenjamin Bohardbbohard@cadoles.com
<ul></ul><p>Parmi les éléments de configuration apportés dans le scénario <a class="external" href="https://dev-eole.ac-dijon.fr/issues/28777#note-5">https://dev-eole.ac-dijon.fr/issues/28777#note-5</a>, certains impliquent des choix d’implémentation.</p>
<a name="Configuration-apparmor"></a>
<h2 >Configuration apparmor<a href="#Configuration-apparmor" class="wiki-anchor">¶</a></h2>
<p>Le paquet slapd créé, en postinst, le fichier vide /etc/apparmor.d/local/usr.sbin.slapd. Ce fichier doit être modifié, écrasé, par creole. Le contenu de ce fichier dépendra des options activées. Je vois deux options d’implémentation.</p>
<a name="Inclusion-au-moment-du-templating"></a>
<h3 >Inclusion au moment du templating<a href="#Inclusion-au-moment-du-templating" class="wiki-anchor">¶</a></h3>
<p>Le template apporté par <strong>eole-annuaire</strong> servirait à inclure les fragments apportés par d’autres paquets (en l’occurrence eole-saslauthd) :</p>
<pre>
# local usr.sbin.slapd apparmor configuration generated by creole.
%import os
%import re
%set %%slapd_re = re.compile(r'.*usr\.sbin\.slapd.*')
%set %%confdir = '/etc/eole/apparmor.local.d/'
%set %%files = [f for f in %%os.listdir(%%confdir) if %%slapd_re.match(f)]
%%files.sort()
%for file in %%files
%include raw %%confdir + file
%end for
</pre>
Cela suppose deux choses :
<ul>
<li>création du répertoire accueillant les fragments (vraisemblablement dans le packaging d’eole-server, en ajoutant ce répertoire à eole-server.dirs) ;</li>
<li>chaque paquet apportant un fragment doit se conformer un un nom de fichier spécifique.</li>
</ul>
<a name="Conditions-dinclusion-dans-le-template"></a>
<h3 >Conditions d’inclusion dans le template<a href="#Conditions-dinclusion-dans-le-template" class="wiki-anchor">¶</a></h3>
<p>À chaque ajout de composant, il faut ajouter une condition dans le template apporté par le projet eole-annuaire.</p>
<a name="Compte-utilisé-pour-la-recherche-de-DN-dans-lannuaire"></a>
<h2 >Compte utilisé pour la recherche de DN dans l’annuaire<a href="#Compte-utilisé-pour-la-recherche-de-DN-dans-lannuaire" class="wiki-anchor">¶</a></h2>
<p>Le compte indiqué dans la configuration de saslauthd n’est utilisé que pour faire l’équivalent d’un ldapsearch. Il ne semble pas judicieux d’utiliser le compte Administrator pour cela étant donné la problématique du mot de passe accessible.</p>
<p>Un compte dédié peut être créé et un système de renouvellement automatisé de son mot de passe, à l’instar de ce qui se fait pour les bases de données, pourrait être un plus (le compte est uniquement utilisé localement et on n’a pas d’impératif de propagation comme ça peut être le cas pour les comptes utilisés par veyon et autres utilitaires sur les clients).</p> eole-saslauthd - Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASLhttps://dev-eole.ac-dijon.fr/issues/29695?journal_id=1431452020-04-21T08:46:45ZDaniel Dehennin
<ul></ul><a name="Gestion-du-compte-dauthentification"></a>
<h3 >Gestion du compte d’authentification<a href="#Gestion-du-compte-dauthentification" class="wiki-anchor">¶</a></h3>
<p>Dans le cadre d’utilisation de <strong><code>saslauthd</code></strong> avec <strong><code>LDAP</code></strong>, il serait très intéressant d’avoir un compte dédié.</p>
<p>Une autre option est de configurer <strong><code>saslauthd</code></strong> pour faire une authentification <strong><code>kerberos5</code></strong> et non pas <strong><code>LDAP</code></strong>, dans ce cas, il ne faut que le keytab de la machine.</p>
<p>J’ai testé sur un <strong><code>etb1.scribe</code></strong></p>
<ol>
<li>Installation du paquet<br /><pre>
apt install sasl2-bin
</pre></li>
<li>Configuration du service (contrairement à la méthode <strong><code>LDAP</code></strong> il n’y a pas l’option <strong><code>-r</code></strong>)<br /><pre>
sed -i -e 's,^START=.*,START=yes,' \
-e 's,^MECHANISMS=.*,MECHANISMS="kerberos5",' \
/etc/default/saslauthd
</pre></li>
<li>Forcer la route vers <strong><code>addc.dompedago.etb1.lan</code></strong> car la communication <strong><code>scribe</code></strong> → <strong><code>addc</code></strong> ne fonctionne pas directement<br /><pre>
ip route add $(CreoleGet ad_public_address) via $(CreoleGet ad_address)
</pre></li>
<li>Configurer les méthodes kerberos pour Samba<br /><pre>
sed -i '/security = ADS/a \\tkerberos method = secrets and keytab' /etc/samba/smb.conf
</pre></li>
<li>Extraire le ketab machine<br /><pre>
KRB5_KTNAME=FILE:/etc/krb5.keytab net ads keytab create -P
</pre></li>
<li>Démarrer le service <strong><code>saslauthd</code></strong><br /><pre>
systemctl start saslauthd.service
</pre></li>
<li>Tester l’authentification avec <strong><code>testsaslauthd</code></strong><br /><pre>
testsaslauthd -u admin@DOMPEDAGO.ETB1.LAN -p eole
0: OK "Success."
</pre></li>
<li>Adapter la configuration OpenLDAP
<ol>
<li>Configuration SASL<br /><pre>
cat > /etc/ldap/sasl2/slapd.conf <<EOF
pwcheck_method: saslauthd
saslauthd_path: /var/run/saslauthd/mux
EOF
</pre></li>
<li>L’utilisateur <strong><code>openldap</code></strong> doit faire partie du groupe <strong><code>sasl</code></strong><br /><pre>
adduser openldap sasl
</pre></li>
<li>Configurer apparmor pour l’accès <strong><code>slapd</code></strong> au socket <strong><code>saslauthd</code></strong><br /><pre>
cat > /etc/apparmor.d/local/usr.sbin.slapd <<EOF
/{,var/}run/saslauthd/mux rw,
EOF
</pre></li>
<li>Redémarrer le service <strong><code>apparmor</code></strong><br /><pre>
systemctl restart apparmor.service
</pre> </li>
<li>Redémarrer le service <strong><code>slapd</code></strong><br /><pre>
systemctl restart slapd.service
</pre></li>
<li>Modifier le mot de passe du compte <strong><code>admin</code></strong> (attention, les majuscules pour le <strong><code>REALM</code></strong> sont indispensables)<br /><pre>
cat > admin.ldif <<EOF
dn: uid=admin,ou=local,ou=personnels,ou=utilisateurs,ou=00000001,ou=ac-test,ou=education,o=gouv,c=fr
changetype: modify
replace: userPassword
userPassword: {SASL}admin@DOMPEDAGO.ETB1.LAN
-
EOF
</pre></li>
<li>Tester l’authentification en affichant le champs mot de passe<br /><pre>
ldapsearch -LLL -x -D uid=admin,ou=local,ou=personnels,ou=utilisateurs,ou=00000001,ou=ac-test,ou=education,o=gouv,c=fr -w eole '(uid=admin)' userPassword | awk '/^userPassword/ {print $2}' | base64 -d; echo
</pre></li>
</ol></li>
</ol>
<a name="Conclusion-personnelle"></a>
<h3 >Conclusion personnelle<a href="#Conclusion-personnelle" class="wiki-anchor">¶</a></h3>
<ul>
<li>La délégation SASL par kerberos me semble plus facile à gérer pour les machines membres du domaine Active Directory grâce à l’utilisation du keytab de la machine</li>
<li>Il faut ajouter un script <strong><code>postservice</code></strong> pour tenir le fichier <strong><code>/etc/krb5.keytab</code></strong> à jour</li>
<li>Pour Scribe, en plus de la configuration spécifique SASL, il faut :
<ul>
<li>Forcer la route vers le conteneur <strong><code>addc</code></strong> pour passer par le bridge (la commande <strong><code>net ads keytab create</code></strong> fait une résolution DNS et ne tient pas compte de <strong><code>/etc/hosts</code></strong>)</li>
</ul></li>
</ul> eole-saslauthd - Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASLhttps://dev-eole.ac-dijon.fr/issues/29695?journal_id=1437032020-05-07T09:35:28ZJoël Cuissinatjoel.cuissinat@ac-dijon.fr
<ul><li><strong>Précède</strong> <i><a class="issue tracker-5 status-16 priority-4 priority-default closed parent" href="/issues/30079">Scénario #30079</a>: Affiner la mise en place de la délégation d'authentification sur Scribe 2.8.0</i> ajouté</li></ul> eole-saslauthd - Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASLhttps://dev-eole.ac-dijon.fr/issues/29695?journal_id=1437822020-05-13T10:36:47ZJoël Cuissinatjoel.cuissinat@ac-dijon.fr
<ul></ul><p>=> les éléments laissés en suspend sont repris dans le nouveau scénario : <a class="issue tracker-5 status-16 priority-4 priority-default closed parent" title="Scénario: Implémenter la délégation d'authentification sur Scribe 2.8.0 avec un AD distant (Terminé (Sprint))" href="https://dev-eole.ac-dijon.fr/issues/30106">#30106</a></p> eole-saslauthd - Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASLhttps://dev-eole.ac-dijon.fr/issues/29695?journal_id=1437832020-05-13T10:37:05ZJoël Cuissinatjoel.cuissinat@ac-dijon.fr
<ul><li><strong>Lié à</strong> <i><a class="issue tracker-5 status-16 priority-4 priority-default closed parent" href="/issues/30106">Scénario #30106</a>: Implémenter la délégation d'authentification sur Scribe 2.8.0 avec un AD distant</i> ajouté</li></ul> eole-saslauthd - Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASLhttps://dev-eole.ac-dijon.fr/issues/29695?journal_id=1437852020-05-13T10:37:16ZJoël Cuissinatjoel.cuissinat@ac-dijon.fr
<ul><li><strong>Statut</strong> changé de <i>Nouveau</i> à <i>Terminé (Sprint)</i></li></ul> eole-saslauthd - Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASLhttps://dev-eole.ac-dijon.fr/issues/29695?journal_id=1441822020-05-26T08:15:53ZDaniel Dehennin
<ul><li><strong>Lié à</strong> <i><a class="issue tracker-5 status-16 priority-4 priority-default closed" href="/issues/30168">Scénario #30168</a>: Gérer les comptes de service samba et leurs mots de passe Automatiquement</i> ajouté</li></ul> eole-saslauthd - Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASLhttps://dev-eole.ac-dijon.fr/issues/29695?journal_id=1499852020-12-01T09:48:18ZDaniel Dehennin
<ul><li><strong>Lié à</strong> <i><a class="issue tracker-5 status-17 priority-4 priority-default closed parent" href="/issues/31221">Scénario #31221</a>: Implémenter le changement de mot de passe dans LemonLDAP::NG</i> ajouté</li></ul>