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

Узнайте, как настроить сервер отчетов для проверки подлинности Kerberos в источниках данных, которые используются в отчетах Power BI для распределенной среды.Learn how to configure your report server for Kerberos authentication to data sources used within your Power BI reports for a distributed environment.

На сервере отчетов Power BI можно размещать отчеты Power BI.Power BI Report Server includes the ability to host Power BI reports. Сервер отчетов поддерживает множество источников данных.Many data sources are supported by your report server. В этой статье описана система SQL Server Analysis Services, но рассматриваемые понятия применимы и к другим источникам данных, например SQL Server.While this article focuses specificly on SQL Server Analysis Services, you can use the concepts and apply that to other data sources such as SQL Server.

Сервер отчетов Power BI, SQL Server и Analysis Services можно установить на одном компьютере. Все эти службы должны работать без дополнительной настройки.You can install Power BI Report Server, SQL Server and Analysis Services on a single machine and everything should work without additional configuration. Это очень удобно для тестовой среды.This is great for a test environment. Если эти службы установить на разных компьютерах, которые называются распределенной средой, то могут возникать ошибки.You may hit errors if you have these services installed on separate machines which is called a distributed environment. В этой среде необходимо использовать проверку подлинности Kerberos.In this environment, you are required to use Kerberos authentication. Обязательной конфигурации, необходимой для реализации этой проверки подлинности, не существует.There is configuration required to implement this.

В частности, необходимо настроить ограниченное делегирование.Specifically, you will need to configure constrained delegation. Возможно, в вашей среде настроен протокол Kerberos, но в ней не настроено ограниченное делегирование.You may have Kerberos configured in your environment but it may not be configured for constrained delegation.

Ошибка при выполнении отчетаError running report

Если сервер отчетов настроен неправильно, может появиться следующая ошибка.If your report server is not configured properly, you may receive the following error.

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. 

В технических сведениях вы увидите следующее сообщение.Within Technical details, you will see the following message.

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.

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

Для работы ограниченного делегирования Kerberos нужно настроить несколько элементов.There are several items that need to be configured in order for Kerberos constrained delegation to work. Эти элементы включают имена субъектов-служб (SPN) и параметры делегирования учетных записей служб.This includes Service Principal Names (SPN) and delegation settings on service accounts.

Примечание

Только администратор домена имеет право настраивать параметры делегирования и имена субъектов-служб.In order to configure SPNs and delegation settings, you need to be a domain administrator.

Потребуется настроить или проверить следующие компоненты.We will need to configure, or validate, the following.

  1. Тип проверки подлинности в конфигурации сервера отчетов.Authentication type within Report Server config.
  2. Имена субъектов-служб для учетной записи службы сервера отчетов.SPNs for the report server service account.
  3. Имена субъектов-служб для службы Analysis Services.SPNs for the Analysis Services service.
  4. Имена субъектов-служб для службы браузера SQL на компьютере Analysis Services.SPNs for the SQL Browser service on the Analysis Services machine. Это касается только именованных экземпляров.This is for named instances only.
  5. Параметры делегирования в учетной записи службы сервера отчетов.Delegation settings on the report server service account.

Тип проверки подлинности в конфигурации сервера отчетовAuthentication type within Report Server configuration

Необходимо настроить тип проверки подлинности для сервера отчетов, чтобы разрешить ограниченное делегирование Kerberos.We need to configure the authentication type for the report server to allow for Kerberos constrained delegation. Это можно сделать в файле rsreportserver.config.This is done within the rsreportserver.config file. По умолчанию этот файл находится в папке C:\Program Files\Microsoft Power BI Report Server\PBIRS\ReportServer.The default location for this file is C:\Program Files\Microsoft Power BI Report Server\PBIRS\ReportServer.

В файле rsreportserver.config найдите раздел Authentication/AuthenticationTypes.Within the rsreportserver.config file, you will want to fine the Authentication/AuthenticationTypes section.

