Делегирование удостоверений для служб отчетов SQL Server (SharePoint Server 2010)

 

Применимо к: SharePoint Server 2010

Последнее изменение раздела: 2016-11-30

В этом сценарии настраивается пара серверов служб отчетов SQL Server (SSRS) с балансировкой нагрузки в масштабируемой конфигурации, работающей в интегрированном режиме SharePoint. Серверы настраиваются на прием проверки подлинности Kerberos и делегирование проверки подлинности серверному кластеру SQL Server.

В этом сценарии ферма SharePoint Server и источник данных служб отчетов находятся в одном домене, поэтому настраивается ограниченное делегирование Kerberos для поддержки делегирования удостоверений серверному источнику данных. Если требуется проверка подлинности с источниками данных из других доменов в том же лесу, необходимо настроить базовое (не ограниченное) делегирование Kerberos. Не забывайте, что службы отчетов не используют C2WTS и, следовательно, могут использовать базовое делегирование.

Примечание

При установке на сервере Windows Server 2008 может понадобиться установить следующее исправление для проверки подлинности Kerberos:
Проверка подлинности Kerberos завершается ошибкой с кодом 0X80090302 или 0x8009030f на компьютере под управлением Windows Server 2008 или Windows Vista при использовании алгоритма AES (https://support.microsoft.com/kb/969083/ru-ru)

Зависимости сценария

Контрольный список настройки

Область настройки Описание

Active Directory

Создайте учетную запись службы SSRS

Настройте ограниченное делегирование Kerberos

Службы отчетов SQL Server

Установите и настройте SSRS в режиме масштабирования с балансировкой нагрузки

Измените файл Web.Config

Измените файл ReportingServer.config

Настройте сервер SharePoint Server

Настройте интеграцию служб отчетов

Добавьте в интеграцию сервер отчетов

Настройте параметры сервера по умолчанию

Проверьте настройки

Создайте библиотеку документов для отчетов

Настройте семейство веб-сайтов для служб отчетов

Создайте и опубликуйте тестовый отчет в SQL Server Business Intelligence Studio

Просмотрите тестовый отчет в Internet Explorer

Сведения о среде сценария

Схема среды для сценария

В этом сценарии учетные записи службы пула приложений IIS настроены на делегирование службам отчетов SQL Server (SSRS). Учетная запись службы SSRS настроена на делегирование учетных данных службе SQL Server. Обратите внимание, что службы отчетов SQL Server в интегрированном режиме SharePoint не используют проверку подлинности на основе утверждений внутри фермы и для делегирования проверки подлинности требуется проверка подлинности Kerberos. Дополнительные сведения см. в статье, посвященной проверке подлинности на основе утверждений и службам отчетов.

Междоменное делегирование Kerberos

В этом примере источник данных, к которому подключается SSRS, находится в одном домене с серверами SSRS. В некоторых ситуациях необходимо получить доступ к источникам данных, которые расположены за пределами домена SSRS. Для проверки подлинности с междоменным делегированием необходимо настроить базовое (не ограниченное) делегирование для учетной записи службы SSRS. Не забывайте, что это возможно, так как служба SSRS не работает с утверждениями для службы маркеров Windows (C2WTS), поэтому перенос протокола посредством ограниченного делегирования Kerberos не требуется. Также обратите внимание, что делегирование между лесами невозможно, даже при базовом делегировании.

Пошаговые инструкции по настройке

Настройка DNS

Настройте DNS для группы серверов балансировки сетевой нагрузки SSRS в своей среде. В этом примере имеется два сервера SSRS с балансировкой нагрузки, VMSSRS01 и VMSSRS02, которые разрешают один и тот же виртуальный IP-адрес балансировки сетевой нагрузки (192.168.24.180/24). Виртуальный IP-адрес будет сопоставляться узлу FarmReports с URL-адресом http://FarmReports.

Общие сведения о настройке DNS см. в статье, посвященной управлению записями DNS (Возможно, на английском языке).

Настройте новую запись DNS A для узла SSRS. В этом примере узел FarmReports настроен на разрешение виртуального IP-адреса с балансировкой нагрузки.

Служба каталогов Active Directory

Создание учетной записи службы SSRS

Рекомендуется, чтобы службы отчетов SQL Server выполнялись с собственным удостоверением домена. В этом примере были созданы следующие учетные записи:

Служба Удостоверение службы

Службы отчетов SQL Server

vmlab\svcSQLRS

Настройка имен участников-служб

Для подключения SSRS к внешним источникам данных и проверки подлинности с помощью Kerberos необходимо настроить имена участников-служб для учетных записей веб-службы сервера отчетов, службы диспетчера отчетов и службы для внешнего источника данных. Сведения о настройке и проверке необходимых имен участников-служб для веб-приложений SharePoint Server и учетных записей служб SQL Server см. в сценариях 1 и 2 (Базовая настройка и Проверка подлинности Kerberos для SQL OLTP) этого цикла статей. Для серверов SSRS были определены следующие имена участников-служб:

DNS-узел Удостоверение пула приложений IIS Имена участников-служб

FarmReports.vmlab.local

vmlab\svcSQLRS

HTTP/FarmReports

HTTP/ FarmReports.vmlab.local

В этом примере были выполнены следующие команды:

SetSPN -S HTTP/FarmReports vmlab\svcSQLRS

SetSPN -S HTTP/FarmReports.vmlab.local vmlab\svcSQLRS

Настройка делегирования

Для SSRS необходимо настроить делегирование Kerberos, чтобы делегировать удостоверение клиента серверному источнику данных. В этом примере SSRS запрашивает данные из транзакционной базы данных SQL Server с помощью удостоверения клиента, поэтому требуется делегирование Kerberos. Ограниченное делегирование Kerberos (KCD) необязательно в данном сценарии (поскольку перенос протокола не требуется), но его настройка рекомендуется.

Учетная запись службы SSRS, которая выполняет службы SSRS, должна быть доверенной, чтобы делегировать учетные данные каждой серверной службе. В данном примере необходимы следующие пути делегирования:

Тип участника Имя участника Делегаты для службы

Пользователь

Vmlab\svcPortal10App

HTTP/FarmReports

HTTP/FarmReports.vmlab.local

Пользователь

Vmlab\svcSQLRS

MSSQLSVC/MySqlCluster.vmlab.local:1433

При необходимости создания отчетов относительно источников данных служб аналитики настройте следующие пути делегирования:

Тип участника Имя участника Делегаты для службы

Пользователь

Vmlab\svcSQLRS

MSOLAPSvc.3/MySqlCluster.vmlab.local

Настройка ограниченного делегирования

  1. Откройте свойства объекта Active Directory в меню "Пользователи и компьютеры Active Directory".

  2. Перейдите на вкладку Делегирование.

  3. Выберите параметр Доверять этому пользователю делегирование указанных служб.

    Примечание

    Если для учетной записи службы SSRS необходима проверка подлинности с источниками данных в том же лесу, но за пределами домена сервера SSRS, настройте вместо ограниченного делегирования базовое делегирование. Это можно сделать, выбрав параметр Доверять компьютеру делегирование любых служб. Не забывайте, что делегирование Kerberos между лесами невозможно.

  4. По желанию выберите параметр Использовать любой протокол проверки подлинности. Этот параметр включает перенос протокола.

  5. Нажмите кнопку Добавить, чтобы выбрать участника-службу, для которой может выполняться делегирование.

  6. Выберите Пользователь и компьютеры.

  7. Выберите учетную запись службы, выполняющую службу, для которой необходимо осуществить делегирование. В данном примере это учетная запись службы отчетов SQL Server.

    Примечание

    К выбранной учетной записи службы должно быть применено имя участника-службы. В данном сценарии имя участника-службы для этой учетной записи (HTTP/FarmReports.vmlab.local) было настроено ранее.

  8. Нажмите кнопку ОК. На следующей странице необходимо выбрать имена участников-служб для делегирования.

  9. Выберите службу или щелкните Выбрать все и нажмите кнопку OK.

    Выбранные имена участников-служб отобразятся в списке Службы, с которыми эта учетная запись может использовать делегированные учетные данные:

  10. Повторите эти действия для каждого пути делегирования, определенного ранее в этом разделе. Необходимо настроить делегирование из учетной записи службы отчетов SQL Server в один или несколько серверных источников данных (SQL OLTP или SQL AS в данных сценариях).

    Примечание

    Если для учетной записи службы SSRS необходима проверка подлинности с источниками данных в том же лесу, но за пределами домена сервера SSRS, настройте вместо ограниченного делегирования базовое делегирование. Для этого выберите параметр Доверять компьютеру делегирование любых служб. Не забывайте, что делегирование Kerberos между лесами невозможно.

Проверьте имя участника-службы MSSQLSVC для учетной записи службы, запустив службу на сервере SQL Server (выполняется в сценарии 2)

Проверьте, существует ли имя участника-службы для учетной записи служб аналитики (vmlab\svcSQL), с помощью следующей команды SetSPN:

SetSPN -L vmlab\svcSQL

Должно отображаться следующее:

MSSQLSVC/MySqlCluster MSSQLSVC/MySqlCluster.vmlab.local:1433

Проверьте имя участника-службы MSOLAPSvc.3 для учетной записи службы, выполняющей службу SSAS на сервере служб аналитики SQL Server (выполняется в сценарии 3)

Проверьте, существует ли имя участника-службы для учетной записи службы SQL Server (vmlab\svcSQLAS), с помощью следующей команды SetSPN:

SetSPN -L vmlab\svcSQLAS

Должно отображаться следующее:

MSOLAPSvc.3/MySqlCluster MSOLAPSvc.3/MySqlCluster.vmlab.local

Службы отчетов SQL Server

Установка SharePoint Server 2010

Для служб отчетов SQL Server необходимо, чтобы SharePoint Server 2010 был установлен на всех серверах SSRS для выполнения SSRS в интегрированном режиме SharePoint. Установите SharePoint Server 2010 на всех серверах отчетов и присоедините каждый сервер к ферме SharePoint Server.

Установка и настройка SSRS в режиме масштабирования с балансировкой нагрузки

Подробные пошаговые инструкции по настройке служб отчетов SQL Server в масштабируемой конфигурации с балансировкой нагрузки выходят за рамки этого документа. Подробные инструкции по установке SSRS см. в статье, посвященной развертыванию топологий для служб отчетов в интегрированном режиме SharePoint. После установки SSRS выполните дополнительные действия по настройке SSRS, описанные ниже, для завершения установки.

Изменение файлов Web.config на серверах SSRS

В файлы web.config на всех серверах SSRS необходимо внести изменения, указанные ниже. Файл web.config находится в папке установки SSRS в каталоге Program Files.

Добавьте элемент <machineKey>

Для всех серверов SSRS в конфигурации со сбалансированной нагрузкой должен быть задан одинаковый ключ компьютера. Элемент ключа компьютера должен быть добавлен в файл web.config в качестве дочернего элемента <system.web>. Ниже приведен пример ключа компьютера.

<machineKey
validationKey="54AEBD3BC893726E9B84D30F4970CB58F2086C2DAEE2F8D34A65A0632F4676DDBBC38779F2972C6596931E
13BD07A772BD4B9395BE38A43E461079E45D594E53"
decryptionKey=""
validation="SHA1"
decryption="AES"
/>

Важно!

НЕ ИСПОЛЬЗУЙТЕ ОБРАЗЕЦ КЛЮЧА КОМПЬЮТЕРА ИЗ СРЕДЫ ЭТОГО ПРИМЕРА. Создавайте собственные значения ключа для своей среды.

Изменение файла ReportingServer.config

В файлы ReportingServer.config на всех серверах SSRS необходимо внести изменения, указанные ниже. Файл ReportingServer.config находится в папке установки SSRS в каталоге Program Files.

Включение проверки подлинности Kerberos

Чтобы включить проверку подлинности Kerberos, задайте в качестве типа проверки подлинности значение "RSWindowsNegotiate". Измените элемент <AuthenticationTypes/> и добавьте <RSWindowsNegotiate/>:

<AuthenticationTypes>
    <RSWindowsNegotiate/>
</AuthenticationTypes>

Изменение корневого URL-адреса

Добавьте URL-адрес сервера отчетов в тег <UrlRoot>, который находится в теге <service> файла ReportingServer.Config

<UrlRoot>http://FarmReports/reportserver</UrlRoot>

Настройка BackConnectionHostNames в реестре

Чтобы службы отчетов SQL Server могли выполнять взаимную проверку подлинности на одном компьютере, необходимо настроить обнаружение замыкания NTLM на себя. Вместо отключения обнаружения замыкания на себя рекомендуется настроить значение BackConnectionHostNames в реестре каждого сервера SSRS. Дополнительные сведения о BackConnectionHostNames см. в статье, описывающей действия при получении сообщения об ошибке при использовании служб отчетов SQL Server 2008:.

В данном примере для BackConnectionHostNames необходимо настроить следующие значения:

  • FarmReports

  • FarmReports.vmlab.local

После настройки значений BackConnectionHostNames перезагрузите сервер SSRS.

Настройка сервера SharePoint Server

Параметры конфигурации фермы для SSRS находятся в центре администрирования. Обратите внимание, что в SharePoint Server 2010 не нужно устанавливать отдельный компонент SSRS для администрирования SSRS и веб-частей. Чтобы получить доступ к параметрам фермы SSRS, перейдите в центр администрирования и найдите меню Службы отчетов в разделе Общие параметры приложения.

Предоставление учетной записи служб отчетов разрешения для базы данных контента веб-приложения

При настройке служб отчетов SQL Server в интегрированном режиме SharePoint обязательно предоставьте учетной записи служб отчетов доступ к базам данных контента для веб-приложений, размещающих отчеты. В этом примере учетной записи служб отчетов предоставляется доступ к базе данных контента веб-приложения "portal" с помощью команд Windows PowerShell.

Выполните следующую команду из консоли управления SharePoint 2010:

$w = Get-SPWebApplication -Identity http://portal

$w.GrantAccessToProcessIdentity("vmlab\svcSQLRS")

Настройка интеграции служб отчетов

В диалоговом окне Интеграция службы отчетов укажите URL-адрес сервера отчетов со сбалансированной нагрузкой. Кроме того, выберите параметр Активировать компонент во всех семействах сайтов, чтобы автоматически активировать компонент служб отчетов в семействах веб-сайтов.

Добавление в интеграцию всех серверов отчетов

В диалоговом окне Добавить сервер отчетов в конфигурацию интеграции укажите все узлы группы балансировки сетевой нагрузки служб отчетов. Необходимо открыть это окно для каждого сервера, который добавляется в интеграцию; добавить несколько серверов за одну операцию невозможно.

Настройка параметров сервера по умолчанию

На этом этапе интеграция SSRS уже должна быть настроена. Чтобы проверить настройки, откройте страницу параметров сервера по умолчанию. Для данного примера этот документ изменять не нужно.

Проверка настроек

Создание библиотеки документов для отчетов

Создайте библиотеку документов для размещения отчетов SSRS на сайте SharePoint. В этом примере предполагается, что по адресу http://portal/reports существует библиотека документов с именем "reports".

Проверка параметров семейства веб-сайтов для служб отчетов

В браузере перейдите на страницу параметров сайта, размещающего библиотеку документов для отчетов SSRS. На странице параметров сайта должна отобразиться новая категория с именем Службы отчетов.

Если в списке компонентов семейств веб-сайтов не отображается компонент "Службы отчетов", его необходимо активировать в центре администрирования. Дополнительные сведения см. в статье, посвященной активации компонента сервера отчетов в центре администрирования SharePoint (https://go.microsoft.com/fwlink/?linkid=196878&clcid=0x419).

Щелкните ссылку на параметры сайта служб отчетов, чтобы убедиться, что эти параметры доступны.

Примечание

Для данного примера изменять параметры сайта служб отчетов не нужно.

Создание и публикация тестового отчета в SQL Server Business Development Studio

После настройки SSRS и интеграции с SharePoint Server создайте тестовый отчет, чтобы проверить правильность работы делегирования удостоверений.

  1. Откройте SQL Server Business Intelligence Development Studio. Щелкните Файл, Создать и Проект.

  2. Выберите Мастер проекта сервера отчетов и введите имя проекта.

  3. Настройте новый источник данных. Выберите тип Microsoft SQL Server и нажмите кнопку Изменить.

  4. В поле Свойства подключения введите данные для подключения к демонстрационному кластеру SQL Server, созданному в сценарии 2.

  5. Откройте конструктор запросов, щелкните правой кнопкой мыши окно запроса и выберите команду Добавить таблицу.

  6. Выберите таблицу Sales (созданную в сценарии 2) и щелкните Все столбцы.

  7. Выберите тип табличного отчета.

  8. В данном примере выполняется группировка по регионам; этот шаг можно пропустить.

  9. После создания проекта откройте свойства проекта в меню Проект.

  10. Настройте следующие свойства проекта:

    1. TargetDatasetFolder — задайте путь к папке тестового отчета, созданной ранее

    2. TargetReportFolder — задайте путь к папке тестового отчета, созданной ранее

    3. TargetReportPartFolder — задайте путь к папке тестового отчета, созданной ранее

    4. TargetServerURL — задайте URL-адрес веб-приложения, размещающего отчет

  11. Разверните отчет в библиотеку SharePoint. В меню "Построить" выберите команду Развернуть <имя_проекта>.

  12. При успешном выполнении команды в окне вывода отобразится сообщение об успешном развертывании.

Просмотр тестового отчета в Internet Explorer

Откройте библиотеку документов отчетов, созданную на предыдущих этапах этого сценария, в браузере. Должен отобразиться опубликованный файл отчета. Если отчет не отображается, необходимо активировать компоненты служб отчетов в семействе сайтов. Дополнительные сведения см. в статье, посвященной активации компонента сервера отчетов в центре администрирования SharePoint (https://go.microsoft.com/fwlink/?linkid=196878&clcid=0x419).

Щелкните отчет, чтобы он отобразился в браузере.

Для дополнительной проверки делегирования и подключения к данным измените исходные данные в SQL Server Management Studio и обновите подключение к данным отчета SSRS в браузере. Должен отобразиться отчет, отражающий изменения данных.

Настройка SSL для служб отчетов

В некоторых средах может потребоваться защита обмена данными между интерфейсными веб-серверами и серверами SSRS с помощью SSL. Подробное пошаговое руководство по настройке SSL для служб отчетов выходит за рамки этой статьи, но ниже приводится общее описание необходимых действий:

  1. Настройте каждый сервер отчетов для SSL. См. статью, посвященную настройке сервера отчетов для подключений по протоколу SSL (https://go.microsoft.com/fwlink/?linkid=196881&clcid=0x419).

  2. Обновите файл ReportingServer.config. Измените <UrlRoot> на новый URL-адрес https://.

  3. Перезапустите службы отчетов SQL Server.

  4. В центре администрирования измените параметры интеграции служб отчетов, а также измените URL-адрес веб-службы сервера отчетов на новый URL-адрес https://.

  5. Перезапустите IIS на каждом экземпляре SharePoint Server, который выполняет службу веб-приложения.

Не нужно изменять имена участников-служб, созданные при настройке служб отчетов с помощью HTTP на предыдущих этапах. Имя участника-службы для службы HTTP через протокол SSL остается таким же: HTTP/<служба>. В этом можно убедиться, просмотрев с помощью команды NetMon обмен данными между интерфейсным веб-сервером и сервером служб отчетов.