Configure la base de datos del catálogo del Power BI Report Server para SQL Server en Linux

Se aplica a: SQL Server 2019 (15.x) y versiones posteriores en Linux SQL Server Reporting Services (2019 y versiones posteriores)

En este artículo se explica cómo instalar y configurar la base de datos de catálogo de Power BI Report Server (PBIRS) para SQL Server en Linux.

Prerequisites

En este artículo, los ejemplos usan el dominio CORPNET.CONTOSO.COM y la siguiente configuración.

Máquinas configuradas

Máquina Sistema operativo Detalles
Controlador de dominio de Windows Windows Server 2019 o Windows Server 2022
Desarrollo y despliegue de informes (WIN19) Windows Server 2019 ejecutando Visual Studio 2019 - Informe sobre desarrollo e implementación

- Servicios para compartir archivos que sirven como repositorio para la salida de informes programada o bajo demanda
SQL Server Reporting Services (WIN22) Windows Server 2022, que ejecuta una versión compatible de Power BI Report Server (PBIRS) 1
Máquina para desarrolladores Cliente de Windows 11 ejecutando SQL Server Management Studio (SSMS)
SQL Server 2019 (rhel8test) Red Hat Enterprise Linux (RHEL) 8.x Server, ejecutando SQL Server 2019 (15.x) con la última actualización acumulativa (CU)

Configurar cuentas

Nombre de la cuenta Detalles
CORPNET\cluadmin Cuenta de usuario global. Cuenta de administración local en todos los servidores de Windows, excepto para el controlador de dominio.
CORPNET\pbirsservice Cuenta de servicio PBIRS
CORPNET\linuxservice Cuenta de servicio SQL Server (creada solo para el entorno de SQL Server en Linux)
CORPNET\reportuser Cuenta de usuario global usada para simular un usuario normal de PBIRS

Este escenario de ejemplo utiliza servidores y cuentas separadas para asegurar que la delegación de Kerberos funcione correctamente (es decir, que gestiona escenarios de doble salto).

Configuración de SQL Server en Linux

Antes de configurar (o reconfigurar) PBIRS para usar SQL Server en Linux como backend para alojar las bases de datos del catálogo de Report Server, asegúrate de que la instancia de SQL Server en Linux esté unida al dominio.

Para instalar, configurar adutil y unirte al dominio, sigue las instrucciones del Tutorial: Usa adutil para configurar la autenticación de Active Directory con SQL Server en Linux.

Note

Para obtener información sobre paquetes específicos en RHEL 8, consulte Conectar sistemas RHEL directamente a AD mediante SSSD.

Nombres principales de servicio (SPN) de SQL Server

Antes de instalar y configurar PBIRS, configura los SPN necesarios en el CORPNET dominio. Puedes usar una cuenta con privilegios de administrador de dominio, pero cualquier cuenta con suficientes permisos para crear SPN es suficiente. Después de crear los SPNs, configura las cuentas para que utilicen delegación restringida por Kerberos.

Este escenario requiere los siguientes SPN mínimos:

  • Desde un símbolo de comandos administrativo, crea el SPN para la cuenta de servicio de SQL Server en Linux. Esta instancia utiliza el puerto predeterminado de 1433:

    setspn -S MSSQLSvc/rhel8test:1433 CORPNET\linuxservice
    setspn -S MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433 CORPNET\linuxservice
    
  • Los dos SPN siguientes son para la cuenta de servicio Power BI Report Server.

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

Para gestionar los requisitos de Kerberos para reenviar tickets de Kerberos cuando se opera dentro de una implementación de delegación restringida, se configura la delegación utilizando la extensión de Microsoft al estándar MIT Kerberos, según lo especificado en la RFC 4120, y se utiliza el Service for User to Proxy (S4U2proxy). Este mecanismo permite que el servicio PBIRS y el servicio SQL Server obtengan tickets de servicio para otros servicios especificados en nombre de un usuario.

Por ejemplo, cuando el reportuser servidor se autentica con la interfaz web del servidor PBIRS para ver un informe, el informe se ejecuta y debe acceder a los datos de una fuente de datos como una tabla de SQL Server. El servicio SQL Server debe obtener el reportuser ticket de servicio Kerberos, que fue concedido al servidor PBIRS durante la autenticación. La extensión S4U2proxy proporciona la transición necesaria del protocolo para pasar las credenciales requeridas sin reenviar el TGT (ticket de emisión de tickets) del usuario ni la clave de sesión del usuario.