Убедитесь, что в списке типов проверки подлинности первым указан тип RSWindowsNegotiate.We want to make sure that RSWindowsNegotiate is listed and the first in the list of authentication types. Список должен выглядеть так.It should look similar to the following.

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

Если вам потребовалось изменить файл конфигурации, необходимо остановиться и запустить сервер отчетов, чтобы проверить, вступили ли в силу изменения.If you had to change the configuration file, you will want to stop and start the report server to make sure the changes take effect.

Дополнительные сведения см. в статье, посвященной настройке проверки подлинности Windows на сервере отчетов.For more information, see Configure Windows Authentication on the Report Server.

Имена субъектов-служб для учетной записи службы сервера отчетовSPNs for the report server service account

Теперь нужно убедиться, что для сервера отчетов есть доступные допустимые имена субъектов-служб.Next, we need to make sure that the report server has valid SPNs available. Это зависит от учетной записи службы, настроенной для сервера отчетов.This is based on the service account that is configured for the report server.

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

Если для сервера отчетов настроена учетная запись виртуальной службы или учетная запись сетевой службы, вам не нужно ничего делать.If your report server is configured for the Virtual Service Account or Network Service account, you should not have to do anything. Речь идет об учетной записи компьютера.These are in the context of the machine account. По умолчанию у учетной записи компьютера есть имена субъектов-служб HOST.The machine account will have HOST SPNs by default. Эти имена можно использовать для службы HTTP, и их будет использовать сервер отчетов.These will cover the HTTP service and will be used by the report server.

Если вы используете имя виртуального сервера, которое не совпадает с учетной записью компьютера, вы не сможете использовать записи HOST. Поэтому вам нужно вручную добавить имена SPN для имени узла виртуального сервера.If you are using a virtual server name, one that is not same as the machine account, the HOST entries will not cover you and you will need to manually add the SPNs for the virtual server host name.

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

Если сервер отчетов настроен для использования учетной записи пользователя домена, необходимо вручную создать имена субъектов-служб HTTP для этой учетной записи.If your report server is configured to use a domain user account, you will have to manually create HTTP SPNs on that account. Это можно сделать с помощью встроенного средства Windows SetSPN.This can be done using the setspn tool that comes with Windows.

Примечание

Вам потребуются права администратора домена, чтобы создать имя субъекта-службы.You will need domain admin rights in order to create the SPN.

Рекомендуется создать два имени SPN.It is recommended to create two SPNs. Одно — с именем NetBIOS и другое — с полным доменным именем (FQDN).One with the NetBIOS name and the other with the fully qualified domain name (FQDN). Ниже приведен формат имени субъекта-службы.The SPN will be in the following format.

<Service>/<Host>:<port>

Сервер отчетов Power BI будет использовать службу HTTP.Power BI Report Server will use a Service of HTTP. Для имен субъектов-служб HTTP порт не будет отображаться.For HTTP SPNs you will not list a port. Здесь нас интересует служба HTTP.The service we are interested in here is HTTP. Узел имени субъекта-службы — это имя, которое вы используете в URL-адресе.The host of the SPN will be the name you use in a URL. Как правило, это имя компьютера.Typically, this is the machine name. При наличии подсистемы балансировки нагрузки это может быть виртуальное имя.If you are behind a load balancer, this may be a virtual name.

Примечание

Чтобы проверить URL-адрес, просмотрите введенный адрес в строке браузера или откройте вкладку "URL-адрес веб-портала" в диспетчере конфигурации сервера отчетов.You can verify the URL by either looking at what you enter into the address bar of the browser, or you can look in the Report Server Configuration Manager on the Web Portal URL tab.

Если имя компьютера — ContosoRS, имена субъектов-служб будут выглядеть следующим образом.If your machine name is ContosoRS, your SPNs would be the following.

Тип SPNSPN Type SPNSPN
Полное доменное имя (FQDN)Fully Qualified Domain Name (FQDN) HTTP/ContosoRS.contoso.comHTTP/ContosoRS.contoso.com
NetBIOSNetBIOS HTTP/ContosoRSHTTP/ContosoRS

Расположение SPNLocation of SPN

