Configurare Kerberos per l'uso di report di Power BIConfigure Kerberos to use Power BI reports

Informazioni su come configurare il server di report per l'autenticazione Kerberos nelle origini dati usate all'interno dei report di Power BI per un ambiente distribuito.Learn how to configure your report server for Kerberos authentication to data sources used within your Power BI reports for a distributed environment.

Il Server di Report di Power BI offre la possibilità di ospitare report di Power BI.Power BI Report Server includes the ability to host Power BI reports. Il server di report supporta molte origini dati.Many data sources are supported by your report server. Questo articolo illustra in dettaglio SQL Server Analysis Services, ma è possibile usare i concetti e applicarli ad altre origini dati come 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.

È possibile installare il Server di Report di Power BI, SQL Server e Analysis Services in un singolo computer e tutto dovrebbe funzionare senza alcuna configurazione aggiuntiva.You can install Power BI Report Server, SQL Server and Analysis Services on a single machine and everything should work without additional configuration. Questo è ideale per ambienti di testing.This is great for a test environment. Potrebbero verificarsi degli errori se si installano questi servizi in computer separati, cioè in un ambiente distribuitoYou may hit errors if you have these services installed on separate machines which is called a distributed environment. dove è necessario usare l'autenticazione Kerberos,In this environment, you are required to use Kerberos authentication. la cui implementazione richiede una configurazione.There is configuration required to implement this.

In modo specifico, sarà necessario configurare la delega vincolata.Specifically, you will need to configure constrained delegation. Kerberos potrebbe essere già configurato nell'ambiente, ma non per la delega vincolata.You may have Kerberos configured in your environment but it may not be configured for constrained delegation.

Errore durante l'esecuzione del reportError running report

Se il server di report non è configurato correttamente, si potrebbe ricevere l'errore seguente.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. 

Tra i dettagli tecnici, verrà visualizzato il messaggio seguente.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.

Configurazione della delega vincolata di KerberosConfiguring Kerberos constrained delegation

Per il corretto funzionamento della delega vincolata occorre configurare diversi elementi,There are several items that need to be configured in order for Kerberos constrained delegation to work. tra cui i nomi SPN e le impostazioni di delega negli account di servizio.This includes Service Principal Names (SPN) and delegation settings on service accounts.

Nota

Per configurare i nomi SPN e le impostazioni di delega, è necessario essere un amministratore di dominio.In order to configure SPNs and delegation settings, you need to be a domain administrator.

È necessario configurare o convalidare gli elementi seguenti.We will need to configure, or validate, the following.

  1. Tipo di autenticazione nel file di configurazione del server di report.Authentication type within Report Server config.
  2. Nomi SPN per l'account del servizio del server di report.SPNs for the report server service account.
  3. Nomi SPN per il servizio Analysis Services.SPNs for the Analysis Services service.
  4. Nomi SPN per il servizio SQL Browser nel computer di Analysis ServicesSPNs for the SQL Browser service on the Analysis Services machine. (solo per le istanze denominate).This is for named instances only.
  5. Impostazioni di delega nell'account del servizio del server di report.Delegation settings on the report server service account.

Tipo di autenticazione nel file di configurazione del server di reportAuthentication type within Report Server configuration

Per autorizzare la delega vincolata di Kerberos è necessario configurare il tipo di autenticazione del server di reportWe need to configure the authentication type for the report server to allow for Kerberos constrained delegation. all'interno del file rsreportserver.config,This is done within the rsreportserver.config file. il cui percorso predefinito è 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.

All'interno del file rsreportserver.config, cercare la sezione Authentication/AuthenticationTypes.Within the rsreportserver.config file, you will want to fine the Authentication/AuthenticationTypes section.

Assicurarsi che RSWindowsNegotiate sia elencato per primo nell'elenco dei tipi di autenticazione.We want to make sure that RSWindowsNegotiate is listed and the first in the list of authentication types. L'URL dovrebbe essere simile a quello indicato di seguito.It should look similar to the following.

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

