首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用python + ldap针对active directory进行身份验证

使用python + ldap针对active directory进行身份验证
EN

Stack Overflow用户
提问于 2008-09-26 16:08:11
回答 11查看 95.3K关注 0票数 94

如何使用Python + LDAP针对AD进行身份验证。我目前使用的是python-ldap库,它所产生的结果就是泪水。

我甚至不能绑定来执行一个简单的查询:

代码语言:javascript
复制
import sys
import ldap


Server = "ldap://my-ldap-server"
DN, Secret, un = sys.argv[1:4]

Base = "dc=mydomain,dc=co,dc=uk"
Scope = ldap.SCOPE_SUBTREE
Filter = "(&(objectClass=user)(sAMAccountName="+un+"))"
Attrs = ["displayName"]

l = ldap.initialize(Server)
l.protocol_version = 3
print l.simple_bind_s(DN, Secret)

r = l.search(Base, Scope, Filter, Attrs)
Type,user = l.result(r,60)
Name,Attrs = user[0]
if hasattr(Attrs, 'has_key') and Attrs.has_key('displayName'):
  displayName = Attrs['displayName'][0]
  print displayName

sys.exit()

myusername@mydomain.co.uk password username运行它会给我两个错误中的一个:

Invalid Credentials -当我错误地输入或故意使用错误的凭据时,它无法进行身份验证。

ldap.INVALID_CREDENTIALS:{'info':'80090308: LdapErr: DSID-0C090334,comment: AcceptSecurityContext error,data 52e,desc‘,'desc':'Invalid credentials'}

ldap.OPERATIONS_ERROR:{'info':'00000000: LdapErr: DSID-0C090627,comment:要执行此操作,必须在连接上完成成功的绑定。,data 0,vece','desc':‘操作错误’}

为了正确绑定,我遗漏了什么?

我在fedora和windows上得到了同样的错误。

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2008-09-26 16:18:18

我失踪了

代码语言:javascript
复制
l.set_option(ldap.OPT_REFERRALS, 0)

从init开始。

票数 50
EN

Stack Overflow用户

发布于 2008-09-26 20:23:04

如果您对使用pywin32持开放态度,那么可以使用来自Python的Win32调用。这是我们在CherryPy web服务器中执行的操作:

代码语言:javascript
复制
import win32security
token = win32security.LogonUser(
    username,
    domain,
    password,
    win32security.LOGON32_LOGON_NETWORK,
    win32security.LOGON32_PROVIDER_DEFAULT)
authenticated = bool(token)
票数 31
EN

Stack Overflow用户

发布于 2009-07-14 16:02:22

这对我来说很有效,l.set_option(ldap.OPT_REFERRALS,0)是访问ActiveDirectory的关键。此外,我认为您应该添加一个"con.unbind()“,以便在完成脚本之前关闭连接。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/140439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档