Получить членство в группе пользователей из LDAP со вторым пользователем с доступом только для чтения

У меня есть функция, которая должна войти в LDAP как пользователь запроса, который имеет доступ только для чтения к AD LDAP.

Я могу запросить и найти пользователя и перечислить большинство пользовательских свойств, кроме memberOf.

Это происходит только тогда, когда я вхожу в систему как пользователь только для чтения. Если я войду в систему как рассматриваемый пользователь, все атрибуты могут быть получены. У кого-нибудь есть идеи, что я делаю неправильно?

DirectorySearcher search = new DirectorySearcher(entry);

search.Filter = "(sAMAccountName=" + loginName + ")";
search.PropertiesToLoad.Add("CN");
search.PropertiesToLoad.Add("memberOf");
search.PropertiesToLoad.Add("SN");
search.PropertiesToLoad.Add("givenName");
if (_Attributes != null)
{
    foreach (string attr in _Attributes)
    {
        search.PropertiesToLoad.Add(attr);
    }
}

SearchResult result = search.FindOne();

if (result == null)
    return null;

string usersName = "";
if (result.Properties.Count > 0)
{
    if (result.Properties.Contains("CN"))
    {
        attributes.Add("CN", result.Properties["CN"].Cast<string>().ToList());
        usersName = result.Properties["CN"].Cast<string>().FirstOrDefault();
    }
    if (result.Properties.Contains("SN"))
    {
        attributes.Add("SN", result.Properties["SN"].Cast<string>().ToList());
    }
    if (result.Properties.Contains("givenName"))
    {
        attributes.Add("givenName",     result.Properties["givenName"].Cast<string>.ToList());
    }
    if (result.Properties.Contains("memberOf"))
        ad_MemberOf = result.Properties["memberOf"].Cast<string>().ToList();
    }
}

person JMorgan    schedule 17.10.2012    source источник


Ответы (1)


Это функция безопасности. Доступ к этому атрибуту ограничен, если у вас не включен «Доступ, совместимый с версиями до Windows 2000».

Если вы правильно включите это на корневом уровне домена, у вас должен быть доступ ко всем атрибутам «memberOf» всех учетных записей пользователей, а также к некоторым другим атрибутам, которые ограничены, когда у вас нет правильных привилегий для доступа.

В качестве альтернативы вы можете добавить разрешения для доступа к определенным атрибутам, которые соответствуют тем, которые предоставляются как часть механизма «Доступ, совместимый с версиями до Windows 2000».

Если я правильно понимаю, вам нужно добавить следующие разрешения:

'List Contents', 'Read All Properties' and 'Read Permissions'
person Petesh    schedule 17.10.2012