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 3 mois. Mis à jour il y a 25 jours.

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

100%

Restant à faire (heures):
0.0

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

Historique

#1 Mis à jour par Benjamin Bohard il y a 3 mois

  • Statut changé de Nouveau à En cours

#2 Mis à jour par Benjamin Bohard il y a 3 mois

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 3 mois

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 3 mois

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 3 mois

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 2 mois

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

#7 Mis à jour par Benjamin Bohard il y a environ un mois

Concernant l’attribut LastUpdate, il n’est pas présent dans les entrées des groupes "système" : DomainAdmins, DomainUsers, DomainComputers, PrintOperators (liste extraite d’un OpenLDAP sur un Scribe 2.8.1 avec import).

Il semble correct de traiter différemment seulement ces groupes en n’effectuant pas l’étape de mise à jour du champ.

#8 Mis à jour par Benjamin Bohard il y a environ un mois

  • Statut changé de En cours à À valider

#9 Mis à jour par Laurent Gourvenec il y a 26 jours

  • Statut changé de À valider à Résolu
  • % réalisé changé de 0 à 100

#10 Mis à jour par Joël Cuissinat il y a 26 jours

  • Statut changé de Résolu à Fermé
  • Restant à faire (heures) mis à 0.0

Formats disponibles : Atom PDF