IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Pb Ajout user dans active directory


Sujet :

Python

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 76
    Points : 52
    Points
    52
    Par défaut Pb Ajout user dans active directory
    Bonjour,
    Donc voila, lorsque j'essai d'ajouter un nouvel utilisateur dans l'active directory avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    import ldap
    import ldap.modlist as modlist
     
    l = ldap.initialize("ldaps://server.domaine:636/")
     
    l.simple_bind_s("cn=Users,dc=domaine,dc=com")
     
    dn="cn=Users,dc=domaine,dc=com" 
     
    attrs = {}
    attrs['objectclass'] = ['top','organizationalRole','simpleSecurityObject']
    attrs['cn'] = 'MonUser'
    attrs['userPassword'] = 'pass'
    attrs['description'] = 'nouveau'
     
    ldif = modlist.addModlist(attrs)
     
    l.add(dn,ldif)
     
    l.unbind_s()
    Et Voila l'erreur retournée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ldap.SERVER_DOWN: {'info': 'A TLS packet with unexpected lengh was received. ', 'desc' : "Can't contact LDAP server"}
    J'ai fait une recherche sans succès.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Points : 1 384
    Points
    1 384
    Par défaut
    Je n'ai jamais fait d'ajout d'utilisateur en LDAP, mais voici quelques pistes:
    • La communication SSL avec le DC demande qu'un certificat soit installé sur celui-ci (voir http://support.microsoft.com/kb/321051
    • Tu peux essayer de créer un tunnel SSL avec un utilitaire à cet effet, et te connecter en LDAP au lieu de LDAPS depuis Python.
    • Essaye de faire fonctionner une recherche ldap sur SSL avant de passer à l'ajout d'objets
    • Je pense que le dn doit être celui de l'utilisateur, pas celui du conteneur, dans le 'add' (à vérifier)
    • L'objectClass devrait être user (ou top/person/organizationalPerson/user)
    • Il manque au moins l'attribut sAMAccountName
    • Le mot de passe risque d'être problématique (mais il est possible de créer un utilisateur sans mot de passe et de définir un mot de passe par après). En tout cas, pour un Reset Password, c'est pas simple. C'est l'attribut unicodePwd qu'il faut modifier, mais je me rappelle que la valeur doit être encodée de façon particulière (en UTF-16 et entre guillemets, ou qqch comme ça)

    Bonne chance! Si tu y arrives, ça m'intéresse aussi.
    Remarque qu'il est beaucoup plus simple de créer un utilisateur en Windows, grâce à win32com et ADSI...

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 76
    Points : 52
    Points
    52
    Par défaut
    Merci pour les infos.
    je vais regarder ça.

    A+

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 76
    Points : 52
    Points
    52
    Par défaut
    Code OK Pour l'ajout d'un utilisateur dans l'active directory :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    import ldap
    import ldap.modlist as modlist
    try: 
         l = ldap.open("IpServeur")
         username = "CN=Administrateur,CN=Users,DC=domaine,DC=com"
         password = "tonpass"
         l.simple_bind(username,password)
    except ldap.LDAPError, e:
         print e
    Là ta connection est ouverte et tu es authentifié avec ton compte administrateur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    addDN="cn=TonNouveauUser,OU=Users,dc=domaine,dc=com"
    Ici est défini quel sera ton User et dans quelle OU.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    liste = ldap.modlist.addmodlist({'userpassword' : ['secret'], 'userAccountControl': ['544'], 'sn' : ['TonUser'], 'sAMAccountName': ['Ton user'],'userPrincipalName': ['TonUser@domaine.com'], objectClass': ['user']})
     
    l.add(addDN, liste)
     
    l.unbind()
    Ici tu renseignes les propriétés de ton nouvel utilisateur.

    Voila ! C'est OK !
    tu m'avais demandé de te tenir au courant si ça marchait

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Points : 1 384
    Points
    1 384
    Par défaut
    Merci, j'essayerais ça dès que j'aurais le temps. C'est étonnant que SSL ne soit pas nécessaire pour créer un mot de passe, alors qu'il l'est pour le modifier.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/11/2009, 14h15
  2. Réponses: 5
    Dernier message: 22/06/2009, 14h45
  3. Réponses: 5
    Dernier message: 26/11/2008, 11h03
  4. Ajouter un PC dans Active Directory avec Active Directory manuellement
    Par arnaudperfect dans le forum Windows Serveur
    Réponses: 4
    Dernier message: 18/09/2007, 15h24
  5. Réponses: 2
    Dernier message: 27/09/2006, 14h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo