我正在尝试修改一个基于python的认证器,以便murry(voip软件)与我的ldap树一起工作。
LDAP验证器位于:
http://www.winex.org/linux/zealot/src/mumble-scripts/Authenticators/LDAP/LDAPauth.py
它可以工作,但不太适合我的ldap布局,所以我必须对它进行一些修改。我知道一种可行的方法,但不幸的是,我对python的了解并不比从google学到的更多(不过,我还有一些其他编程专业知识)。
我的ldap布局如下:
charName=xxx, ou=people, dc=xxx, dc=com
在这下面存储了诸如userPassword
和login
等属性。
上面的python脚本是为使用ldap绑定进行身份验证而定制的。在这种情况下,我必须绑定为"charName=logindatafromapp, ou=people, dc=xxx, dc=com"
。不幸的是,人们不是用"charName"
登录,而是用"login"
登录,这是一个属性,但与"charName"
不相同。
我不知道如何绑定属性,所以我的想法是:
"logindatafromapp"
,然后将该值与"login"
匹配。如果找到匹配,我获取匹配的"charName"
,并按照最初的意图与该charName
重新绑定。我目前一直在查询"charName"
值并将该值分配给变量,因此我可以在第二个ldap绑定中使用它(google并没有真正帮助我)。
这是我的代码:
ldap_conn = ldap.initialize(ldap_uri, 0)
ldap_conn.bind_s("cn=admin,dc=xxxxxxxx,dc=com","pass")
res = ldap_conn.search_s('ou=people,dc=xxxxxx,dc=com', ldap.SCOPE_ONELEVEL,'login=trony',['charName'])
print(res)
然后打印"[('charName=Trony,ou=people,dc=xxxxxxx,dc=com', {'charName': ['Trony']})]"
。
(这个"login=trony"
)是一个临时过滤器,我必须用applogin
变量替换它。我现在的问题是如何将"Trony"
(在本例中)分配给一个变量?输出似乎是一个特殊的结构?
目前没有回答
相关问题 更多 >
编程相关推荐