ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

有没有更好的方法从Python中的Active Directory域获取用户/组信息?

2019-06-07 10:42:58  阅读:213  来源: 互联网

标签:python active-directory ldap winapi pywin32


对于我正在处理的Django应用程序,我希望允许组成员身份由Active Directory组确定.经过一段时间挖掘pywin32文档后,我想出了这个:

>>> import win32net
>>> win32net.NetUserGetGroups('domain_name.com', 'username')
[(u'Domain Users', 7), ...]

在我弄清楚之前我花了一段时间用谷歌搜索,我发现的例子几乎完全使用LDAP来做这种事情.有什么理由比这种方法更受欢迎吗?记住几件事:

>我没有使用Active Directory实际执行身份验证,只使用权限.身份验证由另一台服务器执行.
>虽然拥有一些跨平台功能会很好,但这可能几乎完全在Windows上运行.

解决方法:

AD的LDAP界面有很多“怪癖”,使得它比表面上看起来更难以使用,并且它往往落后于功能.当我使用它时,我主要处理身份验证,但无论你在做什么,它都可能是相同的.关于必须被绑定为某个用户只是为了进行普通LDAP服务器允许您以匿名方式进行的简单搜索,这有很多奇怪之处.

此外,至少在一年前,当我研究这个时,python-ldap是唯一支持任何接近完整功能集的Python LDAP实现,因为它建立在OpenLDAP之上,但是,OpenLDAP相当难以实现.在Windows上(通常)构建,因此大多数构建将缺少一个或多个功能.虽然您没有进行身份验证,但缺少SASL / Kerberos支持(在我使用它的时候缺少)可能会让事情变得复杂.

如果你有一些有用的东西,只需要在Windows上运行它,我真的建议坚持下去;通过LDAP使用AD可以变成一个大项目.

标签:python,active-directory,ldap,winapi,pywin32
来源: https://codeday.me/bug/20190607/1193058.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有