Configurer Kerberos pour utiliser les rapports Power BIConfigure Kerberos to use Power BI reports

Découvrez comment configurer votre serveur de rapports pour l’authentification Kerberos auprès des sources de données utilisées dans vos rapports Power BI pour un environnement distribué.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 Report Server permet d’héberger des rapports Power BI.Power BI Report Server includes the ability to host Power BI reports. De nombreuses sources de données sont prises en charge par votre serveur de rapports.Many data sources are supported by your report server. Bien que cet article se concentre spécifiquement sur SQL Server Analysis Services, vous pouvez en utiliser les concepts pour les appliquer à d’autres sources de données telles que 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.

Vous pouvez installer Power BI Report Server, SQL Server et Analysis Services sur un seul ordinateur. L’ensemble devrait fonctionner sans configuration supplémentaire.You can install Power BI Report Server, SQL Server and Analysis Services on a single machine and everything should work without additional configuration. Il s’agit d’une excellente solution pour un environnement de test.This is great for a test environment. Il se peut que vous rencontriez des erreurs si ces services sont installés sur des ordinateurs distincts au sein d’un environnement distribué.You may hit errors if you have these services installed on separate machines which is called a distributed environment. Dans ce type d’environnement, vous devez impérativement utiliser une authentification Kerberos.In this environment, you are required to use Kerberos authentication. Pour implémenter cela, une configuration est nécessaire.There is configuration required to implement this.

Plus précisément, vous devrez configurer une délégation contrainte.Specifically, you will need to configure constrained delegation. Même si Kerberos est configuré dans votre environnement, il se peut qu’il ne le soit pas pour une délégation contrainte.You may have Kerberos configured in your environment but it may not be configured for constrained delegation.

Erreur d’exécution de rapportError running report

Si votre serveur de rapports n’est pas correctement configuré, vous pouvez rencontrer l’erreur suivante.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. 

Le message suivant apparaîtra dans les Détails techniques.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.

Configuration d’une délégation contrainte KerberosConfiguring Kerberos constrained delegation

Pour qu’une délégation contrainte Kerberos fonctionne, plusieurs éléments doivent être configurés.There are several items that need to be configured in order for Kerberos constrained delegation to work. Ceux-ci incluent les noms de principal du service (SPN) et les paramètres de délégation des comptes de service.This includes Service Principal Names (SPN) and delegation settings on service accounts.

Note

Pour configurer les noms de principal du service et les paramètres de délégation, vous devez être administrateur du domaine.In order to configure SPNs and delegation settings, you need to be a domain administrator.

Nous allons devoir configurer ou valider les éléments suivants :We will need to configure, or validate, the following.

  1. Le type d’authentification dans le cadre de la configuration du serveur de rapports.Authentication type within Report Server config.
  2. Les noms de principal du service pour le compte de service du serveur de rapports.SPNs for the report server service account.
  3. Les noms de principal du service pour le service Analysis Services.SPNs for the Analysis Services service.
  4. Les noms de principal du service pour le service SQL Browser sur l’ordinateur exécutant Analysis Services.SPNs for the SQL Browser service on the Analysis Services machine. Cela concerne uniquement les instances nommées.This is for named instances only.
  5. Les paramètres de délégation sur le compte de service du serveur de rapports.Delegation settings on the report server service account.

Type d’authentification dans le cadre de la configuration du serveur de rapportsAuthentication type within Report Server configuration

Nous devons configurer le type d’authentification pour le serveur de rapports afin d’autoriser une délégation contrainte Kerberos.We need to configure the authentication type for the report server to allow for Kerberos constrained delegation. Cette opération est effectuée dans le fichier rsreportserver.config.This is done within the rsreportserver.config file. L’emplacement par défaut de ce fichier est 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.

Dans le fichier rsreportserver.config, vous pouvez affiner la section Authentication/AuthenticationTypes.Within the rsreportserver.config file, you will want to fine the Authentication/AuthenticationTypes section.

Nous devons nous assurer que RSWindowsNegotiate est répertorié et figure en première position dans la liste des types d’authentification.We want to make sure that RSWindowsNegotiate is listed and the first in the list of authentication types. L’URL doit ressembler à ce qui suit.It should look similar to the following.

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

