Configuración de Kerberos para el uso de informes de Power BIConfigure Kerberos to use Power BI reports

Aprenda a configurar el servidor de informes para la autenticación Kerberos en los orígenes de datos que se utilizan en los informes de Power BI para un entorno distribuido.Learn how to configure your report server for Kerberos authentication to data sources used within your Power BI reports for a distributed environment.

El servidor de informes de Power BI incluye la capacidad de hospedar informes de Power BI.Power BI Report Server includes the ability to host Power BI reports. Muchos orígenes de datos son compatibles con el servidor de informes.Many data sources are supported by your report server. Aunque este artículo se centra específicamente en SQL Server Analysis Services, puede usar los conceptos y aplicarlos a otros orígenes de datos, como 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.

Puede instalar el servidor de informes de Power BI, SQL Server y Analysis Services en un único equipo. Todo debería funcionar sin ninguna configuración adicional.You can install Power BI Report Server, SQL Server and Analysis Services on a single machine and everything should work without additional configuration. Resulta muy útil para un entorno de prueba.This is great for a test environment. Se pueden producir errores si tiene estos servicios instalados en equipos independientes, lo que se denomina entorno distribuido.You may hit errors if you have these services installed on separate machines which is called a distributed environment. En este entorno, debe utilizar la autenticación Kerberos.In this environment, you are required to use Kerberos authentication. Es necesario realizar una configuración para la implementación.There is configuration required to implement this.

En concreto, deberá configurar una delegación restringida.Specifically, you will need to configure constrained delegation. Es posible que tenga Kerberos configurado en su entorno pero no se puede configurar para la delegación restringida.You may have Kerberos configured in your environment but it may not be configured for constrained delegation.

Error al ejecutar informeError running report

Si el servidor de informes no está configurado correctamente, puede recibir el siguiente error.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. 

En los detalles técnicos, verá este mensaje de error.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.

Configuración de la delegación restringida de KerberosConfiguring Kerberos constrained delegation

Hay varios elementos que se deben configurar para que la delegación restringida de Kerberos funcione.There are several items that need to be configured in order for Kerberos constrained delegation to work. Entre ellos, la configuración de los nombres de entidad de servicio (SPN) y de la delegación en las cuentas de servicio.This includes Service Principal Names (SPN) and delegation settings on service accounts.

Nota

Para configurar los SPN y la delegación, debe ser administrador de dominio.In order to configure SPNs and delegation settings, you need to be a domain administrator.

Es necesario configurar o validar lo siguiente.We will need to configure, or validate, the following.

  1. Tipo de autenticación dentro de la configuración del servidor de informes.Authentication type within Report Server config.
  2. SPN para la cuenta de servicio del servidor de informes.SPNs for the report server service account.
  3. SPN para el servicio Analysis Services.SPNs for the Analysis Services service.
  4. SPN para el servicio SQL Browser en el equipo de Analysis Services.SPNs for the SQL Browser service on the Analysis Services machine. Esto solo se aplica a instancias con nombre.This is for named instances only.
  5. Configuración de la delegación en la cuenta de servicio del servidor de informes.Delegation settings on the report server service account.

Tipo de autenticación dentro de la configuración del servidor de informesAuthentication type within Report Server configuration

Para permitir la delegación restringida de Kerberos, es preciso configurar el tipo de autenticación del servidor de informes.We need to configure the authentication type for the report server to allow for Kerberos constrained delegation. Esto se realiza en el archivo rsreportserver.config.This is done within the rsreportserver.config file. La ubicación predeterminada para este archivo es 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.

En el archivo rsreportserver.config, puede ir a la sección Authentication/AuthenticationTypes.Within the rsreportserver.config file, you will want to fine the Authentication/AuthenticationTypes section.

Hay que asegurarse de que aparezca RSWindowsNegotiate y de que sea el primero en la lista de tipos de autenticación.We want to make sure that RSWindowsNegotiate is listed and the first in the list of authentication types. El aspecto debería ser similar al siguiente.It should look similar to the following.

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

