Назад | Перейти на главную страницу

Встроенная проверка подлинности Windows с группами участников

Не совсем уверен, что лучше задать этот вопрос на StackOverflow (связанный с полупрограммированием) или здесь. Я полагаю, поскольку большая часть моего вопроса связана с проблемами на стороне сервера, я сначала спрошу о Serverfault. При необходимости переместите вопрос.

У меня есть веб-сайт на IIS 6, написанный на PHP (FastCGI). Веб-сайт защищен SSL и используется как внутри, так и извне, при этом пользователи заходят на сайт из каждого типа сети. Все пользователи находятся в AD, которым нужен доступ к сайту, и текущий метод отлично подходит для целей аутентификации. Текущий сценарий входа в систему представляет собой стандартную страницу с HTML-формой, возвращающей имя пользователя / пароль в функцию аутентификации ldap. В этой аутентификации я заполняю переменную сеанса (PHP) сериализованным массивом групп пользователей AD для использования в других частях приложения. Я должен иметь возможность получить список групп для использования.

Мне было поручено заставить эту систему автоматически входить в систему пользователя, если он подключается к ней из домена / сети. При включенной встроенной аутентификации (только) это работает нормально, хотя с некоторыми оговорками, которые я пытаюсь решить сейчас. Со встроенной аутентификацией пароль не пересекает провод (прекрасно), но это делает мою функцию аутентификации ldap (которая заполняет переменную группами пользователей AD) бесполезной! Мне все еще НУЖНЫ эти группы для использования в других частях приложения.

Я прочитал несколько статьи и вопросы / ответы по ServerFault/Переполнение стека по поводу встроенной аутентификации, но у меня все еще есть вопросы.

Если ответ положительный, уточните КАК был бы очень признателен.

У нас был похожий запрос на несколько заявок на моей старой работе. Мы решили это с помощью специальной служебной учетной записи, у которой было достаточно прав для чтения членства в группах, но это все. Поток приложения работал примерно так:

  1. Пользователь заходит на сайт.
  2. Происходит встроенный логин.
  3. Внутренний код обрабатывает логин и подключается к AD с помощью запрограммированного пользователя утилиты.
  4. Внутренний код запрашивает у AD членство в группах только что вошедшего пользователя.

С этого момента членство в группах доступно для кода. Ключевым моментом здесь является то, что это специальная служебная учетная запись, выполняющая выборку информации, сервер не выдает себя за пользователя, как вы сейчас делаете с помощью basic-auth.