Registro de SPN para una instancia de Analysis Services

Se aplica a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Un nombre de entidad de seguridad de servicio (SPN) identifica de forma única una instancia de servicio en un dominio de Active Directory cuando Kerberos se usa para autenticar mutuamente las identidades de cliente y servicio. Un SPN está asociado a la cuenta de inicio de sesión bajo la que se ejecuta la instancia del servicio.

Para las aplicaciones cliente que se conectan a Analysis Services a través de la autenticación Kerberos, las bibliotecas de cliente de Analysis Services crean un SPN con el nombre de host de la cadena de conexión y otras variables conocidas, como la clase de servicio, que son fijas en cualquier versión determinada de Analysis Services.

Para que se realice la autenticación mutua, los SPN generados por el cliente deben coincidir con un objeto de SPN correspondiente de un controlador de dominio (DC) de Active Directory. Esto significa que puede ser necesario registrar varios SPN para que una sola instancia de Analysis Services abarque todas las formas en las que un usuario puede especificar el nombre de host en una cadena de conexión. Por ejemplo, probablemente necesite dos SPN para controlar tanto el nombre de dominio completo (FQDN) de un servidor como el nombre corto de equipo. Es fundamental registrar correctamente el SPN de Analysis Services para que una conexión se realice correctamente. Si el SPN no existe, es incorrecto o está duplicado, se producirá un error en la conexión.

El registro de SPN suele ser una tarea manual que realiza el administrador de Analysis Services. A diferencia del motor de base de datos de SQL Server, Analysis Services nunca registra automáticamente su SPN durante el inicio del servicio. Es necesario realizar el registro manual cuando Analysis Services se ejecuta en una cuenta virtual predeterminada, una cuenta de usuario de dominio o una cuenta integrada, lo cual incluye un SID por servicio.

El registro de SPN no es necesario si el servicio se ejecuta con una cuenta de servicio administrada predefinida que un administrador de dominio ha creado. Tenga en cuenta que según el nivel funcional del dominio, para registrar un SPN puede ser necesario tener permisos de administrador de dominio.

Sugerencia

Microsoft Administrador de configuración de Kerberos para SQL Server es una herramienta de diagnóstico que sirve para solucionar problemas de conectividad de Kerberos relacionados con SQL Server. Para obtener más información, vea Administrador de configuración de Microsoft Kerberos para SQL Server.

Este tema contiene las siguientes secciones:

Cuando se requiere el registro de SPN

Formato de SPN para Analysis Services

Registro de SPN para una cuenta virtual

Registro de SPN para una cuenta de dominio

Registro de SPN para una cuenta integrada

Registro de SPN para una instancia con nombre

Registro de SPN para un clúster de SSAS

Registro de SPN para instancias de SSAS configuradas para el acceso HTTP

Registro de SPN para instancias de SSAS que escuchan en varios puertos fijos

Cuándo se necesita un registro de SPN

Cualquier conexión de cliente que especifique "SSPI=Kerberos" en el cadena de conexión introducirá los requisitos de registro de SPN para una instancia de Analysis Services.

El registro de SPN es necesario en las siguientes circunstancias. Para obtener información más detallada, vea Configure Analysis Services for Kerberos constrained delegation.

  • La delegación de identidad es necesaria para que la identidad del usuario fluya de la aplicación cliente o del servicio de nivel intermedio a Analysis Services. La delegación de identidad se usa normalmente cuando se han definido permisos o filtros por usuario en objetos concretos.

    Un escenario común que implica la delegación de identidad es la configuración de los servicios de nivel intermedio, como Servicios de Excel o Reporting Services, para la delegación restringida con el fin de representar la identidad de un usuario cuando se recuperan datos en Analysis Services. Para admitir este comportamiento, debe proporcionar un SPN de Analysis Services como servicio de destino al configurar los Servicios de Excel o Reporting Services para la delegación restringida.

  • Analysis Services delega una identidad de usuario al recuperar datos de una base de datos relacional de SQL Server en el caso de bases de datos tabulares que usan el modo DirectQuery. Este es el único escenario en el que Analysis Services suplantará la identidad del usuario para otro servicio.

Formato de SPN para Analysis Services

Use setspn para registrar un SPN. En los sistemas operativos más recientes, setspn se instala como una utilidad del sistema. Para obtener más información, vea SetSPN.

