背景:我正在开发一个API来集中用户创建和管理多个资源(例如Google Apps,Dropbox等).在Linux VM上,我开发了一个API和Web界面,允许我(和我的共同管理员)对这些服务的用户帐户进行身份验证和管理.我需要集成的下一件事是我们的Active Directory,它托管在远程Windows Server 2008上.
我一直在尝试使用python-ldap来连接和检索/修改信息,但是遇到了DIR_ERROR操作错误(当试图查询用户时)和NAMING_VIOLATION错误(尝试添加用户时)的问题.
*基于http://www.grotan.com/ldap/python-ldap-samples.html,stackoverflow问题和python-ldap文档的代码我相信的绑定代码:
import ldap
try:
l = ldap.open("serverip")
l.protocol_version = ldap.VERSION3
username = "myUserName@adtest.local"
password = "secret"
result = l.simple_bind(username, password)
print result
except ldap.LDAPError, e:
print e
Run Code Online (Sandbox Code Playgroud)
打印:(97,[],1,[])
查询用户脚本:(根据文章的建议尝试不绑定,但收到"为了执行此操作,必须在连接上完成成功绑定.")
import ldap
try:
l = ldap.open("serverIp", port=389)
l.protocol_version = ldap.VERSION3
username = "myUserName@adtest.local"
password = "secret"
result = l.simple_bind(username, password)
print result
except ldap.LDAPError, e:
print e
# handle error however you like
baseDN = "ou=Users, o=adtest.local"
searchScope = ldap.SCOPE_SUBTREE
retrieveAttributes = …Run Code Online (Sandbox Code Playgroud) 背景:
我一直在Linux计算机上使用python-ldap模块来管理远程Windows Server 2008上的用户帐户。除了更改用户的“ ou”外,我已经能够搜索,创建和修改用户。 。
我曾尝试使用'modify_s'和'modrdn_s',但是由于modrdn仅允许您更改dn的第一部分,因此我没有运气来修改'ou'或将用户移至新的'ou'。
临时地,我正在创建一个新用户,并从旧用户复制所有能够复制的属性,然后删除旧用户。但这不允许我保留用户创建日期和其他不可编辑的信息。
我已经在互联网上进行了彻底的搜索,找到了一些解决方案,但是:
在其他操作系统上:如何使用Python
和其他编程语言将用户移至其他OU:Active Directory LDAP将用户移至其他OU-Ruby
在在Linux上使用python-ldap还是有任何解决方法?
谢谢!