Si tiene que cambiar el archivo de configuración, deberá detener e iniciar el servidor de informes para asegurarse de que los cambios surtan efecto.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.

Para más información, consulte Configure Windows Authentication on the Report Server (Configuración de la autenticación de Windows en el servidor de informes).For more information, see Configure Windows Authentication on the Report Server.

SPN para la cuenta de servicio del servidor de informesSPNs for the report server service account

A continuación, hay que asegurarse de que el servidor de informes tenga disponibles unos SPN válidos.Next, we need to make sure that the report server has valid SPNs available. Esto se basa en la cuenta de servicio que está configurada para el servidor de informes.This is based on the service account that is configured for the report server.

Cuenta de servicio virtual o servicio de redVirtual Service Account or Network Service

Si el servidor de informes está configurado para la cuenta de servicio virtual o la cuenta de servicio de red, no tendría que hacer nada.If your report server is configured for the Virtual Service Account or Network Service account, you should not have to do anything. Entran en el contexto de la cuenta de equipo.These are in the context of the machine account. De forma predeterminada, la cuenta de equipo tendrá los SPN de HOST.The machine account will have HOST SPNs by default. Cubrirán el servicio HTTP y se usarán en el servidor de informes.These will cover the HTTP service and will be used by the report server.

Si está utilizando un nombre de servidor virtual que no sea igual al de la cuenta de equipo, las entradas HOST no le cubrirán y deberá agregar manualmente los SPN para el nombre de host del servidor virtual.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.

Cuenta de usuario de dominioDomain user account

Si el servidor de informes está configurado para usar una cuenta de usuario de dominio, tendrá que crear manualmente los SPN de HTTP en esa cuenta.If your report server is configured to use a domain user account, you will have to manually create HTTP SPNs on that account. Puede hacerse mediante la herramienta setspn que se incluye con Windows.This can be done using the setspn tool that comes with Windows.

Nota

Necesitará derechos de administrador de dominio para crear el SPN.You will need domain admin rights in order to create the SPN.

Se recomienda crear dos SPN.It is recommended to create two SPNs. Uno con el nombre de NetBIOS y el otro con el nombre de dominio completo (FQDN).One with the NetBIOS name and the other with the fully qualified domain name (FQDN). El SPN debe tener el formato siguiente.The SPN will be in the following format.

<Service>/<Host>:<port>

El servidor de informes de Power BI usará un servicio de HTTP.Power BI Report Server will use a Service of HTTP. Para los SPN de HTTP no mostrará ningún puerto.For HTTP SPNs you will not list a port. El servicio que le interesa aquí es HTTP.The service we are interested in here is HTTP. El host del SPN será el nombre que utiliza en una dirección URL.The host of the SPN will be the name you use in a URL. Suele ser el nombre del equipo.Typically, this is the machine name. Si está detrás de un equilibrador de carga, puede ser un nombre virtual.If you are behind a load balancer, this may be a virtual name.

Nota

Puede comprobar la dirección URL viendo lo que ha especificado en la barra de direcciones del explorador o puede buscar en el Administrador de configuración del servidor de informes en la pestaña de la dirección URL del portal 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 el nombre del equipo fuera ContosoRS, los SPN serían los siguientes.If your machine name is ContosoRS, your SPNs would be the following.

Tipo de SPNSPN Type SPNSPN
Nombre de dominio completo (FQDN)Fully Qualified Domain Name (FQDN) HTTP/ContosoRS.contoso.comHTTP/ContosoRS.contoso.com
NetBIOSNetBIOS HTTP/ContosoRSHTTP/ContosoRS

Ubicación de SPNLocation of SPN