En la tabla siguiente se describen la distintas partes de un SPN de Analysis Services.

Elemento Descripción
Clase de servicio MSOLAPSvc.3 identifica el servicio como una instancia de Analysis Services. .3 es una referencia a la versión del protocolo XMLA sobre TCP/IP usado en las transmisiones de Analysis Services. No está relacionado con la versión del producto. Por lo tanto, MSOLAPSvc.3 es la clase de servicio correcta para SQL Server 2005, 2008, 2008 R2, 2012 y cualquier versión futura de Analysis Services hasta que se revise el propio protocolo.
Nombre de host Identifica el equipo en el que se está ejecutando el servicio. Puede ser un nombre de dominio completo o un nombre NetBIOS. Se debe registrar un SPN para ambos.

Al registrar un SPN para el nombre NetBIOS de un servidor, asegúrese de usar SetupSPN -S para comprobar si se produce un registro duplicado. No se garantiza que los nombres netBIOS sean únicos en un bosque y tener un registro de SPN duplicado hará que se produzca un error en la conexión.

Para los clústeres de carga equilibrada de Analysis Services, el nombre de host debe ser el nombre virtual asignado al clúster.

No cree nunca un SPN con la dirección IP. Kerberos emplea las capacidades de resolución de DNS del dominio. Al especificar una dirección IP se elude esa capacidad.
Número de puerto Aunque el número de puerto forma parte de la sintaxis de SPN, no especifique nunca un número de puerto al registrar un SPN de Analysis Services. Analysis Services suele usar el carácter de dos puntos (:) para proporcionar un número de puerto en la sintaxis estándar de SPN, con el fin de especificar el nombre de instancia. En el caso de una instancia de Analysis Services, se supone que el puerto será el puerto predeterminado (TCP 2383) o un puerto asignado por el servicio SQL Server Browser (TCP 2382).
Nombre de instancia Analysis Services es un servicio replicable que se puede instalar varias veces en el mismo equipo. Cada instancia se identifica mediante su nombre de instancia.

El nombre de instancia tiene como prefijo un carácter de dos puntos (:). Por ejemplo, dado un equipo host con el nombre SRV01 y una instancia con el nombre SSAS-Tabular, el SPN debe ser SRV01:SSAS-Tabular.

Observe que la sintaxis para especificar una instancia con nombre de Analysis Services es distinta de la que usan otras instancias de SQL Server. Otros servicios usan una barra diagonal inversa (\) para anexar el nombre de instancia en un SPN.
Cuenta de servicio Es la cuenta de inicio del servicio MSSQLServerOLAPService de Windows. Puede ser una cuenta de usuario de dominio de Windows, una cuenta virtual, una cuenta de servicio administrada o una cuenta integrada, como un SID por servicio, NetworkService o LocalSystem. A una cuenta de usuario de dominio de Windows se le puede aplicar el formato dominio\usuario o usuario@dominio.

Registro de SPN para una cuenta virtual

Las cuentas virtuales son el tipo de cuenta predeterminado de los servicios de SQL Server. La cuenta virtual es NT Service\MSOLAPService para una instancia predeterminada y NT Service\MSOLAP$<instance-name> para una instancia con nombre.

Como implica el nombre, estas cuentas no existen en Active Directory. Una cuenta virtual solo existe en el equipo local. Cuando se conecta a servicios, aplicaciones o dispositivos externos, la conexión se realiza mediante la cuenta de equipo local. Por esta razón, un registro de SPN para Analysis Services en ejecución en una cuenta virtual es realmente un registro de SPN para la cuenta de equipo.

Sintaxis de ejemplo para una instancia predeterminada que se ejecuta como Servicio NT\MSOLAPService

En este ejemplo se muestra la sintaxis de setspn para la instancia predeterminada de Analysis Services en ejecución en la cuenta virtual predeterminada. En este ejemplo, el nombre de host del equipo es AW-SRV01. Tal y como se indicó, el registro de SPN debe especificar la cuenta de equipo en lugar de la cuenta virtual, NT Service\MSOLAPService.

Setspn -s MSOLAPSvc.3/AW-SRV01.AdventureWorks.com AW-SRV01  

Nota