Para lograr este resultado, concede a la cuenta de servicio PBIRS (pbirsserviceen este ejemplo) y a la cuenta de servicio SQL Server (linuxserviceen este ejemplo) el derecho de Trusted To Authenticate para Delegación en el dominio. Puedes conceder este derecho de varias maneras (por ejemplo, ADSI Edit o la interfaz de Ordenador y Usuarios). Este ejemplo utiliza un comando PowerShell elevado:

  • Obtenga la cuenta de servicio de SQL Server y configúrela para permitir la delegación. Este paso no solo habilita la delegación de Kerberos, sino también la delegación S4U2proxy (utilizada para la transición de protocolos) en la cuenta. Los dos cmdlet finales aplican la autoridad de delegación a recursos específicos del dominio, los SPN para la instancia de 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')}
    
  • Obtenga la cuenta de servicio de Power BI Report Server y configúrela para permitir la delegación. Este paso no solo habilita la delegación de Kerberos, sino también la delegación S4U2proxy (utilizada para la transición de protocolos) en la cuenta. Los dos cmdlet finales aplican la autoridad de delegación a recursos específicos del dominio, los SPN para el servidor SQL Server y 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)

Instala PBIRS solo en modo de configuración .

Inmediatamente después de instalar PBIRS, debe configurarlo para admitir la autenticación Kerberos. PBIRS solo admite de manera predeterminada la autenticación NTLM. Durante la instalación, actualiza uno de los archivos de configuración PBIRS, ya sea en la interfaz o a través de la línea de comandos, antes de completar la configuración PBIRS. Si usas una instalación PBIRS existente, haz los cambios y reinicia el servicio PBIRS para que los cambios entren en vigor. El archivo de configuración es el rsreportserver.config. Está en el camino donde se instala PBIRS. Por ejemplo, en una instalación predeterminada de PBIRS, el archivo se encuentra en la siguiente ubicación:

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

Utiliza cualquier editor de texto para editar este archivo XML. Copia el archivo antes de editarlo. Después de abrir el archivo, busca la AuthenticationTypes etiqueta dentro del documento XML y añade los RSWindowsNegotiate atributos y RSWindowsKerberos antes del RSWindowsNTLM atributo. Por ejemplo:

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

Debes completar este paso porque SQL Server en Linux solo soporta autenticación SQL y Kerberos.

Note

Solo necesitas incluir el RSWindowsKerberos atributo, pero RSWindowsNegotiate es útil si quieres estandarizar los archivos de configuración PBIRS en una flota de servidores que soportan una mezcla de instancias de Windows y Linux SQL Server.

Configuración de la UI de PBIRS

Una vez reiniciado el servicio PBIRS después de que se hayan completado las modificaciones del archivo de configuración, puede continuar con las opciones de configuración de PBIRS restantes, como establecer la cuenta de servicio basada en dominio y conectarse a la instancia remota de SQL Server en Linux.

La cuenta de servicio PBIRS debe aparecer dentro de la instancia de SQL Server con los permisos adecuados. Puede comprobar los permisos en SQL Server Management Studio (SSMS). En Explorador de objetos, vaya a Inicios de sesión > de seguridad, haga clic con el botón derecho en la cuenta CORPNET\pbirsservice y seleccione Propiedades. Los permisos están visibles en la página Asignación de usuario.

Por último, añade el reportuser como inicio de sesión en SQL Server para fines de prueba. En este caso, elegiste el enfoque sencillo y añadiste al usuario al rol de base de datos fijo db_datareader dentro de dos bases de datos de usuario: AdventureWorks y AdventureWorksDW.

Después de implementar los informes

Si necesita configurar suscripciones de informes una vez que los informes han sido implementados, se recomienda configurar las credenciales integradas en las fuentes de datos de PBIRS. Todas las opciones de credenciales funcionan correctamente, excepto el uso de credenciales incrustadas configuradas con la opción suplantar al usuario que visualiza el informe. Este paso produce un error al usar credenciales de Windows debido a una limitación dentro de la implementación de SQL Server en Linux que dificulta la suplantación.