Configurer des bases de données de catalogue Power BI Report Server pour SQL Server sur Linux

S’applique à : SQL Server 2019 (15.x) et versions ultérieures sur Linux SQL Server Reporting Services (2019 et versions ultérieures)

Cet article explique comment installer et configurer la base de données du catalogue Power BI Report Server (PBIRS) pour SQL Server sur Linux.

Prerequisites

Dans cet article, les exemples utilisent le domaine CORPNET.CONTOSO.COM et la configuration suivante.

Configurer les machines

Machine Système d'exploitation Détails
Contrôleur de domaine Windows Windows Server 2019 ou Windows Server 2022
Développement et déploiement de rapports (WIN19) Windows Server 2019 : exécution de Visual Studio 2019 - Développement et déploiement de rapport

- Services de partage de fichiers servant de référentiel pour la sortie de rapport pilotée ou planifiée à la demande
SQL Server Reporting Services (WIN22) Windows Server 2022, exécutant une version prise en charge de Power BI Report Server (PBIRS) 1
Ordinateur développeur Client Windows 11, exécutant SQL Server Management Studio (SSMS)
SQL Server 2019 (rhel8test) Red Hat Enterprise Linux (RHEL) 8.x Server, exécutant SQL Server 2019 (15.x) avec la dernière mise à jour cumulative (CU)

Configurer les comptes

Nom du compte Détails
CORPNET\cluadmin Compte d’utilisateur global. Compte Administration local sur tous les serveurs Windows, à l’exception du contrôleur de domaine.
CORPNET\pbirsservice Compte de service PBIRS
CORPNET\linuxservice Compte de service SQL Server (créé uniquement pour SQL Server sur l’environnement Linux)
CORPNET\reportuser Compte d’utilisateur global utilisé pour simuler un utilisateur normal de PBIRS

Ce scénario d’exemple utilise des serveurs et des comptes séparés pour garantir que la délégation Kerberos fonctionne correctement (c’est-à-dire qu’elle gère les scénarios de double saut).

SQL Server sur la configuration Linux

Avant de configurer (ou reconfigurer) PBIRS pour utiliser SQL Server sur Linux comme backend pour héberger les bases de données du catalogue Report Server, assurez-vous que l’instance SQL Server sur Linux est reliée au domaine.

Pour installer, configurer adutil et rejoindre le domaine, suivez les instructions du tutoriel : Utilisez adutil pour configurer l’authentification Active Directory avec SQL Server sur Linux.

Note

Pour plus d’informations sur des packages spécifiques sur RHEL 8, consultez Connection des systèmes RHEL directement vers AD à l’aide de SSSD.

Noms de principal du service SQL Server (SPN)

Avant d’installer et configurer PBIRS, configurez les SPN requis sur le CORPNET domaine. Vous pouvez utiliser un compte avec des privilèges d’administrateur de domaine, mais tout compte avec suffisamment de permissions pour créer des SPN suffit. Après avoir créé les SPN, configurez les comptes pour qu’ils utilisent la délégation restreinte par Kerberos.

Ce scénario nécessite les SPN minimums suivants :

  • Depuis une invite de commande administrative, créez le SPN pour le compte de service SQL Server sur Linux. Cette instance utilise le port par défaut de 1433 :

    setspn -S MSSQLSvc/rhel8test:1433 CORPNET\linuxservice
    setspn -S MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433 CORPNET\linuxservice
    
  • Les deux SPN suivants concernent le compte de service Power BI Report Server.

    setspn -S HTTP/WIN22.CORPNET.CONTOSO.COM CORPNET\pbirsservice
    setspn -S HTTP/WIN22 CORPNET\pbirsservice
    

Pour gérer les exigences Kerberos pour le transfert des tickets Kerberos lors d'une implémentation de délégation contrainte, vous configurez la délégation en utilisant l'extension de Microsoft à la norme MIT Kerberos, comme spécifié dans la RFC 4120, et vous utilisez le Service for User to Proxy (S4U2proxy). Ce mécanisme permet au service PBIRS et au service SQL Server d’obtenir des tickets de service vers d’autres services spécifiés au nom d’un utilisateur.

Par exemple, lorsque l'utilisateur reportuser s'authentifie via l'interface web du serveur PBIRS pour consulter un rapport, le rapport s'exécute et doit accéder aux données à partir d'une source de données comme une table SQL Server. Le service SQL Server doit obtenir le reportuser ticket de service Kerberos, qui a été accordé au serveur PBIRS lors de l’authentification. L’extension S4U2proxy fournit la transition de protocole nécessaire pour faire passer les identifiants requis sans rediriger le TGT (ticket d’attribution du ticket) de l’utilisateur ni la clé de session de l’utilisateur.

