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

#coldfusion #active-directory #ldap

#coldfusion #active-directory #ldap

Вопрос:

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

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

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

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

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

Ответ №1:

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

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

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

Комментарии:

1. Спасибо за объяснение. Похоже, вы действительно точно знаете, чего я пытаюсь достичь. Я попытаюсь реализовать это на следующей неделе. Я дам вам знать, как это происходит. Спасибо!