python-ldap et Active Directory de Microsoft: se connecter et de supprimer l'utilisateur
python-ldap newb ici. Je suis en train de faire cela avec l'exemple de code suivant:
import ldap
## first you must bind so we're doing a simple bind first
try:
l = ldap.open("valid ip")
l.set_option(ldap.OPT_REFERRALS, 0)
l.protocol_version = ldap.VERSION3
# Pass in a valid username and password to get
# privileged directory access.
# If you leave them as empty strings or pass an invalid value
# you will still bind to the server but with limited privileges.
username = "cn=administrator, o=joe.local"
password = "password"
# Any errors will throw an ldap.LDAPError exception
# or related exception so you can ignore the result
l.simple_bind(username, password)
except ldap.LDAPError, e:
print e
# handle error however you like
# The next lines will also need to be changed to support your requirements and directory
deleteDN = "uid=hihihi, ou=LoginUsers,o=joe.local"
try:
# you can safely ignore the results returned as an exception
# will be raised if the delete doesn't work.
l.delete_s(deleteDN)
except ldap.LDAPError, e:
print e
## handle error however you like
- Je obtenir plusieurs erreurs:
Utilisant l'IP de la VM:
{'info': '000004DC: LdapErr: DSID-0C0909A2, comment: In order to perform this op
eration a successful bind must be completed on the connection., data 0, v1db1',
'desc': 'Operations error'}
À l'aide de localhost ou 127.0.0.1 :
{'desc': "Can't contact LDAP server"}
{'desc': "Can't contact LDAP server"}
J'ai regardé la suite S. O. postes ne disposant pas de résolution:
Python-ldap authenication
Python-ldap microsoft
Vous devez vous connecter pour publier un commentaire.
Selon la documentation,
ldap.open
est obsolète. Vous devriez essayerldap.initialize
, comme les deux liens que vous avez fournies. Aussi, assurez-vous il n'y a pas d'espaces dans tes noms illustres:"cn=administrator, o=joe.local"
.Si cela ne résout pas le problème, alors assurez-vous de mentionner la ligne que l'erreur vient de.
Quelle version de python que vous utilisez ??. Le code est assez vieux.
ouvrez maintenant est d'initialiser, de ne pas utiliser simple_bind, utilisez simple_bind_s.
Si vous voulez faire des opérations comme l', de supprimer, de changepassword dans l'ANNONCE, vous devez d'abord configurer les connexions TLS . http://araihan.wordpress.com/2009/10/05/windows-server-2008-active-directory-certificate-services-ad-cs/
Ici est un succès de la connexion.
Alors vous pouvez le supprimer et de modifier le mot de passe utilisateur.
la lcon_emg.passwd_s, dit pas de travail. Vous avez besoin de simple changement de unicodepwd attribut à modifier le mot de passe d'utilisateur dans Active directory.
Si vous souhaitez modifier le mot de passe plus tard.
J'espère que cette réponse vous aider à