Si vous devez modifier le fichier de configuration, vous devez arrêter et redémarrer le serveur de rapports pour vous assurer que les modifications prennent effet.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.

Pour plus d’informations, voir Configurer l’authentification Windows sur le serveur de rapports.For more information, see Configure Windows Authentication on the Report Server.

Noms de principal du service pour le compte de service du serveur de rapportsSPNs for the report server service account

Nous devons ensuite nous assurer que le serveur de rapports dispose de noms de principal du service valides.Next, we need to make sure that the report server has valid SPNs available. Cela dépend du compte de service configuré pour le serveur de rapports.This is based on the service account that is configured for the report server.

Compte de service virtuel ou Compte de service réseauVirtual Service Account or Network Service

Si votre serveur de rapports est configuré pour le Compte de service virtuel ou le Compte de service réseau, vous n’avez rien à faire.If your report server is configured for the Virtual Service Account or Network Service account, you should not have to do anything. Ces comptes s’inscrivent dans le contexte du compte d’ordinateur.These are in the context of the machine account. Celui-ci dispose des noms de principal du service par défaut.The machine account will have HOST SPNs by default. Ces derniers couvrent le service HTTP et sont utilisés par le serveur de rapports.These will cover the HTTP service and will be used by the report server.

Si vous utilisez un nom de serveur virtuel différent de celui du compte d’ordinateur, les entrées HOST ne vous couvrent pas et vous devez ajouter manuellement les noms de principal du service pour le nom d’hôte du serveur virtuel.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.

Compte d’utilisateur de domaineDomain user account

Si votre serveur de rapports est configuré pour utiliser un compte d’utilisateur de domaine, vous devez créer manuellement des noms de principal du service HTTP sur ce compte.If your report server is configured to use a domain user account, you will have to manually create HTTP SPNs on that account. Vous pouvez le faire à l’aide de l’outil setspn intégré à Windows.This can be done using the setspn tool that comes with Windows.

Note

Pour créer le nom de principal du service, vous devez disposer de droits d’administrateur de domaine.You will need domain admin rights in order to create the SPN.

Il est recommandé de créer deux noms de principal du service :It is recommended to create two SPNs. l’un avec le nom NetBIOS et l’autre avec le nom de domaine complet (FQDN).One with the NetBIOS name and the other with the fully qualified domain name (FQDN). Le nom de principal du service doit être au format suivant :The SPN will be in the following format.

<Service>/<Host>:<port>

Power BI Report Server utilise un service de type HTTP.Power BI Report Server will use a Service of HTTP. Pour les noms de principal du HTTP, vous n’affichez pas de port.For HTTP SPNs you will not list a port. Le service qui nous intéresse ici est HTTP.The service we are interested in here is HTTP. L’hôte du nom de principal du service sera identique à celui que vous utilisez dans une URL.The host of the SPN will be the name you use in a URL. En règle générale, il s’agit du nom de l’ordinateur.Typically, this is the machine name. Si vous vous trouvez derrière un équilibreur de charge, il peut s’agir d’un nom virtuel.If you are behind a load balancer, this may be a virtual name.

Note

Vous pouvez vérifier l’URL soit en examinant ce que vous avez entré dans la barre d’adresse du navigateur, soit en regardant dans le Gestionnaire de configuration du serveur de rapports sous l’onglet URL du portail 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.

Si le nom de votre ordinateur est ContosoRS, vos noms de principal du service devraient être les suivants.If your machine name is ContosoRS, your SPNs would be the following.

Type de nom de principal du serviceSPN Type Nom de principal du serviceSPN
Nom de domaine complet (FQDN)Fully Qualified Domain Name (FQDN) HTTP/ContosoRS.contoso.comHTTP/ContosoRS.contoso.com
NetBIOSNetBIOS HTTP/ContosoRSHTTP/ContosoRS

Emplacement du nom de principal du serviceLocation of SPN