Итак, где разместить имя субъекта-службы?So, where do you put the SPN? Имя субъекта-службы будет размещено в учетной записи службы.The SPN will be placed on whatever you are using for your service account. Если вы используете учетную запись виртуальной или сетевой службы, это будет учетная запись компьютера.If you are using Virtual Service Account or Network Service, this will be the machine account. Хотя мы уже говорили об этом, это нужно будет сделать только для виртуального URL-адреса.Although we mentioned before you should only need to do this for a virtual URL. Если вы используете пользователя домена для учетной записи службы сервера отчетов, поместите имя субъекта-службы в учетную запись этого пользователя домена.If you are using a domain user for the report server service account, then you will place the SPN on that domain user account.

Например, если мы используем учетную запись сетевой службы и имя компьютера ContosoRS, мы поместим имя субъекта-службы в ContosoRS.For example, if we are using the Network Service account and our machine name is ContosoRS, we would place the SPN on ContosoRS.

При использовании учетной записи пользователя домена RSService следует поместить имя субъекта-службы в RSService.If we are using a domain user account of RSService, we would place the SPN on RSService.

Добавление имени субъекта-службы с помощью SetSPNUsing SetSPN to add the SPN

Для добавления имени субъекта-службы можно использовать средство SetSPN.We can use the SetSPN tool to add the SPN. Следуйте приведенному выше примеру с учетной записью компьютера и учетной записью пользователя домена.We will follow the same example as above with the Machine account and the domain user account.

Размещение имени субъекта-службы в учетной записи компьютера (обоих имен: имени субъекта-службы NetBIOS и полного доменного имени) будет выглядеть, как в примере ниже, если использовать виртуальный URL-адрес contosoreports.Placing the SPN on a machine account, for both the FQDN and NetBIOS SPN, would look similar to the following if we were using a virtual URL of contosoreports.

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

Размещение имени субъекта-службы в учетной записи пользователя домена (обоих имен: имени субъекта-службы NetBIOS и полного доменного имени) будет выглядеть, как в примере ниже, если использовать имя компьютера в качестве узла имени субъекта-службы.Placing the SPN on a domain user account, for both the FQDN and NetBIOS SPN, would look similar to the following if you were using the machine name for the host of the SPN.

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

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

Настройка имен субъектов-служб для служб Analysis Services похожа на процедуру, которую вы выполняли для сервера отчетов Power BI.The SPNs for Analysis Services are similar to what we did with Power BI Report Server. Формат имени субъекта-службы немного отличается, если вы используете именованный экземпляр.The format of the SPN is a little different if you have a named instance.

Для Analysis Services используется служба MSOLAPSvc.3.For Analysis Services, we use a Service of MSOLAPSvc.3. Необходимо указать имя экземпляра для расположения порта в имени субъекта-службы.We will specify the instance name for the port location on the SPN. Часть, указывающая на узел, в имени субъекта-службы будет именем компьютера или именем кластера.The host part of the SPN will either be the machine name, or the Cluster virtual name.

Пример имени субъекта-службы Analysis Services будет выглядеть следующим образом.An example of an Analysis Services SPN would look like the following.

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

Размещение имени субъекта-службы также похоже на процедуру размещения для сервера отчетов Power BI.Placement of the SPN is also similar to what was mentioned with Power BI Report Server. Размещение зависит от учетной записи службы.It is based on the service account. Если вы используете локальную систему или сетевую службу, вы используете учетную запись компьютера.If you are using Local System or Network Service, you will be in the context of the machine account. Если вы используете учетную запись пользователя домена для экземпляра Analysis Services, поместите имя субъекта-службы в учетную запись этого пользователя домена.If you are using a domain user account for the Analysis Services instance, you will place the SPN on the domain user account.

Добавление имени субъекта-службы с помощью SetSPNUsing SetSPN to add the SPN

Для добавления имени субъекта-службы можно использовать средство SetSPN.We can use the SetSPN tool to add the SPN. Например, имя компьютера будет ContosoAS.For this example, the machine name will be ContosoAS.

