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 - 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.

Prérequis

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

Machines configurées

Machine Système d’exploitation Détails
Contrôleur de domaine Windows Windows Server 2019 ou Windows Server 2022
Déploiement et développement de rapport (WIN19) Windows Server 2019 : exécution de Visual Studio 2019 - Déploiement et développement 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 CU

Configurer les comptes

Account name : 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

Les serveurs et les comptes distincts sont utilisés dans cet exemple de scénario pour s’assurer que la délégation Kerberos fonctionne correctement (c’est-à-dire, les scénarios à double tronçon sont gérés).

SQL Server sur la configuration Linux

Avant de continuer avec la configuration (ou la reconfiguration) de PBIRS pour utiliser SQL Server sur Linux en tant que serveur principal pour héberger les bases de données du catalogue Report Server, vérifiez que l’instance de SQL Server sur Linux a été jointe au domaine.

Vous pouvez installer et configurer adutil et rejoindre le domaine, en suivant les instructions du tutoriel : Utiliser adutil pour configurer l’authentification Active Directory avec SQL Server sur Linux.

Remarque

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 de configurer PBIRS, vous devez configurer les SPN requis sur le domaine CORPNET. Dans ce cas, un utilisateur disposant de privilèges Administrateur domaine peut être utilisé, mais n’importe quel utilisateur disposant d’autorisations suffisantes pour créer des SPN est suffisant. Quand le SPN est créé, les comptes doivent être configurés pour utiliser la délégation Kerberos contrainte.

Voici les SPN minimum requis pour ce scénario :

  • À l’aide d’une invite de commandes Administrative, créez le SPN pour le compte de service SQL Server sur Linux. Cette instance utilise le port par défaut 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 transférer des tickets Kerberos, pendant l’exécution dans une implémentation de délégation contrainte, nous configurons la délégation à l’aide de l’extension de Microsoft à la norme Kerberos MIT, comme spécifié dans RFC 4120, et utilisons le service pour l’utilisateur vers le proxy (S4U2proxy). Ce mécanisme permet au service PBIRS et au service SQL Server d’obtenir des tickets de service auprès d’autres services spécifiés pour le compte d’un utilisateur.

Par exemple, quand le reportuser s’authentifie avec l’interface web du serveur PBIRS pour afficher 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 ticket de service Kerberos reportuser, qui a été accordé pendant le processus d’authentification au serveur PBIRS. L’extension S4U2proxy fournit la transition de protocole nécessaire pour passer les informations d’identification requises sans avoir à transférer le TGT de l’utilisateur (ticket granting ticket) ou la clé de session de l’utilisateur.

Pour ce faire, le compte de service PBIRS (pbirsservice dans cet exemple) et le compte de service SQL Server (linuxservice dans cet exemple) doivent reçevoir le droit d’authentification approuvée pour la délégation dans le domaine. Il existe plusieurs façons d’accorder ce droit (autrement dit, ADSI Edit, Ordinateur et l’IU des utilisateurs, etc.). Nous utilisons une commande PowerShell élévée dans cet exemple :

  • Obtenez le compte de service SQL Server et définissez-le pour autoriser la délégation. Cette étape active non seulement la délégation Kerberos, mais 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 non seulement la délégation Kerberos, mais 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)

PBIRS doit être installé uniquement en mode de configuration.

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. Pendant le processus d’installation, vous devez mettre à jour l’un des fichiers de configuration PBIRS avant de terminer le processus de configuration PBIRS, dans l’interface utilisateur ou via la ligne de commande. Si vous utilisez une installation PBIRS existante, vous devez toujours effectuer les modifications, et le service PBIRS doit être redémarré pour prendre effet. Le fichier de configuration est lersreportserver.config. Il se trouve dans le chemin d’accès où PBIRS a été 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

Ce fichier XML peut être modifié dans n’importe quel éditeur de texte. N’oubliez pas d’effectuer une copie du fichier avant la modification. Quand vous avez ouvert le fichier, recherchez la balise AuthenticationTypes dans le document XML et ajoutez les attributs RSWindowsNegotiate et RSWindowsKerberos avant l’attribut RSWindowsNTLM. Par exemple :

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

Cette étape est requise, car SQL Server sur Linux prend uniquement en charge l’authentification SQL et Kerberos.

Remarque

Nous devons uniquement inclure l’attribut RSWindowsKerberos, mais l’utilisation de RSWindowsNegotiate est nécessaire si la normalisation des fichiers de configuration PBIRS sur une flotte de serveurs qui prennent en charge un mélange d’instances SQL Server Windows et Linux est souhaitée.

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 d’utilisateur.

Enfin, nous pouvons ajouter le reportuser en tant que connexion sur SQL Server à des fins de test. Dans ce cas, nous avons pris le bouton facile et ajouté l’utilisateur au rôle db_datareader dans deux bases de données utilisateur : AdventureWorks et AdventureWorksDW.

Une fois les rapports déployés

Si vous devez configurer des abonnements à un 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.