Por lo tanto, ¿dónde coloca el SPN?So, where do you put the SPN? El SPN se colocará en lo que esté usando para la cuenta de servicio.The SPN will be placed on whatever you are using for your service account. Si utiliza una cuenta de servicio virtual o un servicio de red, será la cuenta de equipo.If you are using Virtual Service Account or Network Service, this will be the machine account. No obstante, se ha mencionado antes que solo debe hacerlo para una dirección URL virtual.Although we mentioned before you should only need to do this for a virtual URL. Si utiliza un usuario de dominio para la cuenta de servicio del servidor de informes, el SPN se colocará en esa cuenta de usuario de dominio.If you are using a domain user for the report server service account, then you will place the SPN on that domain user account.

Por ejemplo, si usa la cuenta de servicio de red y el nombre del equipo es ContosoRS, el SPN se colocará en 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 utiliza una cuenta de usuario de dominio de RSService, el SPN se colocará en RSService.If we are using a domain user account of RSService, we would place the SPN on RSService.

Uso de SetSPN para agregar el SPNUsing SetSPN to add the SPN

Se puede utilizar la herramienta SetSPN para agregar el SPN.We can use the SetSPN tool to add the SPN. Se sigue el mismo ejemplo que anteriormente con la cuenta de equipo y la cuenta de usuario de dominio.We will follow the same example as above with the Machine account and the domain user account.

Al colocar el SPN en una cuenta de equipo, tanto para el SPN de FQDN como para el de NetBIOS, tendría un aspecto similar al siguiente si utilizara una dirección URL virtual 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

Al colocar el SPN en una cuenta de usuario de dominio, tanto para el SPN de FQDN como para el de NetBIOS, tendría un aspecto similar al siguiente si utilizara el nombre de equipo para el host del SPN.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

SPN para el servicio Analysis ServicesSPNs for the Analysis Services service

Los SPN para Analysis Services son similares a lo que se ha hecho con el servidor de informes de Power BI.The SPNs for Analysis Services are similar to what we did with Power BI Report Server. El formato del SPN es un poco distinto si tiene una instancia con nombre.The format of the SPN is a little different if you have a named instance.

Para Analysis Services, se usa un servicio de MSOLAPSvc.3.For Analysis Services, we use a Service of MSOLAPSvc.3. En el SPN se especificará el nombre de instancia para la ubicación del puerto.We will specify the instance name for the port location on the SPN. La parte del host del SPN será el nombre del equipo o el nombre virtual del clúster.The host part of the SPN will either be the machine name, or the Cluster virtual name.

Un ejemplo de un SPN de Analysis Services tendría un aspecto similar al siguiente.An example of an Analysis Services SPN would look like the following.

TipoType FormatoFormat
Instancia predeterminadaDefault instance MSOLAPSvc.3/ContosoAS.contoso.comMSOLAPSvc.3/ContosoAS.contoso.com
MSOLAPSvc.3/ContosoASMSOLAPSvc.3/ContosoAS
Instancia con nombreNamed instance MSOLAPSvc.3/ContosoAS.contoso.com:INSTANCENAMEMSOLAPSvc.3/ContosoAS.contoso.com:INSTANCENAME
MSOLAPSvc.3/ContosoAS:INSTANCENAMEMSOLAPSvc.3/ContosoAS:INSTANCENAME

La colocación del SPN también es similar a lo que se mencionó con el servidor de informes de Power BI.Placement of the SPN is also similar to what was mentioned with Power BI Report Server. Se basa en la cuenta de servicio.It is based on the service account. Si está usando el sistema local o el servicio de red, estará en el contexto de la cuenta de equipo.If you are using Local System or Network Service, you will be in the context of the machine account. Si está utilizando una cuenta de usuario de dominio para la instancia de Analysis Services, el SPN se colocará en la cuenta de usuario de dominio.If you are using a domain user account for the Analysis Services instance, you will place the SPN on the domain user account.

Uso de SetSPN para agregar el SPNUsing SetSPN to add the SPN

