Scénario #37632
Mis à jour par Joël Cuissinat il y a 14 jours
Bonjour,
Le mode anonyme du LDAP a été supprimé, le zephir a besoin de se connecter avec un compte lecture seule au ldap.
Proposition de modification :
Dans le genconfig :
Création des variables :
* ldap_reader_password
* ldap_reader_anonyme (oui/non)
<pre>
<variable name='ldap_reader_anonyme' type='oui/non' description="LDAP en mode anonyme">
<value>non</value>
</variable>
<variable name='ldap_reader_password' type='password' description='Mot de passe de l utilisateur de lecture des comptes LDAP'/>
</pre>
/usr/lib/python3/dist-packages/zephir/config.py
après la ligne ADRESSE_LDAP (ligne 122), ajout de :
<pre>
LDAP_READER = conf.get_creole("ldap_reader")
LDAP_READER_PASSWORD = conf.get_creole("ldap_reader_password")
LDAP_READER_ANONYME = conf.get_creole("ldap_reader_anonyme")
</pre>
Service Zephir-web
fichier : /usr/lib/python3/dist-packages/zephir/web/template/page.py
Ajout après le result=query.search_s ligne 108
<pre>
if config.LDAP_READER_ANONYME == "oui":
query.simple_bind_s(config.LDAP_READER, config.LDAP_READER_PASSWORD)
</pre>
Service Zephir (backend)
fichier : /usr/lib/python3/dist-packages/zephir/backend/xmlrpceole.py
Ajout après le result=query.search_s ligne 106
<pre>
if config.LDAP_READER_ANONYME == "oui":
query.simple_bind_s(config.LDAP_READER, config.LDAP_READER_PASSWORD)
</pre>
---
---
Des éléments permettant de déclarer un compte reader avaient notamment été ajoutés dans project:eole-annuaire dans le cadre d'Envole (cf. #10498) mais l'utilisation de tels éléments n'a jamais été codée sur Zéphir : https://eole.ac-dijon.fr/documentations/2.10/completes/HTML/ModuleZephir/co/03-annuaire_1.html#ycN60
L'utilisation d'un fichier pour stocker le mot de passe pose un soucis de droits (les services Zéphir tournent en nobody).
À voir si on peut conserver ce mode de fonctionnement (lecture avant le "su", gain de droits au moment de la lecture, déplacement/copie du fichier avec des droits adaptés...) ou si on utilise une variable "password" comme proposé ou encore une autre solution...
Voir avec les utilisateurs mais, je verrai plutôt Zéphir >= 2.9.0
+ Prévoir une maj de la doc
Pour tester, on peut utiliser un Scribe comme dans le test squash "ZE-T09-001 - Utiliser Zéphir avec un annuaire distant" mais en passant la variable "Utilisateur autorisé à accéder à distance au serveur LDAP" (ldap_restrict_access) à "authentifié", cf. https://eole.ac-dijon.fr/documentations/2.10/completes/HTML/ModuleScribe/co/23-configurationServeurLDAP.html
Le mode anonyme du LDAP a été supprimé, le zephir a besoin de se connecter avec un compte lecture seule au ldap.
Proposition de modification :
Dans le genconfig :
Création des variables :
* ldap_reader_password
* ldap_reader_anonyme (oui/non)
<pre>
<variable name='ldap_reader_anonyme' type='oui/non' description="LDAP en mode anonyme">
<value>non</value>
</variable>
<variable name='ldap_reader_password' type='password' description='Mot de passe de l utilisateur de lecture des comptes LDAP'/>
</pre>
/usr/lib/python3/dist-packages/zephir/config.py
après la ligne ADRESSE_LDAP (ligne 122), ajout de :
<pre>
LDAP_READER = conf.get_creole("ldap_reader")
LDAP_READER_PASSWORD = conf.get_creole("ldap_reader_password")
LDAP_READER_ANONYME = conf.get_creole("ldap_reader_anonyme")
</pre>
Service Zephir-web
fichier : /usr/lib/python3/dist-packages/zephir/web/template/page.py
Ajout après le result=query.search_s ligne 108
<pre>
if config.LDAP_READER_ANONYME == "oui":
query.simple_bind_s(config.LDAP_READER, config.LDAP_READER_PASSWORD)
</pre>
Service Zephir (backend)
fichier : /usr/lib/python3/dist-packages/zephir/backend/xmlrpceole.py
Ajout après le result=query.search_s ligne 106
<pre>
if config.LDAP_READER_ANONYME == "oui":
query.simple_bind_s(config.LDAP_READER, config.LDAP_READER_PASSWORD)
</pre>
---
---
Des éléments permettant de déclarer un compte reader avaient notamment été ajoutés dans project:eole-annuaire dans le cadre d'Envole (cf. #10498) mais l'utilisation de tels éléments n'a jamais été codée sur Zéphir : https://eole.ac-dijon.fr/documentations/2.10/completes/HTML/ModuleZephir/co/03-annuaire_1.html#ycN60
L'utilisation d'un fichier pour stocker le mot de passe pose un soucis de droits (les services Zéphir tournent en nobody).
À voir si on peut conserver ce mode de fonctionnement (lecture avant le "su", gain de droits au moment de la lecture, déplacement/copie du fichier avec des droits adaptés...) ou si on utilise une variable "password" comme proposé ou encore une autre solution...
Voir avec les utilisateurs mais, je verrai plutôt Zéphir >= 2.9.0
+ Prévoir une maj de la doc
Pour tester, on peut utiliser un Scribe comme dans le test squash "ZE-T09-001 - Utiliser Zéphir avec un annuaire distant" mais en passant la variable "Utilisateur autorisé à accéder à distance au serveur LDAP" (ldap_restrict_access) à "authentifié", cf. https://eole.ac-dijon.fr/documentations/2.10/completes/HTML/ModuleScribe/co/23-configurationServeurLDAP.html