У нас есть требование получать информацию от конкретных пользователей в каталоге LDAP на основе представленной смарт-карты. Приложение уже запущено под учетной записью пользователя AD, но при этом доступ пользователей к LDAP не будет иметь достаточного доступа к данным конкретных пользователей.
Мы наткнулись на несколько частей API-интерфейсов LDAP, и нам не повезло найти информацию о том, как выполнить связывающий вызов LDAP без имени пользователя / пароля и, более конкретно, с аутентификацией со смарт-карты. Некоторые из MS LDAP, по-видимому, позволяют использовать текущий токен пользователя.
Лучшее, что мы придумали, - это использование SC для входа в систему, а затем, выдавая себя за пользователя, создать подключение ldap, используя токен текущего пользователя. По идее похож на этот MDSN блог .
Есть ли лучший способ?
Проблема, с которой мы сталкиваемся при олицетворении, состоит в том, что вошедший в систему пользователь должен иметь определенные права для входа в систему других пользователей для выполнения олицетворения. Также при олицетворении нам нужно ограничить другие взаимодействия, доступ к файловой системе или реестру как альтернативному пользователю нежелателен.