Projet

Général

Profil

Tâche #35893

Scénario #35757: Impossible d'ajouter un utilisateur au groupe AD "Domain Admins"

Étude

Ajouté par Benjamin Bohard il y a 14 jours. Mis à jour il y a 5 jours.

Statut:
En cours
Priorité:
Normal
Assigné à:
Début:
01/10/2022
Echéance:
% réalisé:

0%

Restant à faire (heures):

addProfDomainAdmins.py Voir (1,64 ko) Joël Cuissinat, 25/04/2024 17:41

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

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 ?
  • 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

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 ;)

Formats disponibles : Atom PDF