Où placer le nom de principal du service ?So, where do you put the SPN? Le nom de principal du service sera placé sur ce que vous utilisez pour votre compte de service.The SPN will be placed on whatever you are using for your service account. Si vous utilisez un Compte de service virtuel ou Compte de service réseau, il s’agit du compte de l’ordinateur.If you are using Virtual Service Account or Network Service, this will be the machine account. Comme mentionné plus haut, vous ne devriez faire cela que pour une URL virtuelle.Although we mentioned before you should only need to do this for a virtual URL. Si vous vous servez d’un utilisateur de domaine pour le compte de service du serveur de rapports, vous devez placer le nom de principal du service sur ce compte d’utilisateur de domaine.If you are using a domain user for the report server service account, then you will place the SPN on that domain user account.

Par exemple, si nous utilisons le compte de service réseau et si le nom de notre ordinateur est ContosoRS, nous plaçons le nom de principal du service sur ContosoRS.For example, if we are using the Network Service account and our machine name is ContosoRS, we would place the SPN on ContosoRS.

Si nous utilisons un compte d’utilisateur de domaine de RSService, nous plaçons le nom de principal du service sur RSService.If we are using a domain user account of RSService, we would place the SPN on RSService.

Utilisation de l’outil SetSPN pour ajouter le nom de principal du serviceUsing SetSPN to add the SPN

Nous pouvons utiliser l’outil SetSPN pour ajouter le nom de principal du service.We can use the SetSPN tool to add the SPN. Nous allons suivre le même exemple que ci-dessus avec le compte d’ordinateur et le compte d’utilisateur de domaine.We will follow the same example as above with the Machine account and the domain user account.

Placer le nom de principal du service sur un compte d’ordinateur, tant pour le nom de domaine complet (FQDN) que pour le nom de principal du service NetBIOS, ressemblerait à ce qui suit si nous utilisions une URL virtuelle de 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

Placer le nom de principal du service sur un compte d’utilisateur de domaine, tant pour le nom de domaine complet (FQDN) que pour le nom de principal du service NetBIOS, ressemblerait à ce qui suit si nous utilisions le nom d’ordinateur pour l’hôte du nom de principal du service.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

Noms de principal du service pour le service Analysis ServicesSPNs for the Analysis Services service

Les noms de principal du service pour Analysis Services sont similaires à ce que nous avons fait avec Power BI Report Server.The SPNs for Analysis Services are similar to what we did with Power BI Report Server. Le format du nom de principal du service est un peu différent si vous avez une instance nommée.The format of the SPN is a little different if you have a named instance.

Pour Analysis Services, nous utilisons un service de MSOLAPSvc.3.For Analysis Services, we use a Service of MSOLAPSvc.3. Nous allons spécifier le nom d’instance pour l’emplacement du port sur le nom de principal du service.We will specify the instance name for the port location on the SPN. La partie hôte du nom de principal du service sera soit le nom de l’ordinateur, soit le nom du cluster virtuel.The host part of the SPN will either be the machine name, or the Cluster virtual name.

Un exemple de nom de principal du service Analysis Services se présenterait comme suit.An example of an Analysis Services SPN would look like the following.

TypeType FormatFormat
Instance par défautDefault instance MSOLAPSvc.3/ContosoAS.contoso.comMSOLAPSvc.3/ContosoAS.contoso.com
MSOLAPSvc.3/ContosoASMSOLAPSvc.3/ContosoAS
Instance nomméeNamed instance MSOLAPSvc.3/ContosoAS.contoso.com:NOMINSTANCEMSOLAPSvc.3/ContosoAS.contoso.com:INSTANCENAME
MSOLAPSvc.3/ContosoAS:NOMINSTANCEMSOLAPSvc.3/ContosoAS:INSTANCENAME

Le placement du nom de principal du service est similaire à ce que nous avons mentionné concernant Power BI Report Server.Placement of the SPN is also similar to what was mentioned with Power BI Report Server. Il est basé sur le compte de service.It is based on the service account. Si vous utilisez un système local ou un service réseau, vous serez dans le contexte du compte d’ordinateur.If you are using Local System or Network Service, you will be in the context of the machine account. Si vous utilisez un compte d’utilisateur de domaine pour l’instance Analysis Services, vous allez placer le nom de principal du service sur le compte d’utilisateur de domaine.If you are using a domain user account for the Analysis Services instance, you will place the SPN on the domain user account.

Utilisation de l’outil SetSPN pour ajouter le nom de principal du serviceUsing SetSPN to add the SPN