Se puede utilizar la herramienta SetSPN para agregar el SPN.We can use the SetSPN tool to add the SPN. En este ejemplo, el nombre del equipo será ContosoAS.For this example, the machine name will be ContosoAS.

Al colocar el SPN en una cuenta de equipo, tanto para el SPN de FQDN como para el de NetBIOS, tendría un aspecto similar al siguiente.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

Al colocar el SPN en una cuenta de usuario de dominio, tanto para el SPN de FQDN como para el de NetBIOS, tendría un aspecto similar al siguiente.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

SPN para el servicio SQL BrowserSPNs for the SQL Browser service

Si tiene una instancia con nombre de Analysis Services, debe asegurarse de que tiene un SPN para el servicio de explorador.If you have an Analysis Services named instance, you also need to make sure you have an SPN for the browser service. Se trata de algo exclusivo para Analysis Services.This is unique to Analysis Services.

Los SPN para SQL Browser son similares a lo que se ha hecho con el servidor de informes de Power BI.The SPNs for SQL Browser are similar to what we did with Power BI Report Server.

Para SQL Browser, se usa un servicio de MSOLAPDisco.3.For SQL Browser, we use a Service of MSOLAPDisco.3. En el SPN se especificará el nombre de instancia para la ubicación del puerto.We will specify the instance name for the port location on the SPN. La parte del host del SPN será el nombre del equipo o el nombre virtual del clúster.The host part of the SPN will either be the machine name, or the Cluster virtual name. No es necesario especificar nada en el nombre de la instancia o el puerto.You do not have to specify anything for the instance name or port.

Un ejemplo de un SPN de Analysis Services tendría un aspecto similar al siguiente.An example of an Analysis Services SPN would look like the following.

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

La colocación del SPN también es similar a lo que se mencionó con el servidor de informes de Power BI.Placement of the SPN is also similar to what was mentioned with Power BI Report Server. La diferencia es que SQL Browser siempre se ejecuta en la cuenta de sistema local.The difference here is that SQL Browser always runs under the Local System account. Esto significa que los SPN siempre se colocarán en la cuenta de equipo.This means that the SPNs will always go on the machine account.

Uso de SetSPN para agregar el SPNUsing SetSPN to add the SPN

Se puede utilizar la herramienta SetSPN para agregar el SPN.We can use the SetSPN tool to add the SPN. En este ejemplo, el nombre del equipo será ContosoAS.For this example, the machine name will be ContosoAS.

Al colocar el SPN en la cuenta de equipo, tanto para el SPN de FQDN como para el de NetBIOS, tendría un aspecto similar al siguiente.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

Para más información, consulte Se requiere un SPN para el servicio SQL Server Browser.For more information, see An SPN for the SQL Server Browser service is required.

Configuración de la delegación en la cuenta de servicio del servidor de informesDelegation settings on the report server service account

La última parte que se debe configurar es la configuración de la delegación en la cuenta de servicio del servidor de informes.The last part that we have to configure are the delegation settings on the report server service account. Hay diferentes herramientas que puede usar para realizar estos pasos.There are different tools you can use to perform these steps. Para este documento, solo se utilizará Usuarios y equipos de Active Directory.For the purposes of this document, we will stick with Active Directory Users and Computers.

Para comenzar, vaya a las propiedades de la cuenta de servicio del servidor de informes en Usuarios y equipos de Active Directory.You will need to start by going to the properties of the report server service account within Active Directory Users and Computers. Será la cuenta de equipo, si ha utilizado la cuenta de servicio virtual o el servicio de red, o una cuenta de usuario de dominio.This will either be the machine account, if you used Virtual Service Account or Network Service, or it will be a domain user account.

