Шаблоны MS Office в корпоративной сети (часть 2). Использование WebDAV
В прошлый раз мы разбирали один из возможных способов размещения шаблонов MS Office – в сети, на разделяемом ресурсе. Это во многих отношениях отличный способ – простой, надежный, не требующий специальных знаний и дополнительного ПО. Однако...
В прошлый раз мы разбирали один из возможных способов размещения шаблонов MS Office – в сети, на разделяемом ресурсе. Это во многих отношениях отличный способ – простой, надежный, не требующий специальных знаний и дополнительного ПО. Однако, требования корпоративных стандартов бывают очень различными и не редко использования протокола CIFS/SMB в корпоративной сети может быть очень ограниченным (я например, сталкивался с блокировкой SMB между филиалами).
Один из вариантов обхода такой проблемы предложил Андрей Подкин – размещать шаблоны во внешнем хранилище и использовать клиентское ПО с автоматической синхронизацией содержимого этого хранилища. Способ как минимум интересный! Но вновь есть подозрение, что для более-менее крупной компании он разойдется с корпоративной политикой.
Поэтому сегодня мы рассмотрим другой вариант – распространение шаблонов офиса поверх HTTP/HTTPS, которые, как правило, внутренними политиками не блокируются.
Как можно использовать HTTP для распространения шаблонов?
Мне известны как минимум два способа:
1. Использование протокола WebDAV, реализующего file-styled операции поверх HTTP
2. Создание каталога шаблонов, так, как описано в статье Deploy custom templates in Office 2010
Сегодня мы разберем первый вариант (сам протокол WebDAV мы несколько обойдем стороной, но, надеюсь, сможем вернуться к нему в дальнейшем).
Итак, для того чтобы развернуть решение на базе WebDAV, нам потребуется:
- Сервер с поддержкой WebDAV. Из стандартного и/или доступного бесплатно ПО с нужным функционалом можно назвать:
- SharePoint Foundation – для нашей задачи это слишком громоздкий вариант (да и в принципе, если переходить на использование SharePoint, лучше использовать его механизм работы с шаблонами)
- Расширение WebDav Publishing для IIS (Internet Information Service).
- Клиентская поддержка. Здесь мы обойдемся встроенным в Windows WebDAV-клиентом.
Итак приступим.
Развертывание IIS c поддержкой WebDAV
Сразу оговорюсь, что рассматривать далее мы будем IIS версии 7.x и старше, а значит ОС от Windows 2008 и старше (конкретно у меня скриншоты будут для Windows 2012 и IIS 8, но разница с младшими версиями не принципиальна).
- Запускаем от имени администратора (важно!) Server Manager и выбираем пункт Add Roles and Features (Add Roles).
Вот так он выглядит в Server 2012
А вот так в 2008 R2:
- В списке ролей выбираем Web Server (IIS):
- На шаге выбора сервисов для Web Server Role выбираем 2 пункта: WebDAV Publishing и Windows Authentication
- Запускаем установку и при необходимости перезагружаемся. В результате, в списке установленных ролей у нас появится IIS:
Настройка узла WebDAV с шаблонами
Прежде чем мы пройдём по шагам весь процесс хотелось бы обговорить один важный момент – какой адрес выбрать для размещения сайта с шаблонами?
По умолчанию, IIS предлагает использовать созданный по умолчанию сайт (Default Web Site), который доступен (если вы ничего не меняли в настройках) по адресу https://<имя_сервера>:80 или просто https://<имя_сервера>. Для нас это самый простой и подходящий вариант!
Однако (чисто теоретически – в реальности я не сталкивался с такими проблемами), модуль поддержки WebDAV может начать конфликтовать с другими приложениями, развернутыми на том же сайте. Тогда для распространения шаблонов придется создать отдельный сайт, который, чтобы не конфликтовать с Default Web Site должен иметь хотя бы один отличающийся параметр:
- Host Name. При использовании собственного имени сайта с шаблонами, вам придется добавить его в список узлов вашего DNS-сервера
- Port. В этом случае мы рискуем столкнуться с ситуацией, что выбранный нами порт также будет заблокирован политиками компании.
В общем, у каждого варианта свои особенности. Мы же далее рассмотрим самый первый – размещение на Default Web Site:
- Запускаем Internet Information Services (IIS) Manager.
- Выбираем узел Default Web Site и в контекстном меню пункт Add Virtual Directory…
- Указываем имя виртуальной папки и её физическое расположение (если папки ещё нет, ее можно будет создать прямо из диалога):
- Возвращаемся к узлу Default Web Site, выбираем настройку WebDAV Authoring Rules и в ней, на панели Actions, пункт Enable WebDAV
- Затем переходим на узел Templates, выбираем настройку Authentication и в ней запрещаем анонимную аутентификацию и разрешаем Windows аутентификацию
- Вновь выбираем узел Templates, затем – настройку WebDAV Authoring Rules и в ней, на панели Actions, пункт Add Authoring Rule
В открывшемся диалоге заполняем параметры правила:
- любой контент (All content)
- для всех пользователей (All users)
- доступен на чтение (права Read и Source)
- И наконец, последний, но очень важный шаг – выдача прав на физическую папку, где будут лежать шаблоны. На самом деле, в данном конкретном примере этот шаг – лишний, т.к. права на чтение и так есть у доменной группы Users, но мы все равно дадим права группе Everyone
Осталось выложить в папку MS Office Templates заготовленные нами шаблоны и серверная часть окажется настроенной.
Настройка WebDAV на клиенте
Как уже было сказано ранее, для доступа к развернутому ранее WebDAV ресурсу мы будем использовать встроенные возможности Windows. Всю работу выполняют служба WebClient (или Веб-клиент в русской версии) и драйвер MRXDAV.SYS. Это сочетание позволяет получить очень интересный результат:
все обращения к сетевому ресурсу
\\<имя_компьютера>@<порт>\<путь>\DavWWWRoot
будут заменяться на WebDAV-запросы к узлу
https://<имя_компьютера>:<порт>/<путь>
Наши шаблоны лежат на сервере с именем VM1, порт сайта 80, виртуальная папка называется Templates, а значит строка обращения будет такой
Этот путь мы укажем в настройках Office, так как делали это в предыдущей статье используя либо прямую правку реестра, либо настройки GPO (увы, по непонятной причине, указать такой путь через UI Office у меня не вышло):
Обновляем политику (или просто перелогиниваемся) и получаем наш законный результат:
Ура!!!
Неужели все получилось? В принципе, да, хотя имеется ряд потенциальных (и не только потенциальных) проблем… Но о них (и конечно, способах их решения) мы поговорим в следующей части – эта и так получилась очень большой.
Комментарии 3
Для оценки решения необязательно поднимать свой сервер WebDAV. Можно воспользоваться Яндекс.Диск.
К сожалению, Яндекс.Диск пока не работает для ПДД, поэтому как production-решение это пока не подойдет (даже, если у организации ПДД).
Совершенно, верно. Аналогично, можно использовать любой WebDAV совместимый облачный хостинг (есть у SkyDrive, на сколько знаю, есть у DropBox, и нескольких других).
Единственный момент, который вызывает смущение - это настройка авторизации. По умолчанию, встроенный WebDAV-клиент использует NTLM-аутентификацию (собственно поэтому я обращал внимание на настройки аутентификации). Если хостинг этого не поддерживает, то остаются варианты:
Ну и пробовать, пробовать, пробовать...
В догонку к описанному в статье способу еще две статьи (они не совсем форматны для EJ, поэтому, скорее всего, перенесены не будут):