对于我正在处理的Django应用程序,我希望允许组成员身份由activedirectory组确定。在翻了一段时间的pywin32文档之后,我想到了这个:
>>> import win32net
>>> win32net.NetUserGetGroups('domain_name.com', 'username')
[(u'Domain Users', 7), ...]
我在google上花了一段时间才弄明白这一点,我发现的示例几乎完全是用LDAP来处理这种事情的。有什么理由比这种方法更受欢迎吗?记住几件事:
AD的LDAP接口有很多“怪癖”,这使得它比表面上看起来更难使用,而且在功能上往往明显落后。当我使用它时,我主要处理身份验证,但是不管您在做什么,它可能都是一样的。有很多奇怪的是,必须绑定为某个用户来执行普通LDAP服务器允许您以匿名身份进行的简单搜索。在
另外,至少在一年前,当我做这个工作时,python-ldap是唯一一个支持接近完整功能集的python-ldap实现,因为它是在OpenLDAP之上构建的,但是OpenLDAP在Windows上构建是相当困难的(一般来说),所以大多数构建都会缺少一个或多个特性。尽管您没有进行身份验证,但是缺少SASL/Kerberos支持(在我使用它时就缺少了这种支持)可能会使事情变得复杂。在
如果你有一些有用的东西,而且只需要在Windows上运行,我真的建议你坚持下去;通过LDAP使用广告可能会变成一个大项目。在
签出Tim Golden's Python Stuff。在
相关问题 更多 >
编程相关推荐