Назад | Перейти на главную страницу

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

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

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

Я пытался сделать то же самое. Получите доступ к веб-сайту в локальном 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 ..

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

Сообщение об ошибке при попытке получить доступ к серверу локально, используя его полное доменное имя или псевдоним CNAME после установки пакета обновления 1 для Windows Server 2003: «Доступ запрещен» или «Ни один сетевой провайдер не принял указанный сетевой путь»
http://support.microsoft.com/kb/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. Перезагрузите компьютер.

Я могу сказать вам, основываясь на некотором опыте настройки SSO, что 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 или добавление его в доверенную зону.

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