Могу ли я выдавать себя за пользователя в другом домене Active Directory в .NET? - PullRequest
7 голосов
/ 15 июня 2009

У меня есть два домена Active Directory, A и B. Пользователям в домене A необходимо запустить приложение на своих рабочих столах для просмотра и управления ресурсом, расположенным на сервере в домене B. У каждого пользователя также есть учетная запись в домене B. Можно ли олицетворять личность домена B каждого пользователя для программного выполнения операций с ресурсом домена B?

Пример рабочего процесса:

  1. Пользователь входит в домен А.
  2. Пользователь запускает настольное приложение.
  3. Пользователь указывает ресурс в домене B.
  4. Приложение запрашивает у пользователя учетные данные домена B.
  5. Приложение олицетворяет личность пользователя домена B для доступа к указанному ресурсу.
  6. Пользователь манипулирует ресурсом домена B с помощью приложения.

Ответы [ 3 ]

9 голосов
/ 02 сентября 2009

Если ваш компьютер (который выполняет олицетворение) является членом домена, который не доверяет домену учетной записи пользователя, которую вы пытаетесь олицетворять, то олицетворение завершится неудачей. Любой, кто говорит иначе, я хотел бы видеть доказательства.

2 голосов
/ 15 июня 2009

Я собираюсь говорить о Win32 API, но я почти уверен, что вы можете вызывать их из .NET. Чек http://pinvoke.net.

Вам необходимо вызвать API LogonUser, чтобы создать токен доступа, который представляет учетные данные пользователя домена B.

Затем вы вызываете ImpersonateLoggedOnUser, передавая этот токен доступа. Вызывающий поток будет выдавать себя за учетные данные домена B, пока вы не выдадите за другой набор учетных данных или не вызовете API RevertToSelf.

Я думаю, само собой разумеется, что для успешного вызова LogonUser машине, на которой вы работаете, нужно будет доверять домену B.

1 голос
/ 15 июня 2009

Проверьте этот вопрос , который охватывает вопросы олицетворения, которые вам нужны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...