Размещение имени субъекта-службы в учетной записи компьютера (обоих имен: имени субъекта-службы NetBIOS и полного доменного имени) будет выглядеть, как в примере ниже.Placing the SPN on a machine account, for both the FQDN and NetBIOS SPN, would look similar to the following.

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

Размещение имени субъекта-службы в учетной пользователя домена (обоих имен: имени субъекта-службы NetBIOS и полного доменного имени) будет выглядеть, как в примере ниже.Placing the SPN on a domain user account, for both the FQDN and NetBIOS SPN, would look similar to the following.

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

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

Если вы используете именованный экземпляр служб Analysis Services, убедитесь, что у вас есть имя субъекта-службы для службы браузера.If you have an Analysis Services named instance, you also need to make sure you have an SPN for the browser service. Это имя должно быть уникальным для Analysis Services.This is unique to Analysis Services.

Настройка имен субъектов-служб для браузера SQL похожа на процедуру, которую вы выполняли для сервера отчетов Power BI.The SPNs for SQL Browser are similar to what we did with Power BI Report Server.

Для браузера SQL используйте службу MSOLAPDisco.3.For SQL Browser, we use a Service of MSOLAPDisco.3. Необходимо указать имя экземпляра для расположения порта в имени субъекта-службы.We will specify the instance name for the port location on the SPN. Часть, указывающая на узел, в имени субъекта-службы будет именем компьютера или именем кластера.The host part of the SPN will either be the machine name, or the Cluster virtual name. Не нужно указывать значения порта и имени экземпляра.You do not have to specify anything for the instance name or port.

Пример имени субъекта-службы Analysis Services будет выглядеть следующим образом.An example of an Analysis Services SPN would look like the following.

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

Размещение имени субъекта-службы также похоже на процедуру размещения для сервера отчетов Power BI.Placement of the SPN is also similar to what was mentioned with Power BI Report Server. Единственная разница — браузер SQL выполняется под учетной записью локальной системы.The difference here is that SQL Browser always runs under the Local System account. Это означает, что имена SPN всегда будут указываться в учетной записи компьютера.This means that the SPNs will always go on the machine account.

Добавление имени субъекта-службы с помощью SetSPNUsing SetSPN to add the SPN

Для добавления имени субъекта-службы можно использовать средство SetSPN.We can use the SetSPN tool to add the SPN. Например, имя компьютера будет ContosoAS.For this example, the machine name will be ContosoAS.

Размещение имени субъекта-службы в учетной записи компьютера (обоих имен: имени субъекта-службы NetBIOS и полного доменного имени) будет выглядеть, как в примере ниже.Placing the SPN on the machine account, for both the FQDN and NetBIOS SPN, would look similar to the following.

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

Дополнительные сведения см. в статье об обязательном имени субъекта-службы для службы браузера SQL Server.For more information, see An SPN for the SQL Server Browser service is required.

Параметры делегирования в учетной записи службы сервера отчетовDelegation settings on the report server service account

В самом конце нужно настроить параметры делегирования в учетной записи службы сервера отчетов.The last part that we have to configure are the delegation settings on the report server service account. Для этого можно использовать различные средства.There are different tools you can use to perform these steps. Для целей этого документа мы ограничимся средством "Пользователи и компьютеры Active Directory".For the purposes of this document, we will stick with Active Directory Users and Computers.

Сначала откройте в средстве "Пользователи и компьютеры Active Directory" свойства учетной записи службы сервера отчетов.You will need to start by going to the properties of the report server service account within Active Directory Users and Computers. Это будет учетная запись компьютера, если используется учетная запись виртуальной службы или сетевая служба, либо учетная запись пользователя домена.This will either be the machine account, if you used Virtual Service Account or Network Service, or it will be a domain user account.