Se è stato necessario modificare il file di configurazione, è consigliabile arrestare e avviare il server di report per assicurarsi che le modifiche abbiano effetto.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.

Per altre informazioni, vedere Configurare l'autenticazione di Windows in un server di report.For more information, see Configure Windows Authentication on the Report Server.

Nomi SPN per l'account del servizio del server di reportSPNs for the report server service account

Successivamente, è necessario assicurarsi che nel server di report siano disponibili nomi SPN validiNext, we need to make sure that the report server has valid SPNs available. in base all'account del servizio configurato per il server di report.This is based on the service account that is configured for the report server.

Account del servizio virtuale o Servizio di reteVirtual Service Account or Network Service

Se il server di report è configurato per l'Account del servizio virtuale o Servizio di rete, non è necessario eseguire alcuna operazione,If your report server is configured for the Virtual Service Account or Network Service account, you should not have to do anything. perché sono contestuali nell'account del computerThese are in the context of the machine account. che, per impostazione predefinita, contiene nomi SPN HOSTThe machine account will have HOST SPNs by default. che coprono il servizio HTTP e saranno usati dal server di report.These will cover the HTTP service and will be used by the report server.

Se si usa un nome del server virtuale, che non sia lo stesso dell'account del computer, le voci HOST non offriranno copertura e sarà necessario aggiungere manualmente i nomi SPN per il nome host del server virtuale.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.

Account utente di dominioDomain user account

Se il server di report è configurato per usare un account utente di dominio, è necessario creare manualmente i nomi SPN HTTP su tale account.If your report server is configured to use a domain user account, you will have to manually create HTTP SPNs on that account. A tale scopo, usare lo strumento setspn fornito con Windows.This can be done using the setspn tool that comes with Windows.

Nota

Per creare il nome SPN sono necessari diritti di amministratore di dominio.You will need domain admin rights in order to create the SPN.

È consigliabile creare due nomi SPN:It is recommended to create two SPNs. uno con il nome NetBIOS e l'altro con il nome di dominio completo (FQDN).One with the NetBIOS name and the other with the fully qualified domain name (FQDN). Il nome SPN deve essere nel formato seguente.The SPN will be in the following format.

<Service>/<Host>:<port>

Il Server di Report di Power BI userà un servizio HTTP.Power BI Report Server will use a Service of HTTP. Per i nomi SPN HTTP non verrà elencata una porta.For HTTP SPNs you will not list a port. In questo caso, l'obiettivo è il servizio HTTP.The service we are interested in here is HTTP. L'host del nome SPN sarà il nome usato in un URL,The host of the SPN will be the name you use in a URL. in genere il nome del computer.Typically, this is the machine name. Se si è dietro un servizio di bilanciamento del carico, può trattarsi di un nome virtuale.If you are behind a load balancer, this may be a virtual name.

Nota

È possibile verificare l'URL esaminando il contenuto immesso nella barra degli indirizzi del browser oppure guardando in Gestione configurazione del Server di report nella scheda URL del portale Web.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.

Se il nome del computer è ContosoRS, il nome SPN sarà il seguente.If your machine name is ContosoRS, your SPNs would be the following.

Tipo SPNSPN Type NOME SPNSPN
Nome di dominio completo (FQDN)Fully Qualified Domain Name (FQDN) HTTP/ContosoRS.contoso.comHTTP/ContosoRS.contoso.com
NetBIOSNetBIOS HTTP/ContosoRSHTTP/ContosoRS

Percorso del nome SPNLocation of SPN

