странная проблема с авторизацией IIS для администратора - PullRequest
2 голосов
/ 21 сентября 2009

Я использую VSTS 2008 + C # + .Net 3.5 + IIS 6.0 + Windows Server 2003 Enterprise x64 SP2 + ASP.Net. Я использую любую аутентификацию + режим аутентификации Windows на веб-сайте IIS, и я сопоставляю идентификатор пользователя mycorp \ george в любой учетной записи, а также использую mycorp / george для запуска рабочего процесса IIS. Я также добавил mycorp \ george в группу администраторов компьютера с веб-сервером IIS. «mycorp» - это имя домена (Windows Active Directory), которое использует мой отдел.

Я всегда получал несанкционированную ошибку (401) при доступе к веб-сайту с другого компьютера с использованием учетной записи mycorp \ george (но не при попытке доступа к веб-сайту с локального компьютера для доступа к веб-сайту.) Веб-сайт является веб-сайтом точки обмена используя Share Point Service 3.0.

Я также использовал инструмент аутентификации и авторизации IIS для диагностики, вот инструмент, который я использую http://www.microsoft.com/downloads/details.aspx?familyid=63AAF167-2138-4231-B6ED-56298044BD3B&displaylang=en

Этот инструмент сообщает об аналогичной проблеме аутентификации и авторизации,

У учетной записи mycorp \ george нет доступа к этому компьютеру с правами доступа к сети. Путь: W3SVC / 1670937635 / ROOT AuthType: Anonymous Ответ сервера: HTTP / 1.1 401 Доступ запрещен Узнайте о кодах состояния IIS Путь: W3SVC / 1670937635 / ROOT AuthType: Anonymous

Есть идеи, что не так? Я думаю, что для учетной записи администратора, такой как mycorp \ george, у этой учетной записи не должно быть проблем с привилегиями (проверка подлинности и авторизация).

спасибо заранее, George

Ответы [ 3 ]

2 голосов
/ 21 сентября 2009

Есть несколько возможных проблем:

1. Как настраивается удаленный доступ к локальной учетной записи.

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

Вы можете изменить это в локальной политике безопасности:

  • Выполнить secpol.msc с начала | Run
  • Перейти к локальной политике | Параметры безопасности
  • Выберите параметр «Доступ к сети: модель общего доступа и безопасности для локальных учетных записей»
  • Убедитесь, что для него установлено значение «Классический: локальные пользователи аутентифицируются как сами».

(вкладка объяснения содержит более подробную информацию.)

Находясь в secpol, также проверьте, что вы проверяете учетные записи.

2. Настройки аутентификации МКС

Каковы настройки аутентификации для виртуального каталога? Разрешен ли анонимный доступ? Аутентификация Windows включена?

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

3. Какие разрешения у файловой системы

Имеет ли удаленный пользователь (для проверки подлинности Windows) или удостоверение рабочего процесса (для анонимного) доступ на чтение к объектам файловой системы?

Используйте Process Monitor , чтобы узнать, осуществляется ли доступ к файлам (или делается ли попытка доступа к ним), это должно помочь выяснить, является ли IIS внутренним источником неавторизованной ошибки или использование доступа, запрещенного из файловая система.

4. Вернитесь к ошибке

HTTP / 1.1 401 Доступ запрещен Подробнее о кодах состояния IIS Путь: W3SVC / 1670937635 / ROOT AuthType: Anonymous

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

1 голос
/ 21 сентября 2009
  • У вас есть дубликаты регистров SP (имена участников службы) в AD?
  • У вас есть делегация включена? Причина, по которой я думал, что это может быть проблемой, заключается в том, что вы видите, что он проявляется как 404, потому что в тот момент, когда билет получает одобрение на вашем контроллере домена (контроллере домена), если у вас не включено делегирование, а субъект службы регистрирует его, он делает недействительным билет, следовательно, 404.

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

С наилучшими пожеланиями Рихан Мейд

0 голосов
/ 22 сентября 2009

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

Есть пара быстрых вещей, которые я бы проверил, и я обнаружил похожие проблемы при работе с Microsoft CRM. То, что оба эти продукта разделяют, является интегрированной аутентификацией. Я согласен с вами на 100%, что это не проблема разрешения, но, возможно, это проблема аутентификации.

Я просто хочу прояснить пару фактов, если эти предположения неверны, я, вероятно, верный путь.

  1. Ваш пул приложений работает в сетевой службе
  2. Вам нужна активная проверка подлинности каталога, чтобы веб-сайт работал
  3. Вы получаете доступ к ресурсу на удаленном компьютере. (Если вы обращаетесь к веб-службе на той же машине, но работаете в другом пуле приложений, это считается для удаленной машины)
  4. Вы пытались использовать такие вещи, как аутентификация SQL, но ваше приложение, которое вы используете, не в восторге от этого и отказывается работать?

В последовательности, что я думаю, происходит.

  1. Клиент (браузер) отправляет запрос в IIS через стандартный http, используя учетные данные анонимной по умолчанию.
  2. Сервер отправляет обратно ответ 404 и chalenge, короче, как я понимаю, «уходите, пока вы не дадите мне правильный токен аутентификации, или я считаю его ключом»
  3. Браузер сдается и передает «ключ», который он получил от службы LSASS браузера (некоторые очень сложные разговоры и переговоры с некоторым контроллером домена, чтобы добраться до этого)
  4. Сервер получает новый запрос с ключом, затем передает этот ключ контроллеру домена и спрашивает, является ли ключ действительным, и должен иметь возможность делать все, что он должен делать (разрешения ntfs, все эти хорошие вещи). )
  5. Вплоть до этого момента все персиковое и прекрасно работает, но затем появляется загвоздка.
  6. Чтобы отобразить html для страницы, серверу нужны некоторые удаленные ресурсы (база данных, веб-сервис и т. Д.), Но удаленные ресурсы также настроены на использование встроенной аутентификации и требуют действительный «ключ»
  7. Однако в этот момент этот процесс выполняется на сервере под учетными данными сетевой службы, и предоставление учетных данных сетевой службы «удаленному» компьютеру, на котором есть данные, необходимые для завершения процесса, приведет к отказу в разрешении. потому что, когда учетная запись сетевого сервиса проходит по проводам, она становится учетной записью компьютера, поэтому даже если мы предоставили учетной записи компьютера доступ к ресурсам, это все равно не то, что вам нужно.
  8. Итак, вы можете включить олицетворение в web.config

Возможно, сейчас мне следует остановиться, потому что я основываю это на способе многих предположений.

Быстрый тест

Быстрый способ проверить все, что я только что набрал, - изменить учетные данные, которые запускает пул приложений, на пароль вашего имени пользователя домена, который, как вы знаете, имеет доступ. Это просто для того, чтобы проверить мою гипотезу. Если это работает, я могу быть на правильном пути, но давайте сначала посмотрим, чтобы я не тратил ваше время.

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