После вопроса этот вопрос, У меня был запрос LDAP, который выглядел так:
(&(cn=*)(networkAddress=*)(objectClass=user))
Однако, если у пользователя несколько cn
s, они возвращаются несколько раз. Есть ли способ остановить это?
Поскольку CN во многих реализациях схем является многозначным и не гарантирует уникальности, общее правило заключается в использовании однозначного атрибута, который должен быть уникальным, например uid.
В Active Directory для одного домена вы можете полагаться на sAMAccountName, но не в том случае, если в дереве / лесу более одного домена. Вы можете полагаться на userPrincipalName, который обычно имеет структуру sAMAccountName@domain.Name, но, в отличие от sAMAccountName, нет подтверждения того, что это действительно уникальное значение.
Экспериментально я заметил (хорошо, я допустил несколько опечаток), что UPN может иметь практически любое значение и при этом не применяется принудительное исполнение.
Для меня это звучит как правильный результат ...
Что произойдет, если вы воспользуетесь таким инструментом, как ldapsearch?
Я ничего не знаю о типах данных python, но не могли бы вы просто поймать вывод в объекте, а затем проверить, является ли он массивом или просто строкой. если его массив просто принимает первую запись, если его строка принимает ее напрямую.
Я имею в виду, как я обрабатываю запросы пользователей, связанные с членством в группах, в vbscript.