Va a configurar la delegación restringida con tránsito de protocolo.We will want to configure constrained delegation with protocol transiting. Con la delegación restringida, debe ser explícito en qué servicios desea delegar.With constrained delegation, you need to be explicit with which services we want to delegate to. Va a agregar tanto el SPN del servicio Analysis Services como el de SQL Browser a la lista a la que el servidor de informes de Power BI puede delegar.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. Haga clic con el botón derecho en la cuenta de servicio del servidor de informes y seleccione Propiedades.Right click on the report server service account and select Properties.
  2. Seleccione la ficha Delegación.Select the Delegation tab.
  3. Seleccione Confiar en este equipo para la delegación solo a los servicios especificados.Select Trust this computer for delegation to specified services only.
  4. Seleccione Usar cualquier protocolo de autenticación.Select Use any authentication protocol.
  5. En Services to which this account can present delegated credentials: (Servicios en los que esta cuenta puede presentar credenciales delegadas), seleccione Agregar.Under the Services to which this account can present delegated credentials: select Add.
  6. En el cuadro de diálogo nuevo, seleccione Users or Computers (Usuarios o equipos).In the new dialog, select Users or Computers.
  7. Escriba la cuenta de servicio para el servicio Analysis Services y seleccione Aceptar.Enter the service account for the Analysis Services service and select Ok.
  8. Seleccione el SPN que ha creado.Select the SPN that you created. Empezará por MSOLAPSvc.3.It will begin with MSOLAPSvc.3. Si ha agregado tanto el SPN de FQDN como el de NetBIOS, se seleccionarán ambos.If you added both the FQDN and the NetBIOS SPN, it will select both. Es posible que solo vea uno.You may only see one.
  9. Seleccione Aceptar.Select OK. Ahora debería ver el SPN en la lista.You should see the SPN in the list now.
  10. Si lo desea, puede seleccionar Expandido para mostrar el SPN de FQDN y el de NetBIOS en la lista.Optionally, you can select Expanded to show both the FQDN and NetBIOS SPN in the list.
  11. Seleccione Agregar de nuevo.Select Add again. Ahora va a agregar el SPN de SQL Browser.We will add the SQL Browser SPN now.
  12. En el cuadro de diálogo nuevo, seleccione Users or Computers (Usuarios o equipos).In the new dialog, select Users or Computers.
  13. Escriba el nombre de equipo del equipo en el que está el servicio SQL Browser y seleccione Aceptar.Enter the Machine name for the machine the SQL Browser service is on and select Ok.
  14. Seleccione el SPN que ha creado.Select the SPN that you created. Empezará por MSOLAPDisco.3.It will begin with MSOLAPDisco.3. Si ha agregado tanto el SPN de FQDN como el de NetBIOS, se seleccionarán ambos.If you added both the FQDN and the NetBIOS SPN, it will select both. Es posible que solo vea uno.You may only see one.
  15. Seleccione Aceptar.Select Ok. El cuadro de diálogo debe ser similar al siguiente si ha activado Expandido.The dialog should look similar to the following if you checked Expanded.

  16. Seleccione Aceptar.Select Ok.
  17. Reinicie el servidor de informes de Power BI.Reboot the Power BI Report Server.

Ejecución de un informe de Power BIRunning a Power BI Report

Una vez realizada toda la configuración anterior, el informe se debe mostrar correctamente.After all of the above configuration is in place, your report should display properly.

Aunque esta configuración debería funcionar en la mayoría de los casos, con Kerberos, puede requerir una configuración diferente en función de su entorno.While this configuration should work in most cases, with Kerberos, there can be different configuration depending on your environment. Si aun así no se carga el informe, deberá ponerse en contacto con el administrador de dominio para investigar en profundidad o con el soporte técnico.If the report will still not load, you will want to reach out to your domain administrator to investigate further or contact support.

Pasos siguientesNext steps

Manual del administradorAdministrator handbook
Inicio rápido: instalar un servidor de informes de Power BIQuickstart: Install Power BI Report Server

¿Tiene más preguntas?More questions? Pruebe a preguntar a la comunidad de Power BITry asking the Power BI Community