Tâche #35893
Scénario #35757: Impossible d'ajouter un utilisateur au groupe AD "Domain Admins"
Étude
0%
Historique
#1 Mis à jour par Benjamin Bohard il y a 14 jours
- Statut changé de Nouveau à En cours
#2 Mis à jour par Benjamin Bohard il y a 14 jours
Erreur déclenchée lorsqu’on valide l’ajout au groupe Domain Admins dans l’EAD.
avril 16 08:48:20 scribe ead-server[638]: Traceback (most recent call last): avril 16 08:48:20 scribe ead-server[638]: File "/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 321, in addCallback avril 16 08:48:20 scribe ead-server[638]: return self.addCallbacks(callback, callbackArgs=args, avril 16 08:48:20 scribe ead-server[638]: File "/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 311, in addCallbacks avril 16 08:48:20 scribe ead-server[638]: self._runCallbacks() avril 16 08:48:20 scribe ead-server[638]: File "/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 654, in _runCallbacks avril 16 08:48:20 scribe ead-server[638]: current.result = callback(current.result, *args, **kw) avril 16 08:48:20 scribe ead-server[638]: File "/usr/share/ead2/backend/lib/execute_wrapper.py", line 18, in wrapper avril 16 08:48:20 scribe ead-server[638]: return func(self) avril 16 08:48:20 scribe ead-server[638]: --- <exception caught here> --- avril 16 08:48:20 scribe ead-server[638]: File "/usr/share/ead2/backend/actions/scribe/usermodify.py", line 84, in execute avril 16 08:48:20 scribe ead-server[638]: datas = self._valid_form() avril 16 08:48:20 scribe ead-server[638]: File "/usr/share/ead2/backend/actions/scribe/usermodify.py", line 680, in _valid_form avril 16 08:48:20 scribe ead-server[638]: return self._modify_teacher() avril 16 08:48:20 scribe ead-server[638]: File "/usr/share/ead2/backend/actions/scribe/usermodify.py", line 730, in _modify_teacher avril 16 08:48:20 scribe ead-server[638]: manage_groups(self.user, 'Administrateurs', ldapgroup, avril 16 08:48:20 scribe ead-server[638]: File "/usr/share/ead2/backend/actions/scribe/tool/user.py", line 138, in manage_groups avril 16 08:48:20 scribe ead-server[638]: set_groups(user, list(inscription), list(desinscription)) avril 16 08:48:20 scribe ead-server[638]: File "/usr/share/ead2/backend/actions/scribe/tool/user.py", line 103, in set_groups avril 16 08:48:20 scribe ead-server[638]: ldapuser._inscription(user, grp, sync=False) avril 16 08:48:20 scribe ead-server[638]: File "/usr/lib/python3/dist-packages/scribe/eoleuser.py", line 390, in _inscription avril 16 08:48:20 scribe ead-server[638]: grp._touch(groupe) avril 16 08:48:20 scribe ead-server[638]: File "/usr/lib/python3/dist-packages/scribe/eolegroup.py", line 467, in _touch avril 16 08:48:20 scribe ead-server[638]: self._set_attr(name, 'LastUpdate', format_current_date()) avril 16 08:48:20 scribe ead-server[638]: File "/usr/lib/python3/dist-packages/scribe/eolegroup.py", line 461, in _set_attr avril 16 08:48:20 scribe ead-server[638]: self.ldap_admin._modify(group_dn, data) avril 16 08:48:20 scribe ead-server[638]: File "/usr/lib/python3/dist-packages/scribe/eoleldap.py", line 548, in _modify avril 16 08:48:20 scribe ead-server[638]: self.connexion.modify_s(dn, self._manage_data(data)) avril 16 08:48:20 scribe ead-server[638]: File "/usr/lib/python3/dist-packages/ldap/ldapobject.py", line 631, in modify_s avril 16 08:48:20 scribe ead-server[638]: return self.modify_ext_s(dn,modlist,None,None) avril 16 08:48:20 scribe ead-server[638]: File "/usr/lib/python3/dist-packages/ldap/ldapobject.py", line 604, in modify_ext_s avril 16 08:48:20 scribe ead-server[638]: resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout) avril 16 08:48:20 scribe ead-server[638]: File "/usr/lib/python3/dist-packages/ldap/ldapobject.py", line 748, in result3 avril 16 08:48:20 scribe ead-server[638]: resp_type, resp_data, resp_msgid, decoded_resp_ctrls, retoid, retval = self.result4( avril 16 08:48:20 scribe ead-server[638]: File "/usr/lib/python3/dist-packages/ldap/ldapobject.py", line 758, in result4 avril 16 08:48:20 scribe ead-server[638]: ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop) avril 16 08:48:20 scribe ead-server[638]: File "/usr/lib/python3/dist-packages/ldap/ldapobject.py", line 331, in _ldap_call avril 16 08:48:20 scribe ead-server[638]: reraise(exc_type, exc_value, exc_traceback) avril 16 08:48:20 scribe ead-server[638]: File "/usr/lib/python3/dist-packages/ldap/compat.py", line 44, in reraise avril 16 08:48:20 scribe ead-server[638]: raise exc_value avril 16 08:48:20 scribe ead-server[638]: File "/usr/lib/python3/dist-packages/ldap/ldapobject.py", line 315, in _ldap_call avril 16 08:48:20 scribe ead-server[638]: result = func(*args,**kwargs) avril 16 08:48:20 scribe ead-server[638]: ldap.OBJECT_CLASS_VIOLATION: {'desc': 'Object class violation', 'info': "attribute 'LastUpdate' not allowed"}
#3 Mis à jour par Benjamin Bohard il y a 14 jours
Le test squash SCRIBE-T02-003 (création manuelle d’un compte enseignant) semble un bon endroit pour ajouter un pas d’ajout à un groupe spécial.
#4 Mis à jour par Benjamin Bohard il y a 14 jours
En commentant la section du code qui fait la mise a jour du champ lastUpdate, l’utilisateur est bien ajouté au group DomainAdmins dans le LDAP. Par contre, ce groupe ne semble pas synchronisé avec le groupe Domain Admins de l’AD via LSC.
#5 Mis à jour par Benjamin Bohard il y a 14 jours
- y a-t-il correspondance entre le groupe LDAP DomainAdmins et le groupe AD Domain Admins ?
- faut-il créer un nouveau groupe sur l’AD pour propager des droits de gestion aux membres du groupe LDAP DomainAdmins ?
- l’appartenance au groupe LDAP DomainAdmins est-il suffisant (sans propagation dans l’AD) pour accomplir les tâches de gestion attendues ?
#6 Mis à jour par Joël Cuissinat il y a 5 jours
- Fichier addProfDomainAdmins.py Voir ajouté
Il semble nécessaire de refaire le point sur les droits que l’on souhaite attribuer aux utilisateurs associés au groupe LDAP DomainAdmins pour répondre aux questions suivantes :
- y a-t-il correspondance entre le groupe LDAP DomainAdmins et le groupe AD Domain Admins ? → non
- faut-il créer un nouveau groupe sur l’AD pour propager des droits de gestion aux membres du groupe LDAP DomainAdmins ? → pas forcément (même si ce serait plus propre)
- l’appartenance au groupe LDAP DomainAdmins est-il suffisant (sans propagation dans l’AD) pour accomplir les tâches de gestion attendues ? → non
Dans le cadre de ScribeAD, pour les groupes spéciaux, je crois que le plus simple serait de traiter directement et uniquement avec l'AD.
Je joins un petit exemple de code que j'ai sous le coude si ça peut aider ;)