Nous pouvons utiliser l’outil SetSPN pour ajouter le nom de principal du service.We can use the SetSPN tool to add the SPN. Pour cet exemple, le nom d’ordinateur est ContosoAS.For this example, the machine name will be ContosoAS.

Placer le nom de principal du service sur un compte d’ordinateur, tant pour le nom de domaine complet (FQDN) que pour le nom de principal du service NetBIOS, ressemblerait à ce qui suit.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

Placer le nom de principal du service sur un compte d’utilisateur de domaine, tant pour le nom de domaine complet (FQDN) que pour le nom de principal du service NetBIOS, ressemblerait à ce qui suit.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

Noms de principal du service pour le service SQL BrowserSPNs for the SQL Browser service

Si vous avez une instance nommée Analysis Services, vous devez également vous assurer de disposer d’un nom de principal du service pour le service du navigateur.If you have an Analysis Services named instance, you also need to make sure you have an SPN for the browser service. Ceci est propre à Analysis Services.This is unique to Analysis Services.

Les noms de principal du service pour SQL Browser sont similaires à ce que nous avons fait avec Power BI Report Server.The SPNs for SQL Browser are similar to what we did with Power BI Report Server.

Pour SQL Browser, nous utilisons un service de MSOLAPDisco.3.For SQL Browser, we use a Service of MSOLAPDisco.3. Nous allons spécifier le nom d’instance pour l’emplacement du port sur le nom de principal du service.We will specify the instance name for the port location on the SPN. La partie hôte du nom de principal du service sera soit le nom de l’ordinateur, soit le nom du cluster virtuel.The host part of the SPN will either be the machine name, or the Cluster virtual name. Il est inutile de spécifier quoi que ce soit pour le nom d’instance ou le port.You do not have to specify anything for the instance name or port.

Un exemple de nom de principal du service Analysis Services se présenterait comme suit.An example of an Analysis Services SPN would look like the following.

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

Le placement du nom de principal du service est similaire à ce que nous avons mentionné concernant Power BI Report Server.Placement of the SPN is also similar to what was mentioned with Power BI Report Server. La différence ici est que SQL Browser s’exécute toujours sous le compte système Local.The difference here is that SQL Browser always runs under the Local System account. Cela signifie que les noms de principal du service sont toujours placés sur le compte d’ordinateur.This means that the SPNs will always go on the machine account.

Utilisation de l’outil SetSPN pour ajouter le nom de principal du serviceUsing SetSPN to add the SPN

Nous pouvons utiliser l’outil SetSPN pour ajouter le nom de principal du service.We can use the SetSPN tool to add the SPN. Pour cet exemple, le nom d’ordinateur est ContosoAS.For this example, the machine name will be ContosoAS.

Placer le nom de principal du service sur le compte d’ordinateur, tant pour le nom de domaine complet (FQDN) que pour le nom de principal du service NetBIOS, ressemblerait à ce qui suit.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

Pour plus d’informations, voir Un nom de principal du service pour le service SQL Server Browser est requis.For more information, see An SPN for the SQL Server Browser service is required.

Paramètres de délégation sur le compte de service du serveur de rapportsDelegation settings on the report server service account

Il ne nous reste plus qu’à configurer les paramètres de délégation sur le compte de service du serveur de rapports.The last part that we have to configure are the delegation settings on the report server service account. Différents outils permettent d’accomplir ces étapes.There are different tools you can use to perform these steps. Dans le cadre de ce document, nous nous en tiendrons au composant logiciel enfichable Utilisateurs et ordinateurs Active Directory.For the purposes of this document, we will stick with Active Directory Users and Computers.

Vous devez commencer par accéder aux propriétés du compte de service du serveur de rapports à l’intérieur du composant logiciel enfichable Utilisateurs et ordinateurs Active Directory.You will need to start by going to the properties of the report server service account within Active Directory Users and Computers. Il s’agit soit du compte d’ordinateur si vous avez utilisé le Compte de service virtuel ou le Compte de service réseau, soit d’un compte d’utilisateur de domaine.This will either be the machine account, if you used Virtual Service Account or Network Service, or it will be a domain user account.