Необходимо настроить ограниченное делегирование с транзитом протокола.We will want to configure constrained delegation with protocol transiting. При использовании ограниченного делегирования необходимо явно указать службы, для которых настраивается делегирование.With constrained delegation, you need to be explicit with which services we want to delegate to. В список служб, которым можно назначать делегирование сервера отчетов Power BI, будут добавлены имя субъекта-службы Analysis Services и имя субъекта-службы браузера SQL.We will go and add both the Analysis Services service SPN and the SQL Browser SPN to the list that Power BI Report Server can delegate to.

  1. Щелкните правой кнопкой мыши учетную запись службы сервера отчетов и выберите Свойства.Right click on the report server service account and select Properties.

  2. Выберите вкладку Делегирование.Select the Delegation tab.

  3. Выберите параметр Доверять компьютеру делегирование указанных служб.Select Trust this computer for delegation to specified services only.

  4. Выберите Использовать любой протокол проверки подлинности.Select Use any authentication protocol.

  5. В разделе Службы, которым эта учетная запись может предоставлять делегированные учетные данные нажмите кнопку Добавить.Under the Services to which this account can present delegated credentials: select Add.

  6. В открывшемся диалоговом окне выберите Пользователи или компьютеры.In the new dialog, select Users or Computers.

  7. Введите учетную запись службы для Analysis Services и нажмите кнопку ОК.Enter the service account for the Analysis Services service and select Ok.

  8. Выберите имя субъекта-службы, которое вы создали.Select the SPN that you created. Оно будет начинаться с MSOLAPSvc.3.It will begin with MSOLAPSvc.3. Если вы добавили полное доменное имя и имя субъекта-службы NetBIOS, выберите оба имени.If you added both the FQDN and the NetBIOS SPN, it will select both. Вы можете увидеть только одно имя.You may only see one.

  9. Нажмите кнопку ОК.Select OK. Вы должны увидеть имя субъекта-службы в списке.You should see the SPN in the list now.

  10. При необходимости можно выбрать Развернуто, чтобы увидеть в списке имя субъекта-службы NetBIOS и полное доменное имя.Optionally, you can select Expanded to show both the FQDN and NetBIOS SPN in the list.

  11. Еще раз нажмите кнопку Добавить.Select Add again. Теперь добавьте имя субъекта-службы браузера SQL.We will add the SQL Browser SPN now.

  12. В открывшемся диалоговом окне выберите Пользователи или компьютеры.In the new dialog, select Users or Computers.

  13. Введите имя компьютера, на котором работает служба браузера SQL, и нажмите кнопку ОК.Enter the Machine name for the machine the SQL Browser service is on and select Ok.

  14. Выберите имя субъекта-службы, которое вы создали.Select the SPN that you created. Оно будет начинаться с MSOLAPDisco.3.It will begin with MSOLAPDisco.3. Если вы добавили полное доменное имя и имя субъекта-службы NetBIOS, выберите оба имени.If you added both the FQDN and the NetBIOS SPN, it will select both. Вы можете увидеть только одно имя.You may only see one.

  15. Нажмите кнопку ОК.Select Ok. Если установлен флажок Развернуто, диалоговое окно должно выглядеть следующим образом.The dialog should look similar to the following if you checked Expanded.

  16. Нажмите кнопку ОК.Select Ok.

  17. Перезапустите сервер отчетов Power BI.Reboot the Power BI Report Server.

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

После выполнения всех приведенных выше настроек отчет должен отображаться правильно.After all of the above configuration is in place, your report should display properly.

Хотя эта конфигурация должна работать в большинстве случаев при использовании Kerberos, в зависимости от вашей среды может понадобиться другая конфигурация.While this configuration should work in most cases, with Kerberos, there can be different configuration depending on your environment. Если отчет по-прежнему не будет загружаться, обратитесь к администратору домена, чтобы выяснить причину, или обратитесь в службу поддержки.If the report will still not load, you will want to reach out to your domain administrator to investigate further or contact support.

Дальнейшие действияNext steps

Обзор функций администратораAdministrator overview
Установка сервера отчетов Power BIInstall Power BI Report Server

Появились дополнительные вопросы?More questions? Попробуйте задать вопрос в сообществе Power BI.Try asking the Power BI Community