Могу ли я создать веб-службу .net, которая разрешает анонимный доступ, но олицетворяет привилегии пользователей на основе идентификатора пользователя? - PullRequest
1 голос
/ 23 мая 2009

У меня есть веб-приложение на сервере IBM WAS (Windows).

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

Веб-служба построена с использованием .net и находится на отдельном сервере, который находится в том же домене, что и файловый сервер.

Запрос на обслуживание приложения WAS отправляет идентификатор пользователя как часть вызова.

Есть ли способ получить идентификатор пользователя, который передается веб-службе, и ограничить его только теми файлами / папками, к которым у него есть доступ, на основе безопасности Windows?

Насколько я знаю, это невозможно, если только приложение WAS не может отправить запрос в веб-службу как зарегистрированный пользователь.

Итак, мой второй вопрос: можно ли передать учетные данные пользователя Windows из приложения WAS в веб-службу?

Я не слишком знаком с Аутентификацией и имитацией Windows и еще меньше знаю о WAS и о том, как он обеспечивает безопасность, поэтому я надеюсь выяснить, возможно ли это и с чего начать.

Ответы [ 3 ]

1 голос
/ 23 мая 2009

Нет. Вы можете создать токен идентификации, но для проверки доступа вам понадобится токен олицетворения, и такой токен можно создать только путем предоставления пароля или делегирования из учетной записи, доверенной для делегирования, которому, в свою очередь, был представлен пароль (или достаточное доказательство для поверьте, что подлинная личность обладает паролем, т. е. AD за него поручился).

Вам нужно, чтобы сервер WAS выдавал себя за вызывающего абонента, а затем вызывал вашу службу под олицетворением. Учетная запись, на которой работает WAS, должна быть настроена на разрешить ограниченное делегирование .

1 голос
/ 23 мая 2009

Если у вас есть настройка Active Directory, единственный способ, с помощью которого я могу представить серверу WAS отправку учетных данных пользователя, обращающегося к нему, - это если DC распознает службу WAS (т.е. учетную запись, в которой выполняется приложение WAS) для делегация. Мы столкнулись с этой проблемой (несколько) здесь. Мы используем учетную запись AD для запуска пулов приложений IIS, а затем эта учетная запись AD должна иметь возможность проверять пользователей по AD и подключаться к серверу SQL.

Исправление для нас состояло в том, чтобы зарегистрировать имена процессов службы (SPN) для пользователя, выполняющего пул приложений IIS. Это позволяет учетной записи пользователя аутентифицировать пользователей по AD, поскольку AD распознает ее как службу. Затем вы можете следовать традиционным правилам олицетворения .NET для передачи учетных данных. Извините, я не могу предоставить более конкретную информацию, но я надеюсь, что это, по крайней мере, укажет вам правильное направление.

См .: http://technet.microsoft.com/en-us/library/cc773257.aspx

1 голос
/ 23 мая 2009

Вот ссылка для понимания анонимного доступа и олицетворения с помощью .NET: Анонимный доступ и олицетворение

...