Настройка Kerberos для использования отчетов Power BI

Узнайте, как настроить сервер отчетов для проверки подлинности Kerberos в источниках данных, используемых в отчетах Power BI для распределенной среды.

Примечание.

Это видео может использовать более ранние версии Сервер отчетов Power BI.

Сервер отчетов Power BI включает возможность размещения отчетов Power BI. Многие источники данных поддерживаются сервером отчетов. Хотя в этой статье основное внимание уделяется SQL Server Analysis Services, вы можете использовать основные понятия и применять их к другим источникам данных, таким как SQL Server.

Вы можете установить Сервер отчетов Power BI, SQL Server и Службы Analysis Services на одном компьютере, и все должно работать без дополнительной настройки. Это отлично подходит для тестовой среды. Если эти службы установлены на отдельных компьютерах, которые называются распределенной средой, могут возникнуть ошибки. В этой среде необходимо использовать проверку подлинности Kerberos. Для реализации этого требуется конфигурация.

В частности, необходимо настроить ограниченное делегирование. Возможно, в вашей среде настроен Kerberos, но он не может быть настроен для ограниченного делегирования.

Отчет об ошибке

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

Something went wrong.

We couldn't run the report because we couldn't connect to its data source. The report or data source might not be configured correctly. 

В технической информации вы увидите следующее сообщение.

We couldn't connect to the Analysis Services server. The server forcibly closed the connection. To connect as the user viewing the report, your organization must have configured Kerberos constrained delegation.

Screenshot of Power B I Reports showing error message related to issues connecting with Analysis Services server.

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

Для работы ограниченного делегирования Kerberos необходимо настроить несколько элементов. Сюда входят имена субъектов-служб (SPN) и параметры делегирования учетных записей служб.

Примечание.

Чтобы настроить имена субъектов-служб и параметры делегирования, необходимо быть администратором домена.

Нам потребуется настроить или проверить следующее.

  1. Тип проверки подлинности в конфигурации сервера отчетов.
  2. Имена субъектов-служб для учетной записи службы сервера отчетов.
  3. Имена субъектов-служб для службы Analysis Services.
  4. Имена субъектов-служб для службы браузера SQL на компьютере служб Analysis Services. Это только для именованных экземпляров.
  5. Параметры делегирования в учетной записи службы сервера отчетов.

Тип проверки подлинности в конфигурации сервера отчетов

Необходимо настроить тип проверки подлинности для сервера отчетов, чтобы разрешить ограниченное делегирование Kerberos. Это делается в файле rsreportserver.config . Расположение по умолчанию для этого файла C:\Program Files\Microsoft Power BI Report Server\PBIRS\ReportServer.

В файле rsreportserver.config необходимо выполнить штраф в разделе Authentication/AuthenticationTypes .

Мы хотим убедиться, что RSWindowsNegotiate указан и первый в списке типов проверки подлинности. Он должен выглядеть так.

<AuthenticationTypes>
    <RSWindowsNegotiate/>
    <RSWindowsNTLM/>
</AuthenticationTypes>

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

Дополнительные сведения см. в статье Configure Windows Authentication on the Report Server.

Имена субъектов-служб для учетной записи службы сервера отчетов

Затем необходимо убедиться, что у сервера отчетов есть допустимые имена субъектов-служб. Это основано на учетной записи службы, настроенной для сервера отчетов.

Учетная запись виртуальной службы или сетевая служба

Если сервер отчетов настроен для учетной записи виртуальной службы или учетной записи сетевой службы, вам не нужно ничего делать. Они находятся в контексте учетной записи компьютера. Учетная запись компьютера по умолчанию будет содержать имена субъектов-служб HOST. Они будут охватывать службу HTTP и будут использоваться сервером отчетов.

Если вы используете имя виртуального сервера, одно из которых не совпадает с учетной записью компьютера, записи HOST не будут охватывать вас, и вам потребуется вручную добавить имена субъектов-служб для имени узла виртуального сервера.

Учетная запись пользователя домена

Если сервер отчетов настроен на использование учетной записи пользователя домена, вам потребуется вручную создать HTTP-имена субъектов-служб в этой учетной записи. Это можно сделать с помощью средства setpn, которое поставляется с Windows.

Примечание.

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

Рекомендуется создать два субъекта-службы. Один с именем NetBIOS и другим с полным доменным именем (FQDN). Имя участника-службы будет иметь следующий формат.

<Service>/<Host>:<port>