Pour atteindre ce résultat, accordez au compte de service PBIRS (pbirsservicedans cet exemple) et au compte de service SQL Server (linuxservicedans cet exemple) le droit Trusted To Authenticate pour Délégation dans le domaine. Vous pouvez accorder ce droit de plusieurs manières (par exemple, ADSI Edit ou l’interface Computer and Users). Cet exemple utilise une commande PowerShell élevée :

  • Obtenez le compte de service SQL Server et définissez-le pour autoriser la délégation. Cette étape active la délégation Kerberos ainsi que la délégation S4U2proxy (pour la transition de protocole) sur le compte. Les deux derniers cmdlets appliquent l’autorité de délégation à des ressources spécifiques dans le domaine, les SPN de l’instance SQL Server.

    Get-ADUser -Identity linuxservice | Set-ADAccountControl -TrustedToAuthForDelegation $True
    Set-ADUser -Identity linuxservice -Add @{'msDS-AllowedToDelegateTo'=@('MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433')}
    Set-ADUser -Identity linuxservice -Add @{'msDS-AllowedToDelegateTo'=@('MSSQLSvc/rhel8test:1433')}
    
  • Obtenez le compte de service Power BI Report Server et définissez-le pour autoriser la délégation. Cette étape active la délégation Kerberos ainsi que la délégation S4U2proxy (pour la transition de protocole) sur le compte. Les deux derniers cmdlets appliquent l’autorité de délégation à des ressources spécifiques dans le domaine, les SPN pour le serveur SQL Server et PBIRS.

    Get-ADUser -Identity pbirsservice | Set-ADAccountControl -TrustedToAuthForDelegation $True
    Set-ADUser -Identity pbirsservice -Add @{'msDS-AllowedToDelegateTo'=@('MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433')}
    Set-ADUser -Identity pbirsservice -Add @{'msDS-AllowedToDelegateTo'=@('MSSQLSvc/rhel8test:1433')}
    Set-ADUser -Identity pbirsservice -Add @{'msDS-AllowedToDelegateTo'=@('HTTP/Win22.CORPNET.CONTOSO.COM')}
    Set-ADUser -Identity pbirsservice -Add @{'msDS-AllowedToDelegateTo'=@('HTTP/Win22')}
    

Power BI Report Server (PBIRS)

Installez PBIRS en mode configuration uniquement .

Immédiatement après avoir installé PBIRS, vous devez le configurer pour prendre en charge l’authentification Kerberos. PBIRS par défaut prend uniquement en charge l’authentification NTLM. Lors de l’installation, mettez à jour un des fichiers de configuration PBIRS, soit dans l’interface utilisateur, soit via la ligne de commande, avant de terminer la configuration PBIRS. Si vous utilisez une installation PBIRS existante, effectuez les modifications et redémarrez le service PBIRS pour que les modifications prennent effet. Le fichier de configuration est lersreportserver.config. Il se trouve sur le chemin où le PBIRS est installé. Par exemple, sur une installation par défaut de PBIRS, le fichier se trouve à l’emplacement suivant :

C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer

Utilisez n’importe quel éditeur de texte pour modifier ce fichier XML. Copiez le fichier avant de le modifier. Après avoir ouvert le fichier, cherchez la AuthenticationTypes balise dans le document XML, puis ajoutez les RSWindowsNegotiate attributs et RSWindowsKerberos avant l’attribut RSWindowsNTLM . Par exemple:

<Authentication>
<AuthenticationTypes>
    <RSWindowsNegotiate/>
    <RSWindowsKerberos/>
    <RSWindowsNTLM/>
</AuthenticationTypes>

Vous devez accomplir cette étape car SQL Server sur Linux ne supporte que l’authentification SQL et Kerberos.

Note

Il suffit d’inclure l’attributRSWindowsKerberos, mais RSWindowsNegotiate c’est utile si vous souhaitez standardiser les fichiers de configuration PBIRS sur une flotte de serveurs qui supportent un mélange d’instances Windows et Linux SQL Server.

Configuration de l’interface utilisateur PBIRS

Quand le service PBIRS est redémarré une fois les modifications du fichier de configuration terminées, vous pouvez continuer avec les options de configuration PBIRS restantes, telles que la définition du compte de service basé sur le domaine et la connexion à l’instance de SQL Server sur Linux distante.

Le compte de service PBIRS doit apparaître dans l’instance SQL Server avec les autorisations appropriées. Vous pouvez vérifier les autorisations dans SQL Server Management Studio (SSMS). Dans l’Explorateur d’objets, accédez aux connexions de sécurité>, cliquez avec le bouton droit sur le compte CORPNET\pbirsservice, puis sélectionnez Propriétés. Les autorisations sont visibles sur la page Mappage de l’utilisateur.

Enfin, ajoutez le reportuser comme identifiant sur le SQL Server à des fins de test. Dans ce cas, vous avez choisi l’approche simple et ajouté l’utilisateur au rôle de base de données fixe db_datareader au sein de deux bases de données utilisateur : AdventureWorks et AdventureWorksDW.

Une fois les rapports déployés

Si vous devez configurer des abonnements de rapport après le déploiement des rapports, il est recommandé de configurer des informations d’identification incorporées dans les sources de données PBIRS. Toutes les options d’informations d’identification fonctionnent correctement, à l’exception de l’utilisation des informations d’identification incorporées configurées avec l’option usurper l’identité de l’utilisateur qui affiche le rapport. Cette étape échoue durant l’utilisation des informations d’identification Windows, en raison d’une limitation au sein de l’implémentation SQL Server sur Linux qui rend l’usurpation d’identité plus difficile.