Recuerde crear dos registros de SPN, uno para el nombre de host de NetBIOS y otro para el nombre de dominio completo del host. Las diferentes aplicaciones cliente utilizan distintas convenciones de nombre de host cuando se conectan a Analysis Services. El uso de dos registros de SPN asegura que se tienen en cuenta ambas versiones del nombre de host.

Sintaxis de ejemplo para una instancia con nombre que se ejecuta como NT Service\MSOLAP$<instance-name>

En este ejemplo se muestra la sintaxis de setspn para una instancia con nombre en ejecución en la cuenta virtual predeterminada. En este ejemplo, el nombre de host del equipo es AW-SRV02 y el nombre de instancia es AW-FINANCE. De nuevo, es la cuenta de máquina que se especifica para el SPN, en lugar de la cuenta virtual NT Service\MSOLAP$<instance-name>.

Setspn -s MSOLAPSvc.3/AW-SRV02.AdventureWorks.com:AW-FINANCE AW-SRV02  

Registro de SPN para una cuenta de dominio

Una práctica común consiste en usar una cuenta de dominio para ejecutar una instancia de Analysis Services.

Para las instancias de Analysis Services que se ejecutan en un clúster de carga equilibrada de red o de hardware, se necesita una cuenta de dominio, con cada instancia del clúster en ejecución en la misma cuenta de dominio.

Sintaxis de ejemplo para una instancia predeterminada que se ejecuta como usuario de dominio

En este ejemplo se muestra la sintaxis de setspn para la instancia predeterminada de Analysis Services que se ejecuta en una cuenta de usuario de dominio, SSAS-Service, en el dominio AdventureWorks.

Setspn -s msolapsvc.3/AW-SRV01.Adventureworks.com AdventureWorks\SSAS-Service  

Sugerencia

Compruebe si se ha creado el SPN para el servidor de Analysis Services ejecutando Setspn -L <domain account> o Setspn -L <machinename>, según la forma en que se haya registrado el SPN. Debería ver MSOLAPSVC.3/<nombre de host> en la lista.

Registro de SPN para una cuenta integrada

Aunque esta práctica no se recomienda, las instalaciones antiguas de Analysis Services están configuradas a veces para ejecutarse en cuentas integradas como Servicio de red, Servicio local o Sistema local.

Sintaxis de ejemplo para una instancia predeterminada que se ejecuta en una cuenta integrada

El registro de SPN para un servicio en ejecución en una cuenta integrada o un SID por servicio equivale a la sintaxis de SPN usada para la cuenta virtual. En lugar del nombre de cuenta, use la cuenta de equipo:

Setspn -s MSOLAPSvc.3/AW-SRV01.AdventureWorks.com AW-SRV01  

Registro de SPN para una instancia con nombre

De forma predeterminada, las instancias con nombre de Analysis Services usan asignaciones de puerto dinámicas detectadas por el servicio SQL Server Browser. Solo tiene que crear un SPN netBIOS y FQDN para la instancia con nombre para habilitar las conexiones Kerberos.

Sintaxis de ejemplo para una instancia con nombre que se ejecuta como un usuario de dominio

En el ejemplo siguiente se muestra la setspn sintaxis de la instancia AW-FINANCE con nombre de Analysis Services que se ejecuta en una cuenta de usuario de dominio, SSAS-Service, en el dominio AdventureWorks. En este ejemplo, el nombre de host del equipo es AW-SRV01.

FQDN SPN: Setspn -s MSOLAPSvc.3/AW-SRV01.AdventureWorks.com:AW-FINANCE AdventureWorks\SSAS-Service 

NetBIOS SPN: Setspn -s MSOLAPSvc.3/AW-SRV01:AW-FINANCE AdventureWorks\SSAS-Service 

Nota

Si configuró la instancia con nombre para escuchar en un puerto fijo, realice los pasos siguientes para usar las conexiones Kerberos desde la aplicación cliente:

  1. Inicie el servicio Explorador de SQL Server .
  2. Si usa un número de puerto en la cadena de conexión, quite el número de puerto, agregue el nombre de la instancia y deje que la aplicación reciba el número de puerto a través del servicio SQL Server Browser.

Sugerencia

Compruebe si el SPN se creó para la instancia con nombre de SQL ejecutando el Setspn -L <domain account> comando o Setspn -L <machinename> , en función de cómo se registró el SPN.