Сервер отчетов Power BI будет использовать службу HTTP. Для VPN-служб HTTP вы не будете перечислять порт. Служба, заинтересованная здесь, — HTTP. Узел имени участника-службы будет именем, используемым в URL-адресе. Как правило, это имя компьютера. Если вы находитесь за подсистемой балансировки нагрузки, это может быть виртуальное имя.

Примечание.

Вы можете проверить URL-адрес, просмотрев адресную строку браузера или просмотрите url-адрес сервера отчетов на вкладке URL-адреса веб-портала.

Если имя компьютера — ContosoRS, имена субъектов-служб будут следующими.

Тип имени участника-службы имя участника-службы
Полное доменное имя (FQDN) HTTP/ContosoRS.contoso.com
NetBIOS HTTP/ContosoRS

Расположение имени участника-службы

Итак, где вы положили имя участника-службы? Имя участника-службы будет помещено на все, что вы используете для учетной записи службы. Если вы используете учетную запись виртуальной службы или сетевую службу, это будет учетная запись компьютера. Хотя мы упоминание перед тем, как это необходимо сделать только для виртуального URL-адреса. Если вы используете пользователя домена для учетной записи службы сервера отчетов, вы будете размещать имя участника-службы в этой учетной записи пользователя домена.

Например, если мы используем учетную запись сетевой службы, а имя компьютера — ContosoRS, мы поместим имя субъекта-службы в ContosoRS.

Если мы используем учетную запись пользователя домена RSService, мы поместим имя участника-службы в RSService.

Добавление имени участника-службы с помощью SetSPN

Мы можем использовать средство SetSPN для добавления имени участника-службы. Мы будем следовать тому же примеру, что и выше, с учетной записью компьютера и учетной записью пользователя домена.

Размещение имени субъекта-службы в учетной записи компьютера для полного доменного имени и имени участника-службы NetBIOS будет выглядеть примерно так, если бы мы использовали виртуальный URL-адрес contosoreports.

Setspn -a HTTP/contosoreports.contoso.com ContosoRS
Setspn -a HTTP/contosoreports ContosoRS

Размещение имени участника-службы в учетной записи пользователя домена для полного доменного имени и имени участника-службы NetBIOS будет выглядеть примерно так, если вы использовали имя компьютера для узла имени участника-службы.

Setspn -S HTTP/ContosoRS.contoso.com RSService
Setspn -S HTTP/ContosoRS RSService

Имена субъектов-служб для службы Analysis Services

Имена субъектов-служб для служб Analysis Services похожи на то, что мы сделали с Сервер отчетов Power BI. Формат имени участника-службы немного отличается, если у вас есть именованный экземпляр.

Для служб Analysis Services мы используем службу MSOLAPSvc.3. Мы укажем имя экземпляра для расположения порта в имени участника-службы. Часть узла имени субъекта-службы будет либо именем компьютера, либо виртуальным именем кластера.

Пример имени субъекта-службы Analysis Services будет выглядеть следующим образом.

Тип Формат
Экземпляр по умолчанию MSOLAPSvc.3/ContosoAS.contoso.com
MSOLAPSvc.3/ContosoAS
Именованный экземпляр MSOLAPSvc.3/ContosoAS.contoso.com:INSTANCENAME
MSOLAPSvc.3/ContosoAS:INSTANCENAME

Размещение имени субъекта-службы также похоже на то, что упоминание было Сервер отчетов Power BI. Он основан на учетной записи службы. Если вы используете локальную систему или сетевую службу, вы будете находиться в контексте учетной записи компьютера. Если вы используете учетную запись пользователя домена для экземпляра служб Analysis Services, вы поместите имя участника-службы в учетную запись пользователя домена.

Добавление имени участника-службы с помощью SetSPN

Мы можем использовать средство SetSPN для добавления имени участника-службы. В этом примере имя компьютера будет ContosoAS.

Размещение имени субъекта-службы в учетной записи компьютера для полного доменного имени и имени участника-службы NetBIOS будет выглядеть следующим образом.

Setspn -S MSOLAPSvc.3/ContosoAS.contoso.com ContosoAS
Setspn -S MSOLAPSvc.3/ContosoAS ContosoAS

Размещение имени участника-службы в учетной записи пользователя домена для полного доменного имени и имени участника-службы NetBIOS будет выглядеть следующим образом.

Setspn -S MSOLAPSvc.3/ContosoAS.contoso.com OLAPService
Setspn -S MSOLAPSvc.3/ContosoAS OLAPService

Имена субъектов-служб для службы браузера SQL

