Мы разрабатываем приложение с внутренней системой учетных записей пользователей, но хотели бы иметь возможность использовать учетные данные из учетных записей Active Directory и/или Windows. С этой целью мы сохраняем SID пользователя в поле в таблице пользователей приложения. Наш механизм Войти функции, как это:Использование LogonUser() только для проверки учетных данных
- Запрашивать домен, логин, пароль
- Вызов LogonUser(logon, domain, password, logon_type, logon_provider, &hToken)
- В случае успеха, получить SID пользователя из hToken
- Закрыть hToken
- Поиск базы данных нашего приложения для пользователь с данным SID; если они найдены, мы считаемся зарегистрированными в этой учетной записи.
Проблема, что придумал это: мы используем LOGON32_LOGON_NETWORK для logon_type, но теперь мы столкнулись с некоторыми конфигурациями безопасности, где «Доступ к компьютеру из сети» будет отказано, то есть тип сетевого входа в систему запрещено.
Мой вопрос: какой тип входа следует использовать для этой ситуации? Интерактивный? На самом деле мы не используем токен входа для чего-либо другого, кроме как извлечь SID пользователя. Наше приложение имеет собственные внутренние группы и разрешения; мы вообще не используем группы Windows или разрешения. С точки зрения Windows и контроллера домена все, что мы делаем, это вход в систему и быстрый выход из системы.
Или мы рассматриваем это совершенно неправильно, и мы должны использовать какой-либо другой метод входа полностью?
Благодаря
Это настольное приложение или веб-приложение? Почему не следует использовать Kerberos для аутентификации пользователя против AD? – MvdD
Рабочий стол. Мы уже записали материал для входа, и мы надеемся просто изменить этот параметр. Также мы хотим иметь возможность использовать локальные учетные записи Windows в дополнение к AD. – smead
Рабочий стол? Итак, пользователь уже вошел в систему? Почему ваше приложение нуждается в повторном входе в систему, почему бы просто не использовать существующий SID? (Что еще более важно, вы понимаете, что пользователь сможет легко обойти свой механизм входа в систему и войти в ваше приложение как любой другой пользователь?) –