Невозможно авторизоваться с другим именем сервера - PullRequest
1 голос
/ 09 февраля 2009

У меня есть веб-служба, работающая в IIS 6.0 в Windows 2003. В этом режиме аутентификации используется встроенная защита Windows (анонимный доступ отключен), и авторизация выполняется с помощью диспетчера авторизации и хранилища авторизации XML. Мой тестовый пользователь - это пользователь домена (фактически, администратор) с членством в авторизованной роли.

Я тестирую это (пока) на веб-сервере (localhost) и использую (пока) Internet Explorer для доступа к веб-службе (.asmx).

Я могу успешно открыть страницу веб-службы (wsdl) через localhost, например:

http://localhost:8080/MyService/MyService.asmx

При использовании этого URL встроенная проверка подлинности Windows завершается успешно (без вывода сообщений), и AzMan успешно разрешил мне доступ к службе. То же самое относится и к имени сервера:

http://myserver:8080/MyService/MyService.asmx

Теперь мне нужно использовать внешнее имя хоста (www.mysite.no) для доступа к сервису (чтобы заставить ssl работать с сертификатом, выданным этому месту). Для этого я добавляю имя хоста в мой файл HOSTS, например:

127.0.0.1   www.mysite.no

... затем введите это в IE:

http://www.mysite.no:8080/MyService/MyService.asmx

В таком случае происходит сбой авторизации. Я получаю окно входа в IE / Windows и трижды ввожу правильные учетные данные. Тогда я получаю 401.1:

HTTP Error 401.1 - Unauthorized: Access is denied due to invalid credentials.
Internet Information Services (IIS)

Как авторизация через AzMan зависит от имени хоста?

Редактировать : У меня есть основания полагать, что AzMan не имеет к этому никакого отношения - похоже, аутентификация не удалась.

Я воспроизвел проблему на другом сервере. Суть в том, что доступ к localhost через запись в файле локального хоста каким-то образом портит встроенную аутентификацию Windows между браузером и IIS.

Я обошел проблему, теперь мое любопытство - это все, что осталось ...

Ответы [ 2 ]

1 голос
/ 09 февраля 2009

Включить аудит ошибок входа в систему аудита и проверить журнал событий безопасности на хосте.
1) На веб-сервере перейдите в Панель управления, Администрирование, Локальная политика безопасности. 2) Перейти на локальные политики, политики аудита. Добавьте ошибку для «событий входа в систему аудита».
3) Закройте ГМК. Откройте командную строку и введите gpupdate. 4) перейдите к http://www.mysite.no. Вы получите ошибку снова. 5) Запустить просмотрщик событий (панель управления, инструменты администратора, просмотрщик событий). Перейдите к журналу событий безопасности и найдите ошибки входа в систему. Они должны сообщить вам что-то описательное, например, «пользователю не был предоставлен указанный тип входа». К сожалению, тип входа в систему не является описательным; тип входа 2 - интерактивный (локальный), 3 - «доступ к этому компьютеру по сети», 5 - «вход как услуга» (служба NT, а не служба WCF). Требуемые права могут быть предоставлены в локальной политике безопасности.

Кроме того, проверьте, включен ли в IE прокси-сервер. Если ваш трафик направляется на прокси, возможно, что прокси не поддерживает NTLM. Добавьте хост в качестве исключения прокси во время тестирования с использованием IE.

1 голос
/ 09 февраля 2009

Мое первое предположение - это не имя хоста.

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

Сначала установите для сайта IIS анонимный доступ и убедитесь, что вы можете запустить веб-службу. Это подтвердит, что вы обращаетесь к нужному веб-сайту IIS, и это действительно сузит проблему авторизации.

Кроме того, проверьте учетные данные пула приложений и параметры безопасности в папке файлов, содержащей веб-службу, поскольку они могут быть участниками.

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