Проверка подлинности Windows для IIS на локальном сервере с полным URL

9

У меня есть веб-приложение, настроенное в IIS 7, настроенное для проверки подлинности Windows. Я могу аутентифицироваться на машине через ее полный URL-адрес с любой другой машины, и он использует соответствующий домен. Тем не менее, когда я пытаюсь подключиться к машине с самого себя через полностью определенный домен (либо в другой службе, либо просто через URL в IE), приглашение Windows Login пытается принудительно использовать компьютер в качестве домена, а не правильный домен для входа в систему. Попытка указать домен с domain\usernameили username@domain.comне удается.

Я должен отметить, что просмотр веб-приложения через localhostна машине работает, но использование полного site.company.com/webserviceстиля URL не работает на локальной машине, потому что домен входа не так. Что я могу сделать, чтобы он использовал правильный домен для входа?

roviuser
источник

Ответы:

11

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

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

Смотрите следующую страницу поддержки Microsoft .

Если страница пропадает, я сделал следующее (что он рекомендует в вышеприведенном сообщении в блоге)

  1. Откройте редактор реестра, набрав regedit в разделе «Выполнить».
  2. Перейдите к HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ MSV1_0
  3. Щелкните правой кнопкой мыши MSV1_0, нажмите «Создать» и выберите его, чтобы сделать его многострочным.
  4. Введите BackConnectionHostNames в качестве имени записи и дважды щелкните по нему, чтобы изменить его.
  5. Введите имена хостов, которые вам нужно использовать (например, code-journey.com).
  6. Перезапустите службу IISAdmin («Пуск» -> «Администрирование» -> «Службы»).

Надеюсь это поможет.

CMB ..

Крейг Бейкер
источник
4

Это связано с функцией безопасности, известной как LoopbackCheck.

Сообщение об ошибке при попытке доступа к серверу локально с использованием его полного доменного имени или псевдонима CNAME после установки пакета обновления 1 (SP1) для Windows Server 2003: «Доступ запрещен» или «Ни один сетевой поставщик не принял указанный сетевой путь»
http://support.microsoft .com / кб / 926642

Есть два решения:

Метод 1 (рекомендуется): создайте имена хостов локального органа безопасности, на которые можно ссылаться в запросе проверки подлинности NTLM. Чтобы сделать это, выполните следующие действия для всех узлов на клиентском компьютере:

  1. Нажмите кнопку Пуск, выберите пункт Выполнить, введите regedit и нажмите кнопку ОК.
  2. Найдите и щелкните следующий раздел реестра: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ MSV1_0
  3. Щелкните правой кнопкой мыши MSV1_0, выберите пункт «Создать», а затем выберите «Многостроковое значение».
  4. В столбце Имя введите BackConnectionHostNames и нажмите клавишу ВВОД.
  5. Щелкните правой кнопкой мыши BackConnectionHostNames и выберите команду «Изменить».
  6. В поле «Значение» введите CNAME или псевдоним DNS, который используется для локальных общих папок на компьютере, и нажмите кнопку ОК.

    Примечание. Введите каждое имя хоста в отдельной строке.

    Примечание. Если запись реестра BackConnectionHostNames существует как тип REG_DWORD, необходимо удалить запись реестра BackConnectionHostNames.

  7. Закройте редактор реестра и перезагрузите компьютер.

Способ 2. Отключите проверку петли проверки подлинности, задав для параметра реестра DisableLoopbackCheck в разделе реестра HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa значение 1. Чтобы установить для параметра реестра DisableLoopbackCheck значение 1, выполните следующие действия на клиентском компьютере:

  1. Нажмите кнопку Пуск, выберите пункт Выполнить, введите regedit и нажмите кнопку ОК.
  2. Найдите и щелкните следующий раздел реестра: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa
  3. Щелкните правой кнопкой мыши Lsa, выберите пункт «Новый», а затем нажмите «Значение DWORD».
  4. Введите DisableLoopbackCheck и нажмите клавишу ВВОД.
  5. Щелкните правой кнопкой мыши DisableLoopbackCheck и выберите команду Изменить.
  6. В поле Значение введите 1 и нажмите кнопку ОК.
  7. Выход из редактора реестра.
  8. Перезагрузите компьютер.
Грег Аскью
источник
Что сделал трюк для меня был 2 - й вариант - DisableLoopbackCheckingвHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
Икар
1

Исходя из некоторого опыта настройки единого входа, я могу сказать, что IE будет автоматически передавать билет Kerberos для входа в систему, только если сайт и клиент находятся в интрасети вместе или если сайт находится в доверенной зоне. Если IE видит http://site.company.com/webservice, он будет предполагать, что сайт находится в Интернете и не будет передавать учетные данные для входа в систему.

По этой ссылке есть полезная информация о IIS, IE и Kerberos. http://blogs.msdn.com/b/friis/archive/2009/12/31/things-to-check-when-kerberos-authentication-fails-using-iis-ie.aspx

Мы обнаружили две вещи, которые позволяют разрешить полное доменное имя в интрасети, предоставляя веб-серверу сертификат и используя SSL, или добавляя его в доверенную зону.

Надеюсь, это поможет в связи с вашей настройкой.

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