Nous devons configurer une délégation contrainte avec transit de protocole.We will want to configure constrained delegation with protocol transiting. Avec une délégation contrainte, nous devons être explicite concernant les services auxquels nous souhaitons déléguer.With constrained delegation, you need to be explicit with which services we want to delegate to. Nous allons ajouter à la fois le nom de principal du service Analysis Services SPN et le nom de principal du service SQL Browser à la liste des services auxquels Power BI Report Server peut déléguer.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. Cliquez avec le bouton droit sur le compte de service du serveur de rapports, puis sélectionnez Propriétés.Right click on the report server service account and select Properties.
  2. Sélectionnez l’onglet Délégation.Select the Delegation tab.
  3. Sélectionnez N’approuver cet ordinateur que pour la délégation aux services spécifiés.Select Trust this computer for delegation to specified services only.
  4. Sélectionnez Utiliser tout protocole d’authentification.Select Use any authentication protocol.
  5. Sous Ce compte peut présenter des informations d’identification déléguées à ces services, sélectionnez Ajouter.Under the Services to which this account can present delegated credentials: select Add.
  6. Dans la boîte de dialogue Nouveau, sélectionnez Utilisateurs ou ordinateurs.In the new dialog, select Users or Computers.
  7. Entrez le compte de service pour le service Analysis Services et sélectionnez Ok.Enter the service account for the Analysis Services service and select Ok.
  8. Sélectionnez le nom de principal du service que vous avez créé.Select the SPN that you created. Il commence par MSOLAPSvc.3.It will begin with MSOLAPSvc.3. Si vous avez ajouté le nom de domaine complet (FQDN) et le nom de principal du service NetBIOS, les deux sont sélectionnés.If you added both the FQDN and the NetBIOS SPN, it will select both. Vous ne pouvez en voir qu’un.You may only see one.
  9. Sélectionnez OK.Select OK. Le nom de principal du service devrait à présent figurer dans la liste.You should see the SPN in the list now.
  10. Vous pouvez également sélectionner Développé pour afficher à la fois le nom de domaine complet (FQDN) et le nom de principal du service NetBIOS dans la liste.Optionally, you can select Expanded to show both the FQDN and NetBIOS SPN in the list.
  11. Sélectionnez une fois encore Ajouter.Select Add again. Nous allons à présent ajouter le nom de principal du service SQL Browser.We will add the SQL Browser SPN now.
  12. Dans la boîte de dialogue Nouveau, sélectionnez Utilisateurs ou ordinateurs.In the new dialog, select Users or Computers.
  13. Entrez le nom de l’ordinateur sur lequel le service SQL Browser est installé, puis sélectionnez OK.Enter the Machine name for the machine the SQL Browser service is on and select Ok.
  14. Sélectionnez le nom de principal du service que vous avez créé.Select the SPN that you created. Il commence par MSOLAPDisco.3.It will begin with MSOLAPDisco.3. Si vous avez ajouté le nom de domaine complet (FQDN) et le nom de principal du service NetBIOS, les deux sont sélectionnés.If you added both the FQDN and the NetBIOS SPN, it will select both. Vous ne pouvez en voir qu’un.You may only see one.
  15. Sélectionnez OK.Select Ok. Si vous avez activé Développé, la boîte de dialogue devrait ressembler à ceci.The dialog should look similar to the following if you checked Expanded.

  16. Sélectionnez OK.Select Ok.
  17. Redémarrez Power BI Report Server.Reboot the Power BI Report Server.

Exécution d’un rapport Power BIRunning a Power BI Report

Une fois toute la configuration ci-dessus en place, votre rapport devrait s’afficher correctement.After all of the above configuration is in place, your report should display properly.

Si cette configuration devrait fonctionner dans la plupart des cas, avec Kerberos, il peut y avoir des configurations différentes en fonction de votre environnement.While this configuration should work in most cases, with Kerberos, there can be different configuration depending on your environment. Si le rapport ne se charge toujours pas, vous pouvez demander à votre administrateur de domaine d’étudier la question, ou contacter le support technique.If the report will still not load, you will want to reach out to your domain administrator to investigate further or contact support.

Étapes suivantesNext steps

Manuel de l’administrateurAdministrator handbook
Démarrage rapide : installer Power BI Report ServerQuickstart: Install Power BI Report Server

D’autres questions ?More questions? Essayez d’interroger la communauté Power BITry asking the Power BI Community