Il percorso in cui inserire il nome SPNSo, where do you put the SPN? è in qualsiasi account di servizio in uso.The SPN will be placed on whatever you are using for your service account. Se si usa l'Account del servizio virtuale o Servizio di rete, sarà l'account del computer.If you are using Virtual Service Account or Network Service, this will be the machine account. Come già accennato, tuttavia, questa operazione è necessaria solo per un URL virtuale.Although we mentioned before you should only need to do this for a virtual URL. Se si usa un utente di dominio per l'account del servizio del server di report, si inserirà il nome SPN nell'account utente di tale dominio.If you are using a domain user for the report server service account, then you will place the SPN on that domain user account.

Ad esempio, se si usa l'account del servizio di rete e il nome del computer è ContosoRS, si inserirà il nome SPN in ContosoRS.For example, if we are using the Network Service account and our machine name is ContosoRS, we would place the SPN on ContosoRS.

Se si usa un account utente di dominio di RSService, si inserirà il nome SPN in RSService.If we are using a domain user account of RSService, we would place the SPN on RSService.

Uso di SetSPN per aggiungere il nome SPNUsing SetSPN to add the SPN

È possibile usare lo strumento SetSPN per aggiungere il nome SPN.We can use the SetSPN tool to add the SPN. Si seguirà lo stesso esempio precedente con l'account del computer e con l'account utente di dominio.We will follow the same example as above with the Machine account and the domain user account.

L'inserimento del nome SPN in un account del computer, sia per il nome di dominio completo che per il nome SPN di NetBIOS, avrebbe un aspetto simile al seguente se si stesse usando un URL virtuale per 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

L'inserimento del nome SPN in un account utente di dominio, sia per il nome di dominio completo che per il nome SPN di NetBIOS, avrebbe un aspetto simile al seguente se si stesse usando il nome del computer per l'host del nome SPN.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

Nomi SPN per il servizio Analysis ServicesSPNs for the Analysis Services service

I nomi SPN per Analysis Services sono simili a quelli per il Server di report di Power BI.The SPNs for Analysis Services are similar to what we did with Power BI Report Server. Il formato del nome SPN è leggermente diverso se si ha un'istanza denominata.The format of the SPN is a little different if you have a named instance.

Per Analysis Services, si userà un servizio msolapsvc. 3.For Analysis Services, we use a Service of MSOLAPSvc.3. Verrà ora specificato il nome dell'istanza per l'indirizzo della porta sul nome SPN.We will specify the instance name for the port location on the SPN. La parte host del nome SPN sarà il nome del computer o il nome virtuale del cluster.The host part of the SPN will either be the machine name, or the Cluster virtual name.

Un esempio di nome SPN di Analysis Services sarebbe simile al seguente.An example of an Analysis Services SPN would look like the following.

TipoType FormatoFormat
Istanza predefinitaDefault instance MSOLAPSvc.3/ContosoAS.contoso.comMSOLAPSvc.3/ContosoAS.contoso.com
MSOLAPSvc.3/ContosoASMSOLAPSvc.3/ContosoAS
Istanza denominataNamed instance MSOLAPSvc.3/ContosoAS.contoso.com:INSTANCENAMEMSOLAPSvc.3/ContosoAS.contoso.com:INSTANCENAME
MSOLAPSvc.3/ContosoAS:INSTANCENAMEMSOLAPSvc.3/ContosoAS:INSTANCENAME

Anche l'inserimento del nome SPN è simile alle operazioni menzionate per il Server di report di Power BI.Placement of the SPN is also similar to what was mentioned with Power BI Report Server. È basato sull'account di servizio.It is based on the service account. Se si usa il sistema locale o il servizio di rete, il contesto sarà l'account del computer.If you are using Local System or Network Service, you will be in the context of the machine account. Se si usa un account utente di dominio per l'istanza di Analysis Services, si inserirà il nome SPN nell'account utente di dominio.If you are using a domain user account for the Analysis Services instance, you will place the SPN on the domain user account.

Uso di SetSPN per aggiungere il nome SPNUsing SetSPN to add the SPN

È possibile usare lo strumento SetSPN per aggiungere il nome SPN.We can use the SetSPN tool to add the SPN. Per questo esempio, il nome del computer sarà ContosoAS.For this example, the machine name will be ContosoAS.

