Как предотвратить еще одно диалоговое окно входа при загрузке документов Word, Excel через сервер Apache с обычной аутентификацией? - PullRequest
2 голосов
/ 10 ноября 2011

У меня есть интерфейсный сервер Apache, работающий на сервере Windows. Система настроена с NTLM или BASIC Auth (та же проблема с обоими). Загрузка из документов MS Word или Excel прекрасно работает во всех браузерах.

Если я использую Internet-Explorer и загружаю офисный документ, загрузка документа запрашивает другой URL. Просматривая логи доступа apache, я увидел, что внутри есть запросы с OPTIONS и PROPFIND.

Итак, я изменил конфиг, используя это:

  <Location /latest>
    <Limit OPTIONS PROPFIND>
      deny from all
    </Limit>
  </Location>

До сих пор это работало, но с Office 2010 я снова столкнулся с проблемой.

Поиск в Интернете Я нашел эту статью: http://support.microsoft.com/kb/2019105 Поэтому мне не нужно отправлять 403 (отказать во всех отправках 403, я полагаю?), Поэтому я должен отправить 405.

Так можно мне это сделать? Это правильно?

  <Location /latest>
    <Limit OPTIONS PROPFIND>
      redirect 405
    </Limit>
  </Location>

1 Ответ

2 голосов
/ 11 ноября 2011

Наконец, отладив проблему, я обнаружил, что это правильная конфигурация.Чтобы упомянуть, я должен также прояснить, что иногда я устанавливаю аутентификацию в фоновом веб-сервере (IIS 7), а иногда внутри Apache (зависит от ситуации с клиентом).

1.Поскольку Apache - мой внешний прокси-сервер, а внутренний сервер - IIS7, при проверке подлинности IIS7 это сработало:


Отключить поддержку глаголов OPTIONS и PROPFIND - если веб-приложение не предназначено для использования для WebDAVРасширение веб-службы, обеспечивающее функциональность WebDAV, может быть установлено на Запрещено на сервере по умолчанию, на котором выполняется IIS.(Это могут быть серверные расширения WebDAV или FrontPage.) Если сайт предоставляет функциональность WebDAV через другое расширение, поставщик этого расширения должен быть вовлечен.Например, чтобы сделать это с помощью Windows SharePoint Services (WSS), сайт должен быть настроен на отключение интеграции клиента, или глагол OPTIONS и PROPFIND должен быть запрещен.(В IIS 6 удалите глаголы из строки регистрации в файле web.config. В IIS 7.0 используйте вкладку HTTP-глаголы функции фильтрации запросов, чтобы запретить глаголы.) Имейте в виду, что этот подход откроет содержимое в прочитанном-only mode, потому что этот подход отключает функцию прямого редактирования.


from: http://support.microsoft.com/kb/2019105/en-us

Итак, я установил фильтр содержимого для глаголов, и тогда он наконец-то сработал.

2.Затем я протестировал использование NTLM Auth в Apache.Моя исходная конфигурация работала нормально, когда Apache аутентифицировался.

Так что я столкнулся только с проблемой смешивания поведения:)

** EDIT ** Для IIS web.config это должно работать:

<system.webServer>
  <security>
    <requestFiltering>
      <verbs applyToWebDAV="false">
        <add verb="OPTIONS" allowed="false"/>
        <add verb="PROPFIND" allowed="false"/>
      </verbs>
    </requestFiltering>
  </security>
</system.webServer>
...