Настройка HTTP-доступа к службам Analysis Services в службах Internet Information Services (IIS) 7.0
Доступ по протоколу HTTP к службам Analysis Services можно включить путем настройки MSMDPUMP.dll — расширения ISAPI, которое работает на сервере IIS и обеспечивает обмен данными между клиентским приложением и сервером служб Analysis Services. Такой подход предоставляет альтернативные способы подключения к службам Analysis Services, если применяемое решение бизнес-аналитики требует получения следующих возможностей.
Доступ клиентов осуществляется по Интернету или экстрасети с учетом ограничений на то, какие порты могут быть включены.
Клиентские запросы на установление соединений поступают из не заслуживающих доверия доменов, находящихся в той же сети.
Клиентское приложение работает в сетевой среде, где разрешены соединения HTTP, но не разрешены соединения TCP/IP.
Требуются методы проверки подлинности, отличные от встроенной безопасности Windows. В частности, при настройке служб Analysis Services для доступа по протоколу HTTP можно использовать анонимные соединения и обычную проверку подлинности. Проверка подлинности с помощью дайджестов, форм и ASP.NET не поддерживается.
Клиентские приложения не могут использовать клиентские библиотеки служб Analysis Services (в качестве примера можно указать приложение Java, работающее на сервере UNIX). Если нет возможности использовать для доступа к данным клиентские библиотеки служб Analysis Services, то можно использовать для доступа SOAP и XML/A по прямому HTTP-соединению с экземпляром служб Analysis Services.
В этом разделе описана настройка HTTP-доступа к экземпляру служб Analysis Services с помощью служб IIS 7.0. Эти инструкции действуют для любой поддерживаемой версии или выпуска экземпляра служб Analysis Services, взаимодействующего с IIS 7.0, включая SQL Server 2012, SQL Server 2008 R2, SQL Server 2008 и SQL Server 2005. Доступ по протоколу HTTP поддерживается для табличного режима и серверов с многомерными режимами.
![]() |
---|
В рамках всего стека бизнес-аналитики поддерживаются различные методологии проверки подлинности для клиентских и серверных приложений. Дополнительные сведения об этих сценариях, поддерживаемых в рамках доступа к службам Analysis Services по протоколу HTTP, см. в разделе Проверка подлинности для бизнес-аналитики Майкрософт и делегирование идентификаторов. |
Этот раздел включает следующие подразделы:
Общие сведения
Предварительные требования
Копирование файла MSMDPUMP.dll в пап��у на веб-сервере
Создайте пул приложений и виртуальный каталог на сервере IIS
Настройте проверку подлинности в службе IIS и добавьте расширение
Измените файл MSMDPUMP.INI для задания целевого сервера
Проверка конфигурации
Общие сведения
MSMDPUMP является расширением ISAPI, которое загружается в среду IIS и обеспечивает перенаправление данных экземпляру служб Analysis Services, который находится на том же компьютере или на удаленном компьютере в том же домене. В процессе настройки данного расширения ISAPI создается конечная точка HTTP для экземпляра служб Analysis Services.
Для каждой конечной точки HTTP необходимо создать и настроить по одному виртуальному каталогу. Для каждой конечной точки потребуется собственный набор файлов MSMDPUMP для каждого экземпляра служб Analysis Services, соединение с которым требуется обеспечить. В файле конфигурации из этого набора файлов задается имя экземпляра служб Analysis Services, используемого для каждой конечной точки HTTP.
При работе с сервером IIS MSMDPUMP обеспечивает подключение к службам Analysis Services с помощью поставщика OLE DB служб Analysis Services по протоколу TCP/IP. Чтобы попытка установления собственного подключения завершилась удачно, службы Analysis Services и службы IIS должны функционировать в одном и том же домене или в разных, но доверенных доменах.
Когда MSMDPUMP подключается к службам Analysis Services, используется идентификатор пользователя Windows. Эта учетная запись должна быть либо анонимной учетной записью (если выполнена настройка виртуального каталога для анонимных соединений), либо учетной записью пользователя Windows. Эта учетная запись должна иметь соответствующие права доступа к данным на сервере и в базе данных служб Analysis Services.
![]() |
---|
Не забудьте разблокировать порты в брандмауэре Windows, чтобы он разрешал клиентские подключения к удаленному серверу служб Analysis Services. Дополнительные сведения см. в разделе Настройка брандмауэра Windows на разрешение доступа к службам Analysis Services. |
В следующей таблице приведены дополнительные соображения, касающиеся разрешения доступа по протоколу HTTP в различных сценариях.
Сценарий |
Конфигурация |
---|---|
Размещение служб IIS и Analysis Services на одном и том же компьютере |
Это простейший вариант настройки конфигурации, поскольку позволяет использовать конфигурацию по умолчанию (где именем сервера является localhost), локальный поставщик OLE DB служб Analysis Services и встроенную безопасность Windows с NTLM. При условии, что клиент находится в том же домене, проверка подлинности становится прозрачной для пользователя без каких-либо дополнительных действий с вашей стороны. |
Размещение служб IIS и Analysis Services на разных компьютерах |
Для реализации этой топологии необходимо установить поставщик OLE DB для служб Analysis Services на веб-сервере. Необходимо также изменить файл msmdpump.ini, чтобы указать местоположение экземпляра служб Analysis Services на удаленном компьютере. В этой топологии происходит добавление шага проверки подлинности в виде двойного транзитного перехода, при котором учетные данные должны передаваться от клиента к веб-серверу, а затем к внутреннему серверу служб Analysis Services. При использовании учетных данных Windows и NTLM возвращается ошибка, поскольку NTLM не допускает делегирования учетных данных клиента второму серверу. Чаще всего используемое решение заключается в использовании обычной проверки подлинности по протоколу SSL, но для этого при доступе к виртуальному каталогу MSMDPUMP пользователь должен указывать имя пользователя и пароль. Более простой подход может состоять во включении протокола Kerberos и настройке ограниченного делегирования служб Analysis Services, чтобы пользователи могли получать прозрачный доступ к службам Analysis Services. Обдумайте, какие порты следует разблокировать в брандмауэре Windows. Необходимо открыть порты на обоих серверах, чтобы разрешить доступ к веб-приложению на сервере IIS, а также доступ к службам Analysis Services на удаленном сервере. |
Клиентские соединения осуществляются из недоверенных доменов или из соединений экстрасети. |
Клиентские соединения из недоверенных доменов влекут дополнительные ограничения на процесс проверки подлинности. По умолчанию в службах Analysis Services используется встроенная проверка подлинности Windows, которая требует, чтобы пользователи находились в том же домене, что и сервер. Если имеются пользователи экстрасети, подключающиеся к серверу IIS из-за пределов домена, то при настройке сервера с параметрами по умолчанию для таких пользователей будет выводиться сообщение об ошибке. В качестве обходного пути решения проблемы можно настроить подключение пользователей из экстрасети по виртуальной частной сети (VPN) с использованием учетных данных домена. Однако лучшим вариантом может быть включение обычной проверки подлинности и SSL на веб-сайте служб IIS. |
Предварительные требования
На веб-сервере IIS необходимо установить поставщик служб Analysis Services OLE DB (MSOLAP) для SQL Server 2012. Поставщик можно скачать из пакета компонентов SQL Server 2012.
Шаг 1. Копирование файлов MSMDPUMP в папку на веб-сервере
Каждая создаваемая конечная точка HTTP должна иметь собственный набор файлов MSMDPUMP. В этом шаге необходимо скопировать исполняемый объект MSMDPUMP, файл конфигурации и файлы ресурсов из программных папок служб Analysis Services в новую папку виртуального каталога, создаваемого в файловой системе компьютера, на котором работает сервер IIS.
Диск должен быть отформатирован для работы с файловой системой NTFS. Путь к создаваемой папке не должен содержать пробелов.
Найдите файлы, которые необходимо скопировать: MSMDPUMP.DLL, MSMDPUMP.INI и папка Resources, содержащая файлы языковых ресурсов. Эти файлы находятся в папке <диск>:\Program Files\Microsoft SQL Server\<экземпляр>\OLAP\bin\isapi.
Примечание
Обратите внимание, что в последних версиях SQL Server формат имени экземпляра был изменен. Если используется версия SQL Server 2012, экземпляр по умолчанию имеет имя MSAS11.MSSQLSERVER.
Скопируйте все эти файлы в папку \OLAP\bin\isapi, включая содержимое вложенной папки Resources.
Создайте новую папку на веб-сервере: <диск>:\inetpub\wwwroot\OLAP
Вставьте ранее скопированные файлы в эту новую папку.
Проверьте, чтобы в папке \inetpub\wwwroot\OLAP на веб-сервере содержалось следующие: файлы MSMDPUMP.DLL и MSMDPUMP.INI, а также папку Resources. Структура папки должна выглядеть следующим образом:
<диск>:\inetpub\wwwroot\OLAP\MSMDPUMP.dll
<диск>:\inetpub\wwwroot\OLAP\MSMDPUMP.ini
<диск>:\inetpub\wwwroot\OLAP\Resources
Шаг 2. Создайте пул приложений и виртуальный каталог на сервере IIS
Затем создайте пул приложений и виртуальный каталог, который представляет конечную точку для этого средства приема-передачи.
Создание пула приложений
Запустите диспетчер IIS. Нажмите кнопку Пуск, выберите команду Выполнить и введите Inetmgr.
Щелкните правой кнопкой Пулы приложений и выберите Добавить пул приложений. Создайте пул приложений с именем OLAP, используя платформу .NET Framework v2.0.50727 в классическом режиме управляемого конвейера.
По умолчанию службы IIS создают пулы приложений с использованием сетевой службы в качестве удостоверения безопасности. Чтобы изменить только что созданное удостоверение пула приложений, щелкните правой кнопкой мыши элемент OLAP и выберите Дополнительные параметры.
В удостоверении выберите встроенную учетную запись, указанную в службах IIS. В зависимости от используемой версии Windows, это элемент Network Service (как показано на снимке экрана) или ApplicationPoolIdentity. Нажмите кнопку Изменить, относящуюся к этому свойству, чтобы заменить встроенную учетную запись пользовательской учетной записью, которую необходимо использовать.
По умолчанию в 64-разрядной версии операционной системы служба IIS задает для свойства Разрешить 32-разрядные приложения значение false. Если файл msmdpump.dll скопирован из 64-разрядной установки служб Analysis Services, то настройка модуля MSMDPUMP на 64-разрядном сервере IIS уже выполнена правильно. Если двоичные файлы MSMDPUMP скопированы из 32-разрядной установки, задайте для этого параметра значение true. Проверьте это свойство, чтобы убедиться, что оно задано правильно.
Создание виртуального каталога
В диспетчере IIS откройте окно Веб-сайты, щелкните правой кнопкой мыши Веб-сайт по умолчанию (или веб-сайт, используемый для доступа к модулю заполнения) и выберите Добавить виртуальный каталог.
В качестве псевдонима введите OLAP.
В разделе «Физический путь» нажмите кнопку обзора и перейдите к каталогу «C:\inetpub\wwwroot\OLAP». Нажмите кнопку ОК.
Щелкните правой кнопкой вновь созданный виртуальный каталог OLAP и выберите команду Преобразовать в приложение.
В диалоговом окне «Добавление приложения» рядом с пулом приложений нажмите кнопку Выбор и выберите пул приложений OLAP, созданный в предыдущем разделе.
Дважды нажмите кнопку ОК, чтобы подтвердить изменения и преобразовать приложение.
Шаг 3. Настройте проверку подлинности в службе IIS и добавьте расширение
На этом шаге продолжается настройка только что созданного виртуального каталога служб SSAS. Должен быть указан метод проверки подлинности, а затем добавлена схема скриптов. Поддерживаемые методы проверки подлинности для доступа к службам Analysis Services по протоколу HTTP:
Проверка подлинности Windows (Kerberos или NTLM)
Анонимная проверка подлинности
Обычная проверка подлинности
Анонимная проверка подлинности часто используется во время начального тестирования, поскольку при этом настройка является несложной и это позволяет быстро проверить возможность подключения к службам Analysis Services по протоколу HTTP. С помощью всего лишь нескольких шагов можно назначить уникальную учетную запись пользователя в качестве идентификатора, предоставить этой учетной записи разрешения в службах Analysis Services, воспользоваться учетной записью для проверки возможности доступа к данным в клиентском приложении, а затем отключить анонимную проверку подлинности по завершении тестирования.
Анонимную проверку подлинности можно также использовать в рабочей среде, если пользователи не имеют учетных записей Windows, но следуют рекомендациям, блокируя распространение разрешений на хост-систему, приведенным в следующей статье: Включение анонимной проверки подлинности (IIS 7). Проверка подлинности должна задаваться применительно к виртуальному каталогу, а не к родительскому веб-сайту, что позволяет дополнительно понизить уровень доступа учетной записи.
Если включена анонимная проверка подлинности, то любое соединение пользователя с конечной точкой HTTP получает разрешение на подключение в качестве анонимного пользователя. Тем самым исключается возможность проводить аудит отдельных соединений пользователя или применять идентификатор пользователя для выборки данных из модели. Вполне очевидно, что применение анонимной проверки подлинности затрагивает все, начиная от проектирования модели и заканчивая обновлением данных и доступом к ним. Но если пользователи не имеют имен входа пользователей Windows, с которых можно было бы начать, то единственным вариантом становится применение анонимной учетной записи.
Проверка подлинности Windows считается наиболее безопасной и предусматривает применение существующей инфраструктуры для сетей, в которых используется Active Directory. Чтобы проверка подлинности Windows использовалась эффективно, ее должны поддерживать все браузеры, клиентские и серверные приложения. Это наиболее безопасный режим, который рекомендуется использовать. Но для этого серверу IIS требуется доступ к контроллеру домена Windows, который может проверить подлинность идентификатора пользователя, запрашивающего подключение.
В таких топологиях, которые предусматривают размещение служб Analysis Services и IIS на разных компьютерах, приходится решать проблемы двойного транзитного перехода, которые возникают в связи с необходимостью делегировать проверку учетных данных пользователя второй службе на удаленном компьютере, как правило, путем включения служб Analysis Services для ограниченного делегирования Kerberos. Дополнительные сведения см. в разделе Настройка служб Analysis Services для ограниченного делегирования Kerberos.
Обычная проверка подлинности используется при наличии идентификаторов Windows, но когда пользовательские запросы на подключение поступают из не заслуживающих доверия доменов, что не позволяет применять делегированные или олицетворяемые подключения. Обычная проверка подлинности позволяет указать учетные данные пользователя и пароль в строке подключения. Для подключения к службам Analysis Services вместо контекста безопасности текущего пользователя применяются учетные данные из строки подключения. Службы Analysis Services поддерживают только проверку подлинности Windows, поэтому любые передаваемые им учетные данные должны представлять пользователя (или группу) Windows, который является членом домена, где размещены службы Analysis Services.
Задание типа проверки подлинности и добавление сопоставления скриптов
В диспетчере служб IIS откройте Веб-сайты, откройте Веб-сайт по умолчанию и выберите виртуальный каталог OLAP.
Дважды щелкните Проверку подлинности в разделе IIS на главной странице.
Если используется встроенная безопасность Windows, выберите пункт Проверка подлинности Windows.
Можно также включить обычную проверку подлинности, если клиентские и серверные приложения находятся в разных доменах. В этом режиме пользователь должен вводить имя пользователя и пароль. Имя пользователя и пароль передаются через HTTP-соединение в службы IIS. При подключении к MSMDPUMP в службах IIS предпринимается попытка олицетворения пользователя с применением предоставленных учетных данных, но эти учетные данные не будут делегированы в службы Analysis Services. Вместо этого необходимо передать через подключение допустимое имя пользователя и пароль, как описано в шаге 6 этого документа.
Примечание по безопасности
Следует учитывать, что при построении системы, в которой пароль передается по каналу связи, необходимо предусмотреть способ защиты этого канала. Службы IIS предоставляют набор средств, помогающих защитить канал. Дополнительные сведения см. в разделе Как выполнить настройку SSL для работы с IIS 7.
Отключите анонимную проверку подлинности, если используется проверка подлинности Windows или обычная проверка подлинности. Если включена анонимная проверка подлинности, в службах IIS она всегда используется в первую очередь, даже если включены другие методы проверки подлинности.
При анонимной проверке подлинности средство приема-передачи (msmdpump.dll) работает в качестве учетной записи пользователя, установленной для анонимного пользователя. Нет никакого различия между пользователем, подключающимся к службам IIS, и пользователем, подключающимся к службам Analysis Services. По умолчанию в службах IIS используется учетная запись IUSR, но можно сменить ее на учетную запись пользователя домена, которая имеет разрешения в сети. Эту функциональную возможность всегда следует использовать, если службы IIS и Analysis Services установлены на разных компьютерах.
Инструкции по настройке учетных данных для анонимной проверки подлинности см. в разделе Анонимная проверка подлинности.
Примечание по безопасности
Наиболее велика вероятность того, что с анонимной проверкой подлинности придется столкнуться в чрезвычайно строго контролируемой среде, где предоставление доступа или отказ в доступе для пользователей осуществляется с помощью списков управления доступом в файловой системе. Рекомендации см. в разделе Включение анонимной проверки подлинности (IIS 7).
Щелкните виртуальный каталог OLAP, чтобы открыть главную страницу. Дважды щелкните Сопоставления обработчика.
Щелкните правой кнопкой мыши в любом месте страницы и выберите Добавить карту скриптов. В диалоговом окне «Добавление карты скриптов» укажите *.dll как путь запроса, задайте c:\inetpub\wwwroot\OLAP\msmdpump.dll в качестве исполняемого файла и введите значение имени OLAP.
Щелкните Ограничения запроса.
Проверьте, что на вкладке «Команды» выбрано Все команды. Дважды нажмите кнопку OК, чтобы завершить добавление сопоставления скрипта.
Получив приглашение разрешить расширение ISAPI, нажмите кнопку Да.
Шаг 4. Измените файл MSMDPUMP.INI для задания целевого сервера
В файле MSMDPUMP.INI указан экземпляр служб Analysis Services, к которому подключается MSMDPUMP.DLL. Этот экземпляр может быть локальным или удаленным, установленным как применяемый по умолчанию или как именованный.
Откройте файл msmdpump.ini, расположенный в папке «C:\inetpub\wwwroot\OLAP», и изучите содержимое этого файла. Оно должно иметь следующий вид:
<ConfigurationSettings>
<ServerName>localhost</ServerName>
<SessionTimeout>3600</SessionTimeout>
<ConnectionPoolSize>100</ConnectionPoolSize>
</ConfigurationSettings>
Если экземпляр служб Analysis Services, для которого настраивается доступ через HTTP, расположен на локальном компьютере и является экземпляром по умолчанию, нет причин для изменения этого параметра. В противном случае необходимо указать имя сервера (например, <ServerName>ADWRKS-SRV01</ServerName>). Для сервера, который установлен как именованный экземпляр, не забудьте добавить имя экземпляра (например, <ServerName>ADWRKS-SRV01\Tabular</ServerName>).
По умолчанию службы Analysis Services прослушивают порт TCP/IP 2383. Если вы установили службы Analysis Services как экземпляр по умолчанию, вам не требуется указать порт в параметре <ServerName>, так как службы Analysis Services автоматически прослушивают порт 2383. Тем не менее необходимо разрешить входящие соединения с этим портом в брандмауэре Windows. Дополнительные сведения см. в разделе Настройка брандмауэра Windows на разрешение доступа к службам Analysis Services.
Если именованный или применяемый по умолчанию экземпляр служб Analysis Services настроен на прослушивание фиксированного порта, необходимо добавить номер этого порта к имени сервера (например, <имя_сервера>AW-SRV01:55555</имя_сервера>). Необходимо также разрешить входящие подключения для этого порта в брандмауэре Windows.
Шаг 5. Предоставление разрешений на доступ к данным
Как было отмечено выше, необходимо предоставить разрешения на доступ к данным применительно к экземпляру служб Analysis Services. Каждый объект базы данных имеет роли, предоставляющие заданный уровень разрешений (на чтение или чтение и запись), а каждая роль имеет членов, состоящих из идентификаторов пользователей Windows.
Для задания разрешений можно использовать среду SQL Server Management Studio. В Database | Roles можно создавать роли, указывать разрешения базы данных, назначать членство для учетных записей пользователей или групп Windows, затем предоставлять разрешения на чтение или запись применительно к конкретным объектам. Как правило, для клиентских подключений, в которых используются, но не обновляются данные модели, достаточно разрешений на чтение применительно к кубу.
Назначение ролей зависит от того, как настроена проверка подлинности.
Анонимная проверка подлинности |
Добавьте к списку Membership учетную запись, указанную в окне Изменение учетных данных анонимной проверки подлинности в службах IIS. Дополнительные сведения см. в разделе Анонимная проверка подлинности, |
Проверка подлинности Windows |
Добавьте к списку Membership учетные записи пользователей или групп Windows, запрашивающих данные служб Analysis Services с помощью олицетворения или делегирования. |
Обычная проверка подлинности |
Добавьте к списку Membership учетные записи пользователей или групп Windows, которые будут передаваться в строке подключения. |
Дополнительные сведения о предоставлении разрешений см. в разделе Авторизация доступа к объектам и операциям (службы Analysis Services).
Шаг 6. Проверка конфигурации
Синтаксис строки подключения для MSMDPUMP определен — это URL-адрес файла MSMDPUMP.dll.
Если веб-приложение прослушивает фиксированный порт, добавьте номер порта к имени сервера или IP-адресу (например, http://my-web-srv01:8080/OLAP/msmdpump.dll или http://123.456.789.012:8080/OLAP/msmdpump.dll).
Чтобы быстро проверить соединение, можно открыть его в Microsoft Excel или среде SQL Server Management Studio.
Тестирование подключений с использованием Excel
На вкладке «Данные» в Excel в разделе «Получение внешних данных» щелкните Из других источников, затем выберите Из служб Analysis Services, чтобы запустить мастер подключения к данным.
В поле «Имя сервера» введите HTTP-адрес расширения msmdpump: http://my-web-srv01/OLAP/msmdpump.dll.
В качестве значения «Учетные данные входа в систему» выберите Проверка подлинности Windows, если применяется встроенная безопасность Windows, NTLM или анонимный пользователь.
Применительно к обычной проверке подлинности выберите Использовать следующее имя пользователя и пароль, затем укажите учетные данные, применяемые для входа в систему. Предоставленные вами учетные данные будут переданы в службы Analysis Services в строке подключения.
Тестирование подключений с использованием среды SQL Server Management Studio
В диалоговом окне «Подключение к серверу» среды Management Studio в качестве типа сервера выберите Службы Analysis Services. В поле «Имя сервера» введите HTTP-адрес расширения msmdpump: http://my-web-srv01/OLAP/msmdpump.dll.
Проверка подлинности должна быть задана как проверка подлинности Windows, а лицом, использующим среду Management Studio, должен быть администратор служб Analysis Services.
Тестирование подключений с использованием AMO
Можно проверить доступ по HTTP программным путем с использованием объектов AMO, подставляя URL-адрес конечной точки вместо имени сервера. Дополнительные сведения см. в разделе Сообщение на форуме («Как синхронизировать базы данных служб SSAS 2008 R2 по HTTPS через границы домена или леса и брандмауэра»).
Ниже приведен пример строки подключения, который иллюстрирует синтаксис для доступа по HTTP(S) с использованием обычной проверки подлинности:
Data Source=https://<servername>/olap/msmdpump.dll; Initial Catalog=AdventureWorksDW2012; Integrated Security=Basic; User ID=XXXX; Password=XXXXX;
Дополнительные сведения о настройке подключения программным путем см. в разделе Установка безопасных соединений в ADOMD.NET.
В качестве конечного шага следует обязательно провести более строгое тестирование с использованием клиентского компьютера, эксплуатируемого в сетевой среде, из которого исходят запросы на подключение.
См. также
Основные понятия
Настройка брандмауэра Windows на разрешение доступа к службам Analysis Services
Авторизация доступа к объектам и операциям (службы Analysis Services)
Другие ресурсы
Сообщение на форуме («Доступ по http с использованием msmdpump и обычной проверки подлинности»)