Если у вас есть именованный экземпляр служб Analysis Services, необходимо также убедиться, что у вас есть имя участника-службы для службы браузера. Это уникально для служб Analysis Services.

Имена субъектов-служб для браузера SQL похожи на то, что мы сделали с Сервер отчетов Power BI.

Для браузера SQL мы используем службу MSOLAPDisco.3. Мы укажем имя экземпляра для расположения порта в имени участника-службы. Часть узла имени субъекта-службы будет либо именем компьютера, либо виртуальным именем кластера. Вам не нужно указывать ничего для имени экземпляра или порта.

Пример имени субъекта-службы Analysis Services будет выглядеть следующим образом.

MSOLAPDisco.3/ContosoAS.contoso.com
MSOLAPDisco.3/ContosoAS

Размещение имени субъекта-службы также похоже на то, что упоминание было Сервер отчетов Power BI. Разница в том, что браузер SQL всегда выполняется под учетной записью локальной системы. Это означает, что имена субъектов-служб всегда будут идти в учетной записи компьютера.

Добавление имени участника-службы с помощью SetSPN

Мы можем использовать средство SetSPN для добавления имени участника-службы. В этом примере имя компьютера будет ContosoAS.

Размещение имени субъекта-службы в учетной записи компьютера для полного доменного имени и имени участника-службы NetBIOS будет выглядеть следующим образом.

Setspn -S MSOLAPDisco.3/ContosoAS.contoso.com ContosoAS
Setspn -S MSOLAPDisco.3/ContosoAS ContosoAS

Дополнительные сведения см. в разделе "Имя субъекта-службы" для службы браузера SQL Server.

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

Последняя часть, которую необходимо настроить, — это параметры делегирования в учетной записи службы сервера отчетов. Существуют различные инструменты, которые можно использовать для выполнения этих действий. В целях этого документа мы будем придерживаться Пользователи и компьютеры Active Directory.

Сначала необходимо перейти к свойствам учетной записи службы сервера отчетов в Пользователи и компьютеры Active Directory. Это будет учетная запись компьютера, если вы использовали учетную запись виртуальной службы или сетевую службу, или это будет учетная запись пользователя домена.

Мы хотим настроить ограниченное делегирование с транзитом протокола. При ограниченном делегировании необходимо быть явным, с которыми мы хотим делегировать службы. Мы добавим имя субъекта-службы Analysis Services и имя участника-службы браузера SQL в список, в который Сервер отчетов Power BI можно делегировать.

  1. Щелкните правой кнопкой мыши учетную запись службы сервера отчетов и выберите "Свойства".

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

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

  4. Выберите "Использовать любой протокол проверки подлинности".

  5. В разделе служб, в которых эта учетная запись может представлять делегированные учетные данные: нажмите кнопку "Добавить".

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

  7. Введите учетную запись службы для службы Analysis Services и нажмите кнопку "ОК".

  8. Выберите созданное имя участника-службы. Начинается с MSOLAPSvc.3. Если вы добавили полное доменное имя и имя участника-службы NetBIOS, он выберет оба. Вы можете увидеть только один.

  9. Нажмите ОК. Теперь вы увидите имя участника-службы в списке.

  10. При необходимости можно выбрать развернутое имя , чтобы отобразить полное доменное имя и имя участника-службы NetBIOS в списке.

  11. Снова нажмите кнопку "Добавить ". Теперь мы добавим имя субъекта-службы браузера SQL.

  12. В новом диалоговом окне выберите "Пользователи" или "Компьютеры".

  13. Введите имя компьютера, в котором находится служба браузера SQL, и нажмите кнопку "ОК".

  14. Выберите созданное имя участника-службы. Начинается с MSOLAPDisco.3. Если вы добавили полное доменное имя и имя участника-службы NetBIOS, он выберет оба. Вы можете увидеть только один.

  15. Щелкните ОК. Если вы проверка развернутый элемент, диалоговое окно должно выглядеть примерно так, как показано ниже.

    Screenshot of Power B I Reports showing Delegation tab of Properties window.

  16. Щелкните ОК.

  17. Перезагрузите Сервер отчетов Power BI.

Запуск отчета Power BI

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

Screenshot of Power B I Reports showing sample Dashboard view.

Хотя эта конфигурация должна работать в большинстве случаев с Kerberos, в зависимости от среды может быть другая конфигурация. Если отчет по-прежнему не загружается, вам потребуется обратиться к администратору домена, чтобы изучить дополнительные сведения или обратиться в службу поддержки.

Есть еще вопросы? Задайте их в сообществе Power BI.