Как я могу запросить сервер LDAP, чтобы узнать, к каким группам я принадлежу? - PullRequest
1 голос
/ 02 ноября 2011

Я использую ColdFusion 9.1.2.

У меня около десяти минут использования LDAP.

Я создаю страницу входа для веб-сайта. Каждый пользователь входит в сеть через Active Directory. Когда они входят в свою рабочую станцию ​​и получают доступ к моей странице входа в систему, должен быть запущен запрос, чтобы определить, принадлежит ли пользователь определенной группе. Если они принадлежат к этой группе, они автоматически входят в систему. Если нет, им показывается «отказано в разрешении».

Предположим, что мое имя пользователя - BobJones, а группа - NicePeople.

Как определить, кто в данный момент зарегистрирован, и посмотреть, принадлежат ли они к определенной группе?

1 Ответ

1 голос
/ 03 ноября 2011

Чтобы проверить, является ли пользователь членом определенной группы в AD, сначала необходимо узнать DN этой группы.Вы должны сопоставить имя группы, которое у вас есть, с DN этой группы.Поскольку вы не указываете, я предполагаю, что NicePeople на самом деле является атрибутом CN этой группы.Чтобы получить DN этой группы, используйте фильтр LDAP, подобный этому (&(objectClass=group)(cn=NicePeople)), и запросите атрибут distinguishedName (или просто используйте DN полученного объекта, если ваша библиотека это разрешает).

Наличие DN группывам нужно проверить атрибут пользователя memberOf.Вам потребуется DN пользователя (для выполнения запросов), к сожалению, я не знаю, как получить текущего зарегистрированного пользователя.

Атрибут memberOf содержит список DN групп, в которые входит этот пользователь.Однако пользователь является членом одной дополнительной группы, которой нет в этом списке.Эта группа называется «Первичная группа».Первичные группы сохраняются как целочисленный идентификатор в атрибуте primaryGroupId пользователя.Это значение соответствует атрибуту primaryGroupToken группы.

...