Microsoft Administrador de configuración de Kerberos para SQL Server es una herramienta de diagnóstico que sirve para solucionar problemas de conectividad de Kerberos relacionados con SQL Server. Esta herramienta puede ayudar a identificar posibles problemas en los SPN y las delegaciones y proporcionar procedimientos automatizados para corregir los problemas identificados. Para obtener más información, vea Administrador de configuración de Microsoft Kerberos para SQL Server.

Registro de SPN para un clúster de SSAS

Para los clústeres de conmutación por error de Analysis Services, el nombre de host debe ser el nombre virtual asignado al clúster. Este es el nombre de red de SQL Server que se especificó durante la instalación de SQL Server en el momento de instalar Analysis Services sobre un WSFC existente. Puede encontrar este nombre en Active Directory. También puede encontrarlo en la pestañaRecursos derol | del Administrador | de clústeres de conmutación por error. El nombre del servidor en la pestaña Recursos es lo que se debe usar como "nombre virtual" en el comando SPN.

Sintaxis de SPN para un clúster de Analysis Services

Setspn -s msolapsvc.3/<virtualname.FQDN > <domain user account>  

Recuerde que los nodos de un clúster de Analysis Services deben usar el puerto predeterminado (TCP 2383) y ejecutarse bajo la misma cuenta de usuario de dominio para que cada nodo tenga el mismo SID. Vea el artículo sobre cómo organizar en clúster SQL Server Analysis Services para más información.

Registro de SPN para instancias de SSAS configuradas para acceso HTTP

En función de los requisitos de la solución, puede que haya configurado Analysis Services para acceso HTTP. Si la solución incluye IIS como componente de nivel intermedio, y la autenticación Kerberos es un requisito de la solución, puede que sea necesario registrar manualmente un SPN para IIS. Para obtener más información, vea "Configurar las opciones en el equipo que ejecuta IIS" en Configuración de SQL Server 2008 Analysis Services y SQL Server 2005 Analysis Services para usar la autenticación Kerberos.

En cuanto al registro de SPN para la instancia de Analysis Services, no hay ninguna diferencia entre una instancia configurada para TCP o para HTTP. La conexión con Analysis Services desde IIS, mediante la extensión ISAPI de MSMDPUMP, siempre es TCP.

Esto significa que puede usar las instrucciones de las secciones anteriores relativas a la instancia con nombre o predeterminada para registrar el SPN. Al especificar el nombre de host, asegúrese de usar el nombre de host que especificó en el archivo msmdpump.ini al configurar el servicio para acceso HTTP.

Para obtener más información sobre el acceso HTTP, vea Configurar el acceso HTTP a Analysis Services en Internet Information Services (IIS) 8.0.

Registro de SPN para instancias de SSAS que escuchan en varios puertos fijos

No se puede especificar un número de puerto en un registro de SPN de Analysis Services. El registro de SPN de Analysis Services solo puede usar el nombre de instancia. Si instaló Analysis Services como una instancia predeterminada y la configuró para escuchar en un puerto no predeterminado, no puede conectarse a esa instancia mediante Kerberos. Debe configurarlo para que escuche en el puerto predeterminado (TCP 2383) para habilitar las conexiones Kerberos a esa instancia. Una instancia predeterminada de Analysis Services que escucha en un puerto no predeterminado solo puede aceptar conexiones NTLM. Para las instancias con nombre, debe iniciar SQL Server servicio Browser y usar nombres de instancia en las cadenas de conexión en lugar de números de puerto.

Una instancia de Analysis Services solo puede escuchar en un único puerto. No se admite el uso de varios puertos. Para obtener más información acerca de la configuración de puertos, vea Configure the Windows Firewall to Allow Analysis Services Access.

Consulte también

Autenticación y delegación de identidades de Microsoft BI
Autenticación mutua con Kerberos
Sintaxis de nombres SetSPN de los nombres de entidad de servicio (SPN) (Setspn.exe)
Setspn
Guía paso a paso de las cuentas de servicio
Configurar los permisos y las cuentas de servicio de Windows
Cómo usar SPN al configurar aplicaciones web que se hospedan en Internet Information Services
novedades de las cuentas de servicio
Configurar la autenticación de Kerberos para productos de SharePoint 2010 (notas del producto)