L'inserimento del nome SPN in un account del computer, sia per il nome di dominio completo che per il nome SPN di NetBIOS, avrebbe un aspetto simile al seguente.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

L'inserimento del nome SPN in un account del dominio utente, sia per il nome di dominio completo che per il nome SPN di NetBIOS, avrebbe un aspetto simile al seguente.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

Nomi SPN per il servizio SQL BrowserSPNs for the SQL Browser service

Se si ha un'istanza denominata di Analysis Services, è anche necessario assicurarsi di avere un nome SPN per il servizio browser,If you have an Analysis Services named instance, you also need to make sure you have an SPN for the browser service. che sia univoco per Analysis Services.This is unique to Analysis Services.

I nomi SPN per SQL Browser sono simili a quelli per il Server di report di Power BI.The SPNs for SQL Browser are similar to what we did with Power BI Report Server.

Per SQL Browser, si userà un servizio MSOLAPDisco.3.For SQL Browser, we use a Service of MSOLAPDisco.3. Verrà ora specificato il nome dell'istanza per l'indirizzo della porta sul nome SPN.We will specify the instance name for the port location on the SPN. La parte host del nome SPN sarà il nome del computer o il nome virtuale del cluster.The host part of the SPN will either be the machine name, or the Cluster virtual name. Non è necessario specificare un valore per la porta o il nome dell'istanza.You do not have to specify anything for the instance name or port.

Un esempio di nome SPN di Analysis Services sarebbe simile al seguente.An example of an Analysis Services SPN would look like the following.

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

Anche l'inserimento del nome SPN è simile alle operazioni menzionate per il Server di report di Power BI.Placement of the SPN is also similar to what was mentioned with Power BI Report Server. La differenza è che SQL Browser viene sempre eseguito con l'account sistema locale:The difference here is that SQL Browser always runs under the Local System account. ciò significa che i nomi SPN verranno sempre inseriti nell'account del computer.This means that the SPNs will always go on the machine account.

Uso di SetSPN per aggiungere il nome SPNUsing SetSPN to add the SPN

È possibile usare lo strumento SetSPN per aggiungere il nome SPN.We can use the SetSPN tool to add the SPN. Per questo esempio, il nome del computer sarà ContosoAS.For this example, the machine name will be ContosoAS.

L'inserimento del nome SPN in un account del computer, sia per il nome di dominio completo che per il nome SPN di NetBIOS, avrebbe un aspetto simile al seguente.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

Per altre informazioni, vedere È richiesto un nome SPN per il servizio SQL Server Browser.For more information, see An SPN for the SQL Server Browser service is required.

Impostazioni di delega nell'account del servizio del server di reportDelegation settings on the report server service account

L'ultima parte da configurare sono le impostazioni di delega nell'account del servizio del server di report.The last part that we have to configure are the delegation settings on the report server service account. Per eseguire questi passaggi sono disponibili diversi strumenti.There are different tools you can use to perform these steps. Ai fini di questo documento, verrà usato lo strumento Utenti e computer di Active Directory.For the purposes of this document, we will stick with Active Directory Users and Computers.

È necessario iniziare accedendo alle proprietà dell'account del servizio del server di report all'interno di Utenti e computer di Active Directory.You will need to start by going to the properties of the report server service account within Active Directory Users and Computers. Si tratterà dell'account del computer, se si usa l'Account del servizio virtuale o del servizio di rete, oppure si tratterà di un account utente di dominio.This will either be the machine account, if you used Virtual Service Account or Network Service, or it will be a domain user account.

