Олицетворение не проходит авторизацию с одинаковыми учетными данными на рабочих станциях A и B - PullRequest
0 голосов
/ 23 апреля 2009

Случай 1. Когда я просматриваю небольшой тестовый сайт со своего собственного компьютера под названием JOHNXP (например, http://localhost/WebClient), моя страница .aspx вызывает мой веб-сервис ASMX, который забирает мои учетные данные и передает их другому веб-сервису на ДРУГОЙ машина (SERVERTRIM) в том же домене. Я вижу, что мой запрос приводит к записи в журнале безопасности на компьютере SERVERTRIM с моими учетными данными.

Случай 2. Я перехожу на другой компьютер в том же домене и захожу с теми же учетными данными, которые я использовал на своем персональном компьютере. Когда я просматриваю тот же самый тестовый сайт выше (на этот раз как http://johnxp/WebClient), я получаю перколированный обратно на мою страницу .aspx:

System.Web.Services.Protocols.SoapException: серверу не удалось обработать запрос. ---> System.Net.WebException: запрос не выполнен с состоянием HTTP 401: не авторизован

Глядя на журнал безопасности на SERVERTRIM, я замечаю, что доступ в случае 2 привел к анонимному входу в систему, который, по-видимому, объясняет 401 / Unauthorized.

Я пытаюсь заставить мой веб-сервис использовать учетные данные зарегистрированного пользователя DOMAIN, когда мой WS вызывает веб-сервис поставщика на другом сервере.

Мой веб-сервис ASMX работает на моем рабочем столе (IIS 5.1 WinXP Pro - имя машины - JOHNXP). Я включил анонимный UNCHECKED на каждом задействованном сервере, и у меня есть это в каждом web.config, задействованном в моем сценарии:

Веб-служба поставщика работает на SERVERTRIM (Win 2003 Server), также она ASMX и использует WSE 3.0.

Wireshark и Netmon выглядят слишком грозными инструментами для меня прямо сейчас. Я полагаю, что различные полученные логины на «удаленном» сервере (SERVERTRIM) являются достаточным «доказательством». Все вышеперечисленные машины находятся в одном домене, но я хочу сохранить «удаленный» веб-сервис на SERVERTRIM и мой промежуточный веб-сервис на другом сервере в том же домене, если это возможно. Требует ли этот сценарий, что я должен копаться в «делегировании»? Что может быть самым простым инструментом для отслеживания того, почему одни и те же учетные данные приводят к анонимному входу в систему, когда веб-запрос инициируется на другом компьютере в домене?

1 Ответ

0 голосов
/ 23 апреля 2009

Мои знания об аутентификации немного туманные, но если я правильно понял ваше описание:

  • в первом случае вы переходите на локальный хост, который выдает себя за вызывающего, а затем вызывает веб-сервис на другом компьютере. Олицетворение делается на той же машине, что и клиент. Я считаю, что в этом случае олицетворяющее приложение не обязательно должно находиться на компьютере, которому доверяют делегирование (поскольку это уже тот же компьютер, что и клиент).

  • во втором случае вы переходите на другой ПК, который пытается выдать себя за вызывающего абонента при вызове третьего ПК. В этом случае ПК посередине нужно будет доверять для делегирования (чего, вероятно, не будет, если это рабочая станция разработки).

...