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

Аутентификация с помощью Exchange WebDAV / Outlook Web Access

У меня проблемы с доступом к Exchange WebDav / OWA с любого компьютера, кроме сервера IIS и Exchange.

У нас есть небольшой домен разработки под управлением Windows 2003. Один сервер (который мы назовем IIS_box) запускает IIS и Exchange 2003. IIS_Box имеет настройку Outlook Web Access на /Exchange/ виртуальный каталог, разрешения запрещают анонимным пользователям и включены как базовая проверка подлинности, так и встроенная проверка подлинности Windows.

В IIS_Box доступ к http://IIS_Box.ourDomain.net/Exchange/ представляет пользователям приложение OWA без запроса имени пользователя / пароля. Однако собираясь http: // IIS_Box / Exchange / пользователю предоставляется диалоговое окно имени пользователя и пароля.

Если пользователь не вводит имя пользователя и пароль, он получает 401.2 Unauthorized: Access denied due to server configuration ошибка. Если пользователь пытается ввести имя пользователя и пароль, он получает 401.1 Unauthorized: Access is denied due to invalid credentials.

С любого другого компьютера пользователю предоставляется диалоговое окно имени пользователя и пароля, и он получает сообщение об ошибке 401 независимо от того, используют ли они полное доменное имя или просто имя сервера.

Кто-нибудь знает, в чем проблема и как ее исправить?

РЕДАКТИРОВАТЬ:

Следуя из Джефф ответ ниже клиенты используют IE7.

В IIS_Box добавление URL без полного доменного имени в зону «интрасеть» на IIS_Box позволяет этому URL работать. Фантастика!

Однако добавление как простых URL-адресов, так и URL-адресов с полным доменным именем в зону «интрасеть» на других машинах - нет. Теперь URL-адреса отображаются как «Локальная интрасеть», но я все еще получаю запросы базовой аутентификации и ошибки 401.

Если я захожу в настройки IE клиента, в разделе Advanced..Security, если я ОТКЛЮЧИТЬ «Включить встроенную проверку подлинности Windows» все работает нормально (если это в зоне интрасети). Мне не нужно было отключать этот параметр в IIS_Box!

Однако он отлично работает только в IE, а не в коде с использованием интерфейса WebDAV - я пробовал запускать / отлаживать в Visual Studio и как скомпилированный / автономный исполняемый файл. А-а!

РЕДАКТИРОВАТЬ 2:

После некоторые копать, похоже, что «Включить встроенную проверку подлинности Windows» на самом деле разрешает взаимодействие между Kerberos и NTLM (по крайней мере, в IE7).

Когда он отключен, используется NTLM.
Если он включен, Kerberos или NTLM запрещены. Если Kerberos не поддерживается, используется NTLM. Если поддерживается но терпит неудачу, NTLM - это не используемый.

Итак, я собираюсь посмотреть, есть ли у нас проблемы с Kerberos ...

Какой браузер? Я знаю, что в IE правила о том, что такое «интрасеть» и, следовательно, разрешено отправлять NTLM-аутентификацию на веб-сервер, довольно византийские.

В принципе, я подозреваю конфигурацию клиентского браузера, особенно если браузер - это IE. Браузер должен полагать, что URL-адрес является «внутренней сетью» для отправки учетных данных NTLM; если он считает, что URL не интранет, он даже не будет пытаться отправить NTLM-аутентификацию.

Оказывается, у меня было две проблемы.

  1. Веб-сайт не был распознан как «сайт интрасети» и, следовательно, он, вероятно, вообще не пытался выполнять аутентификацию Kerberos / NTLM.

  2. У нас были ошибки Kerberos за кулисами. Я обращался к IIS_Box, и в журнале событий были ошибки с KRB_AP_ER_MODIFIED сообщение о host/IIS_Box.ourDomain.net не соответствует HTTP/IIS_Box.ourDomain.net.

Первая проблема была исправлена ​​по предложению Джеффа - спасибо.
Второй был отсортирован путем выполнения следующей команды на контроллере домена:
    setspn -A HTTP/IIS_Box.ourDomain.net IIS_Box

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