#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. Спасибо за объяснение. Похоже, вы действительно точно знаете, чего я пытаюсь достичь. Я попытаюсь реализовать это на следующей неделе. Я дам вам знать, как это происходит. Спасибо!