Почему я не могу открыть файл с помощью олицетворения на удаленной машине? - PullRequest
3 голосов
/ 11 августа 2009

Служба WCF, написанная на C #, размещена на удаленной машине и работает как локальная учетная запись администратора. С моего компьютера, вошедшего в систему как пользователь активного каталога, я посылаю команду, которая просто говорит ему открыть файл в сети. У меня есть доступ к файлу, но учетная запись администратора на хост-компьютере не имеет. Я использую метатег [OperationBehavior (Impersonation = ImpersonationOption.Required)] в методе, который требует олицетворения, и у меня правильно установлены тип учетных данных и режимы безопасности. Я могу проверить, что учетная запись действительно пытается выдать себя за личность, сравнивая удостоверения Windows, но я все еще получаю исключение, запрещающее доступ. Я думаю, что это как-то связано с активным каталогом, который не аутентифицирует себя от имени другого пользователя. Я что-то упускаю?

Ответы [ 2 ]

5 голосов
/ 11 августа 2009

Вы входите в домен безопасности Kerberos и двух хоп-аутентификаций.
У вас есть два варианта:

  • Возьмите красную таблетку : попытайтесь заставить работать две аутентификации хмеля. Убедитесь, что у вас есть хотя бы домен Windows Server 2003, время правильно синхронизировано между всеми компьютерами и настройте правильное делегирование для конкретных пользователей / учетных записей компьютеров. Если вам действительно повезло, вам нужно настроить имена участников-служб с помощью SetSPN.

  • Примите синюю таблетку : забудьте две аутентификации прыжка, олицетворяйте службу WCF под учетной записью, у которой достаточно прав, и проверьте авторизацию на более раннем этапе.

Простите за разочарование, но я думаю, что мой краткий опыт в этой теме стоил мне по меньшей мере 10 лет моей жизни. Ненавижу видеть, что это случилось с кем-то еще. В любом случае, этот пост должен дать вам достаточно ключевых слов Google, если вы чувствуете себя смелым.

Eventlog и сетевой монитор полезны для отладки ...

1 голос
/ 11 августа 2009

Вам также, вероятно, нужно настроить делегирование с веб-сервера на файловый сервер. Это позволит файловому серверу доверять учетным данным, которые были проверены веб-сервером. См. Эту статью MSDN о том, как настроить делегирование для вашего приложения, особенно раздел о настройке AD.

...