È consigliabile configurare la delega vincolata con protocollo in transito.We will want to configure constrained delegation with protocol transiting. Con la delega vincolata, è necessario dichiarare esplicitamente a quali servizi si vuole delegare.With constrained delegation, you need to be explicit with which services we want to delegate to. Verranno aggiunti sia il nome SPN del servizio Analysis Services sia il nome SPN di SQL Browser all'elenco a cui il Server di report di Power BI può delegare.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. Fare clic con il pulsante destro del mouse sull'account di servizio del server di report e selezionare Proprietà.Right click on the report server service account and select Properties.
  2. Selezionare la scheda Delega.Select the Delegation tab.
  3. Selezionare Computer attendibile per la delega solo ai servizi specificati.Select Trust this computer for delegation to specified services only.
  4. Selezionare Utilizza un qualsiasi protocollo di autenticazione.Select Use any authentication protocol.
  5. In Servizi ai quali l'account può presentare credenziali delegate: selezionare Aggiungi.Under the Services to which this account can present delegated credentials: select Add.
  6. Nella nuova finestra di dialogo selezionare Utenti o computer.In the new dialog, select Users or Computers.
  7. Immettere l'account per il servizio Analysis Services e selezionare OK.Enter the service account for the Analysis Services service and select Ok.
  8. Selezionare il nome SPN creato,Select the SPN that you created. che inizierà con MSOLAPSvc.3.It will begin with MSOLAPSvc.3. Se sono stati aggiunti sia il nome di dominio completo sia il nome SPN di NetBIOS, verranno selezionati entrambi,If you added both the FQDN and the NetBIOS SPN, it will select both. ma ne verrà visualizzato solo uno.You may only see one.
  9. Selezionare OK.Select OK. A questo punto verrà visualizzato il nome SPN nell'elenco.You should see the SPN in the list now.
  10. Facoltativamente, è possibile selezionare Espansa per visualizzare sia il nome di dominio completo sia il nome SPN di NetBIOS nell'elenco.Optionally, you can select Expanded to show both the FQDN and NetBIOS SPN in the list.
  11. Selezionare di nuovo Aggiungi.Select Add again. A questo punto si aggiungerà il nome SPN di SQL Browser.We will add the SQL Browser SPN now.
  12. Nella nuova finestra di dialogo selezionare Utenti o computer.In the new dialog, select Users or Computers.
  13. Immettere il nome del computer sul quale si trova il servizio SQL Browser e selezionare OK.Enter the Machine name for the machine the SQL Browser service is on and select Ok.
  14. Selezionare il nome SPN creato,Select the SPN that you created. che inizierà con MSOLAPDisco.3.It will begin with MSOLAPDisco.3. Se sono stati aggiunti sia il nome di dominio completo sia il nome SPN di NetBIOS, verranno selezionati entrambi,If you added both the FQDN and the NetBIOS SPN, it will select both. ma ne verrà visualizzato solo uno.You may only see one.
  15. Selezionare OK.Select Ok. La finestra di dialogo dovrebbe essere simile alla seguente quando la casella di controllo Espansa è selezionata.The dialog should look similar to the following if you checked Expanded.

  16. Selezionare OK.Select Ok.
  17. Riavviare il Server di report di Power BI.Reboot the Power BI Report Server.

Esecuzione di un report di Power BIRunning a Power BI Report

Dopo aver completato la configurazione precedente, il report dovrà essere visualizzato correttamente.After all of the above configuration is in place, your report should display properly.

Nonostante questa configurazione dovrebbe funzionare nella maggior parte dei casi, con Kerberos, è possibile scegliere una configurazione diversa a seconda dell'ambiente.While this configuration should work in most cases, with Kerberos, there can be different configuration depending on your environment. Se non è ancora possibile caricare il report, contattare l'amministratore di dominio per indagare ulteriormente oppure contattare il supporto tecnico.If the report will still not load, you will want to reach out to your domain administrator to investigate further or contact support.

Passaggi successiviNext steps

Manuale per l'amministratoreAdministrator handbook
Avvio rapido: installazione del Server di report di Power BIQuickstart: Install Power BI Report Server

Altre domande?More questions? Provare a rivolgersi alla community di Power BITry asking the Power BI Community