Пользовательская обработка создания профиля пользователя домена
Я хочу подключиться к системе регистрации пользователей домена и заняться созданием собственного локального профиля. У меня есть два основных связанных вопроса:
- Как перехватить аутентификацию пользователя домена?
- Могу ли я заниматься созданием пользовательских профилей самостоятельно?
- Использование перемещаемых профилей не вариант
- Использование обязательных профилей также не вариант
Целевые платформы- Windows 7 Enterprise, Professional, Home Premium (опционально)
Я не против использовать Active Directory, но я бы предпочел использовать программное обеспечение Linux (Samba 4?), Потому что все мои серверы будут работать под управлением Linux. Это относительно не связано, потому что я просто хочу какую-то документацию или даже что искать в Google.
- Могут ли все пользователи домена войти в один локальный профиль?
- В Windows, что такое "профиль пользователя"?
РЕДАКТИРОВАТЬ: Я нашел эту ссылку на веб-странице Microsoft MSDN.
Я также обнаружил, что это действительно полезно для начала настройки GINA.
Нужно ли какое-либо специальное программное обеспечение для создания пакета аутентификации? Можно ли получить доступ к веб- или сетевому ресурсу из этого сценария для проверки учетных данных?
4 ответа
В этом случае вы могли бы создать службу Windows, работающую с привилегиями LocalSystem, и связаться с ней с вашим поставщиком учетных данных.
Когда пользователь вводит свои учетные данные в ICredentialsProvider, он связывается со службой Windows, и служба будет обрабатывать аутентификацию.
После успешной аутентификации служба должна убедиться, что такая учетная запись локально присутствует в системе, в противном случае создайте новую локальную учетную запись с NetUserAdd и войдите в систему с этой учетной записью.
Имейте в виду, что ICredentialsProvider не имеет привилегий для создания локальной учетной записи или использования большинства функций Net*, поэтому я предлагаю создать службу Windows с привилегиями LocalSystem.
Если вы просто хотите внести небольшое количество изменений в профили, вы можете рассмотреть возможность использования Active Setup.
Как только вы настроите это на компьютере, он будет работать сразу после загрузки профиля пользователя, и вы сможете затем вносить изменения в свои файлы / настройки и т. Д.
Это не полномасштабный ответ, но я думаю, что это существенное дополнение к решению.
В системах, основанных на Windows NT до Windows Vista, Microsoft использовала нечто, называемое GINA (графический интерфейс и аутентификация), для выполнения большей части аутентификации верхнего уровня для пользовательских входов, но она также использовала нечто, называемое WinLogin, для вещей более низкого уровня. С GINA программист может создать настраиваемый пользовательский интерфейс и аутентификацию для WinLogin, а WinLogin вызовет методы, необходимые для обработки входа в систему. Но, как и все остальное, с Vista все изменилось.
В Vista Microsoft предоставила интерфейс под названием ICredentialProvider, который позволяет пользователю зарегистрировать провайдер учетных данных. Вот статья о том, почему GINA была удалена, которая также дает довольно хорошее введение в новую систему.
Так как это оказалось в большей степени основано на программировании, чем на ИТ, я продолжу и задам вопрос на StackOverflow об особенностях реализации этого. Не похоже, что какое-либо специальное программное обеспечение необходимо.
Второй вопрос все еще стоит. Я продолжу поиск ответа на вопрос, смогу ли я справиться с созданием своего собственного профиля. Я думаю, что это должно быть возможно, но я не уверен.
Большинство мест, которые я знаю, которые нуждаются в получении информации в новых профилях пользователей, делают это, изменяя каким-то образом профиль пользователя по умолчанию. Этот профиль импортируется во все новые профили, так же, как /etc/skel
делает в системах Unix. По необходимости это глупый процесс, поэтому запуск пользовательских сценариев как части копии профиля на самом деле невозможен, если не считать сценариев запуска при входе, закодированных в Default User.