0

如果有人遇到我现在遇到的同样问题,我需要一些帮助,因为我被要求添加使用 Active Directory 登录的支持,我已经成功地完成了登录过程和用户​​的模型创建,现在我想要要将 AD 中的一些详细信息填充到应用程序数据库中,我想获取员工经理的经理,因为我一直在搜索,我发现团队负责人 N+1 字段在广告上被命名为“经理”,所以我查询了这个使用这个命令

AUTH_LDAP_USER_ATTR_MAP = {
    "first_name": "givenName",
    "last_name": "Name",
    "email": "mail",
    "employee_manager": "manager",
    "employee_office": "physicalDeliveryOfficeName",
    "employee_cost_center": "extensionAttribute8" 
}

这里的问题是我在我的数据库中得到了这个

CN=TeamLeadName,OU=Users,OU=T,OU=C,OU=C,DC=domain,DC=net 

所以知道我不知道如何只获得团队负责人的名字而不是其他人的名字,以及从那里我如何获得团队负责人的团队,或者换句话说,最初的员工经理。任何帮助将不胜感激。

4

1 回答 1

0

manager属性为您提供distinguishedName经理帐户的名称。您可以使用它来查找经理的帐户并获取名称(您可能想要displayName)。

django-auth-ldap 包将python-ldap作为依赖项,因此您可以使用它来查找帐户。我不是 python 开发人员,所以我确信这需要工作,但是将文档这个答案放在一起,它应该看起来像这样:

import ldap

...

l = ldap.initialize('ldap://example.com')
r = l.search_s(manager, ldap.SCOPE_BASE, '(objectClass=*)', ['displayName'])

manager您刚刚找到的管理器在哪里distinguishedName,“example.com”是您的域名。

于 2019-08-16T19:54:31.963 回答