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

Requisitos previos

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

Máquinas configuradas

Machine Sistema operativo Detalles
Controlador de dominio de Windows Windows Server 2019 o Windows Server 2022
Informar desarrollo e implementación (WIN19) Windows Server 2019 ejecutando Visual Studio 2019 - Informar desarrollo e implementación

- Servicios de recursos compartidos de archivos que sirven como repositorio para la salida de informe programada o controlada por 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, que ejecuta SQL Server 2019 (15.x) con la CU más reciente

Configuración de cuentas

Account name Detalles
CORPNET\cluadmin Cuentas de usuario locales. 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

En este escenario de ejemplo se usan servidores independientes y cuentas independientes para asegurarse de que la delegación de Kerberos funciona correctamente (es decir, se están administrando escenarios de doble salto).

Configuración de SQL Server en Linux

Antes de continuar con la configuración (o reconfiguración) de PBIRS para usar SQL Server en Linux como back-end para hospedar las bases de datos del catálogo del servidor de informes, asegúrese de que la instancia de SQL Server en Linux se ha unido al dominio.

Puede instalar y configurar adutil y unirse al dominio siguiendo las instrucciones en Tutorial: Uso de adutil para configurar la autenticación de Active Directory con SQL Server en Linux.

Nota:

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

Nombres de entidades de seguridad de servicio (SPN) de SQL Server

Antes de instalar y configurar PBIRS, debe configurar los SPN necesarios en el dominio CORPNET. En este caso, se puede usar un usuario con privilegios de administración de dominio, pero cualquier usuario con permisos suficientes para crear SPN es suficiente. Después de la creación del SPN, las cuentas deben configurarse para usar la delegación limitada de Kerberos.

Estos son los SPN mínimos necesarios para este escenario:

  • Con un símbolo del sistema de administración, cree el SPN para la cuenta de servicio de SQL Server en Linux. Esta instancia usa 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 controlar los requisitos de Kerberos para reenviar vales Kerberos, cuando se trabaja dentro de una implementación de delegación restringida, se configura la delegación mediante la extensión de Microsoft al estándar Kerberos MIT, tal como se especifica en RFC 4120 y se usa el Servicio para usuario a proxy (S4U2proxy). Este mecanismo permite que el servicio PBIRS y el servicio SQL Server obtengan vales de servicio a otros servicios especificados en nombre de un usuario.

Por ejemplo, cuando reportuser se autentica con la interfaz web del servidor PBIRS para ver un informe, el informe se ejecuta y tiene que acceder a datos desde un origen de datos como una tabla de SQL Server. El servicio SQL Server debe obtener el vale de servicio Kerberos reportuser, que se concedió durante el proceso de autenticación al servidor PBIRS. La extensión S4U2proxy proporciona la transición de protocolo necesaria para pasar las credenciales necesarias sin tener que reenviar el TGT del usuario (vale de concesión de vales) o la clave de sesión del usuario.

Para lograr esto, la cuenta de servicio PBIRS (pbirsservice en este ejemplo) y la cuenta de servicio de SQL Server (linuxservice en este ejemplo) deben concederse el derecho de autenticación de confianza para la delegación en el dominio. Hay varias maneras de conceder este derecho (es decir, Editor ADSI, Ordenador y Usuarios UI, etc.). En este ejemplo se usa un comando de 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 Kerberos, sino la delegación S4U2proxy (para la transición de protocolo) 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 Kerberos, sino la delegación S4U2proxy (para la transición de protocolo) 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)

PBIRS debe instalarse en modo solo 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 el proceso de instalación, debe actualizar uno de los archivos de configuración de PBIRS antes de completar el proceso de configuración de PBIRS, ya sea en la UI o a través de la línea de comandos. Si usa una instalación de PBIRS existente, debe realizar las modificaciones y se debe reiniciar el servicio PBIRS para que entre en vigor. El archivo de configuración es el rsreportserver.config. Está en la ruta de acceso donde se instaló 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

Este archivo XML se puede editar en cualquier editor de texto. Recuerde realizar una copia del archivo antes de editarlo. Una vez que haya abierto el archivo, busque la etiqueta AuthenticationTypes dentro del documento XML y agregue los atributos RSWindowsNegotiate y RSWindowsKerberos antes del atributo RSWindowsNTLM. Por ejemplo:

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

Este paso es necesario, ya que SQL Server en Linux solo admite la autenticación SQL y Kerberos.

Nota:

Solo es necesario incluir el atributo RSWindowsKerberos, pero usar RSWindowsNegotiate es útil si se quieren estandarizar los archivos de configuración de PBIRS en una flota de servidores que admiten una combinación de instancias de SQL Server de Windows y Linux.

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, podemos agregar el reportuser como inicio de sesión en SQL Server con fines de prueba. En este caso, tomamos el botón sencillo y agregamos el usuario al rol de db_datareader dentro de dos bases de datos de usuario: AdventureWorks y AdventureWorksDW.

Una vez implementados los informes

Si necesita configurar suscripciones de informe una vez implementados los informes, se recomienda configurar las credenciales insertadas en los orígenes de datos 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.