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

Réseau/Web Python Discussion :

Enregistrement utilisateur LDAP


Sujet :

Réseau/Web Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Enregistrement utilisateur LDAP
    Bonjour,

    Dans le cadre d'un projet professionnel, je dois récupérer des utilisateurs sur un annuaire LDAP et les enregistrer sur un annuaire LDAP distant, le tout en Python, langage que je ne connais pas trop.

    La récupération des utilisateurs ne m'a pas posé de problème, par contre c'est pour les enregistrer que ça ne va plus (bien entendu, j'ai vérifié la configuration dns, l'ouverture des ports entre les serveur, l'annuaire ldap... ).

    Voici le code qui, je ne le cache pas, est très fortement inspiré d'exemples trouvés via google.

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    #!/usr/bin/python
    # -*- coding:utf-8 -*-
     
    ############################
    #   Variables              #
    ############################
    _LDAP_SERVER_FTP = "ftp"
    _LDAP_USERS_BASE_DN_FTP = "ou=Users,dc=exemple,dc=fr"
    _LDAP_DOMAIN_BASE_DN_FTP = "dc=exemple,dc=fr"
    _LDAP_CRED_LOGIN_FTP = "cn=admin,dc=exemple,dc=fr"
    _LDAP_CRED_PASSWD_FTP = "secret"
     
    #############################
    #   Modules                 #
    #############################
     
    import ldap
    import ldap.modlist as modlist
     
    ############################
    #   Main                   #
    ############################
     
    try:
        _ldap_session = ldap.initialize("ldap://%s/" % (_LDAP_SERVER_FTP))
        _ldap_session.protocol_version = ldap.VERSION3
        _ldap_session.simple_bind_s(_LDAP_CRED_LOGIN_FTP, _LDAP_CRED_PASSWD_FTP)
     
    except ldap.LDAPError, e:
        print "ERREUR: Impossible de se connecter au serveur LDAP: ", e
        sys.exit(0)
     
    try:
        dn="cn=usertest,ou=Users,dc=st-ouen,dc=fr" 
        # Dictionnaire des attributs souhaites
        attrs = {}
        attrs['objectclass'] = ['top','inetOrgPerson','posixAccount']
        attrs['cn'] = 'usertest'
        attrs['userPassword'] = 'secret'
     
        # Convertion du distionnaire 
        ldif = modlist.addModlist(attrs)
     
        # Envoie vers le serveur
        _LDAP_SERVER_FTP.add_s(dn,ldif)
     
    except ldap.LDAPError, e:
        print e
        sys.exit(0)
    A chaque fois que je lance le script, j'ai cette erreur*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Traceback (most recent call last):
      File "./adduser.py", line 45, in ?
        _LDAP_SERVER_FTP.add_s(dn,ldif)
    AttributeError: 'str' object has no attribute 'add_s'
    J'ai essayé plusieurs solutions trouvées sur google pour ce genre de message d'erreur, mais sans succès. C'est pour cela que je vous appel à l'aide.

    Je ne sais pas si j'ai poster dans le bon forum, et je m'en excuse si ce n'est pas le cas.

    Merci pour vos réponses,

    Cordialement.

  2. #2
    Membre expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 947
    Points : 1 351
    Points
    1 351
    Par défaut
    Salut,

    Tel que je comprends ton source, _LDAP_SERVER_FTP est une chaine de caractères, et il n'y a pas de méthode "add_s" dans la classe str (chaine de caractères)... Donc l'erreur est expliquée, mais ça ne va pas t'avancer beaucoup, désolé...

    A+

    Pfeuh

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,
    Normalement, .add_s devrait être méthode de la connexion LDAP (_ldap_session dans ce script) mais bon...
    J'espère que vous testez sur un répertoire hors production.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Je vous remercie pour vos réponses qui m'ont aider à trouver mon erreur.

    Lorsque j'utilisais le "add_s" je faisais appel à la variable qui contenait mon nom de serveur (_LDAP_SERVEUR_FTP) au lieux d'utiliser la connexion établie en début de script (_ldap_session).

    Bien entendu, je joue mon script sur un annuaire de test, lui même installé sur un serveur qui n'est pas encore en production

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

Discussions similaires

  1. [WD-2007] Enregistrement utilisateur recurrent
    Par neuneu1 dans le forum Word
    Réponses: 3
    Dernier message: 22/04/2010, 18h26
  2. Erreur lors de l'enregistrement utilisateur
    Par under dans le forum Débuter
    Réponses: 4
    Dernier message: 15/11/2009, 15h00
  3. [Liferay] Problème d'importation des utilisateurs ldap
    Par c moi dans le forum Portails
    Réponses: 4
    Dernier message: 06/05/2009, 12h27
  4. [novice] un utilisateur LDAP n'arrive pas ouvrir Firefox alors root le peut
    Par pierrot10 dans le forum Administration système
    Réponses: 0
    Dernier message: 07/01/2009, 16h16
  5. [Sécurité] Selection utilisateur ldap
    Par anto48_4 dans le forum Langage
    Réponses: 13
    Dernier message: 24/03/2006, 14h31

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