Compartir a través de


Registro de SPN para una instancia de Analysis Services

Un nombre principal 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 en la que se ejecuta la instancia de servicio.

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

Para que se produzca la autenticación mutua, los SPN construidos por el cliente deben coincidir con un objeto SPN correspondiente en un controlador de dominio (DC) de Active Directory. Esto significa que es posible que tenga que registrar varios SPN para una sola instancia de Analysis Services para cubrir todas las formas en que un usuario podría especificar el nombre de host en una cadena de conexión. Por ejemplo, probablemente necesite dos SPNs para manejar tanto el nombre de dominio totalmente calificado (FQDN) de un servidor, como el nombre corto de equipo. El registro correcto del SPN de Analysis Services es esencial para una conexión correcta. Si el SPN no existe, tiene un formato incorrecto o está duplicado, se producirá un error en la conexión.

El registro de SPN es una tarea manual realizada por el administrador de Analysis Services. A diferencia del motor de base de datos de SQL Server, Analysis Services nunca registra automáticamente su SPN al iniciar el servicio. El registro manual es necesario cuando Analysis Services se ejecuta en la cuenta virtual predeterminada, una cuenta de usuario de dominio o una cuenta integrada, incluido un SID por servicio.

El registro de SPN no es necesario si el servicio se ejecuta en una cuenta de servicio administrada predefinida creada por un administrador de dominio. Tenga en cuenta que, en función del nivel funcional del dominio, el registro de un SPN puede requerir 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.

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 secciones siguientes:

Cuando se requiere el registro de SPN

Formato SPN para Servicios de Análisis

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 puertos fijos

Cuando se requiere el registro de SPN

Cualquier conexión de cliente que especifique "SSPI=Kerberos" en la cadena de conexión presentará 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, consulte Configurar Analysis Services para la delegación limitada de Kerberos.

  • La delegación de identidad es necesaria para fluir la identidad de usuario desde la aplicación cliente o el servicio de nivel intermedio a Analysis Services. La delegación de identidad se usa normalmente cuando los permisos o filtros por usuario se definen en objetos específicos.

    Un escenario común que implica la delegación de identidades consiste en configurar servicios de nivel intermedio, como Excel Services o Reporting Services, para la delegación restringida con el fin de suplantar una identidad de usuario al recuperar datos en Analysis Services. Para admitir este comportamiento, debe proporcionar un SPN de Analysis Services como servicio de destino al configurar Excel Services 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 para bases de datos tabulares mediante el modo DirectQuery. Este es el único escenario en el que Analysis Services delegará la identidad de usuario a otro servicio.

Formato 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, consulte SetSPN.

En la tabla siguiente se describe cada parte de un SPN de Analysis Services.

Elemento Descripción
Clase Service MSOLAPSvc.3 identifica el servicio como una instancia de Analysis Services. El .3 es una referencia a la versión del protocolo XMLA over-TCP/IP usado en las transmisiones de Analysis Services. No está relacionado con el lanzamiento 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 ejecuta el servicio. Puede ser un nombre de dominio totalmente calificado o un nombre NetBIOS. 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 hay 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.

En el caso de los clústeres con equilibrio de carga de Analysis Services, el nombre de host debe ser el nombre virtual asignado al clúster.

Nunca cree un SPN mediante la dirección IP. Kerberos usa las funcionalidades de resolución DNS del dominio. Especificar una dirección IP omite esa funcionalidad.
Número de puerto Aunque el número de puerto forma parte de la sintaxis de SPN, nunca se especifica un número de puerto al registrar un SPN de Analysis Services. El carácter de dos puntos ( : ), que normalmente se usa para proporcionar un número de puerto en la sintaxis SPN estándar, es utilizado por Analysis Services para especificar el nombre de la instancia. Para una instancia de Analysis Services, se supone que el puerto es 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 a través de su nombre de instancia.

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

Tenga en cuenta que la sintaxis para especificar una instancia de Analysis Services con nombre difiere de la usada por otras instancias de SQL Server. Otros servicios usan una barra diagonal inversa ( \ ) para anexar el nombre de instancia en un SPN.
Cuenta de servicio Esta 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 (MSA) o una cuenta integrada, como un SID por servicio, NetworkService o LocalSystem. Una cuenta de usuario de dominio de Windows se puede formatear como dominio\usuario o user@domain.

Registro de SPN para una cuenta virtual

Las cuentas virtuales son el tipo de cuenta predeterminado para 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 indica el nombre, estas cuentas no existen en Active Directory. Solo existe una cuenta virtual en el equipo local. Al conectarse a servicios externos, aplicaciones o dispositivos, la conexión se realiza mediante la cuenta del equipo local. Por este motivo, un registro de SPN para Analysis Services que se ejecuta en una cuenta virtual es realmente un registro de SPN para la cuenta de máquina.

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

En este ejemplo se muestra la sintaxis setpn de la instancia predeterminada de Analysis Services que se ejecuta en la cuenta virtual predeterminada. En este ejemplo, el nombre de host del equipo es AW-SRV01. Como se indicó, el registro de SPN debe especificar la cuenta de máquina 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 NetBIOS y un segundo para un nombre de dominio plenamente calificado del host. Las diferentes aplicaciones cliente usan diferentes convenciones de nombre de host al conectarse a Analysis Services. Tener dos registros de SPN garantiza que ambas versiones del nombre de host se tengan en cuenta.

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

En este ejemplo se muestra la sintaxis setpn para una instancia con nombre que se ejecuta 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

El uso de una cuenta de dominio para ejecutar una instancia de Analysis Services es una práctica habitual.

En el caso de las instancias de Analysis Services que se ejecutan en un clúster con equilibrio de carga de red o hardware, se necesita una cuenta de dominio, con cada instancia del clúster ejecutándose en la misma cuenta de dominio.

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

En este ejemplo se muestra la sintaxis setpn de 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 el SPN se creó para el servidor de Analysis Services ejecutando Setspn -L <domain account> o Setspn -L <machinename>, dependiendo de cómo se registró el SPN. Debería ver MSOLAPSVC.3/<hostname> en la lista.

Registro de SPN para una cuenta integrada

Aunque no se recomienda esta práctica, las instalaciones anteriores de Analysis Services a veces se configuran 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 que se ejecuta bajo una cuenta integrada o un SID por servicio es equivalente a la sintaxis de SPN utilizada para la cuenta virtual. En lugar del nombre de la cuenta, use la cuenta de máquina:

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

Registro de SPN para una instancia nombrada

Las instancias con nombre de Analysis Services usan asignaciones de puerto dinámicas detectadas por el servicio SQL Server Browser. Cuando se usa una instancia con nombre, registre un SPN para el servicio SQL Server Browser y la instancia con nombre de Analysis Services. Para obtener más información, vea Un SPN para el servicio SQL Server Browser es necesario cuando se establece una conexión a una instancia con nombre de SQL Server Analysis Services o de SQL Server.

Ejemplo de sintaxis de SPN para el servicio SQL Browser que se ejecuta como LocalService

La clase de servicio es MSOLAPDisco.3. De forma predeterminada, este servicio se ejecuta como NT AUTHORITY\LocalService, lo que significa que el registro de SPN se establece para la cuenta de equipo. En este ejemplo, la cuenta de equipo es AW-SRV01, correspondiente al nombre del equipo.

Setspn -S MSOLAPDisco.3/AW-SRV01.AdventureWorks.com AW-SRV01  

Registro de SPN para un clúster de SSAS

En el caso de los clústeres de respaldo 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, especificado durante el programa de instalación de SQL Server al instalar Analysis Services encima de un WSFC existente. Puede encontrar este nombre en Active Directory. También puede encontrarlo en la pestaña Administrador de Clústeres de Conmutación por Error | Rol | Recursos. El nombre del servidor en la pestaña Recursos es lo que se debe usar como el "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 son necesarios para usar el puerto predeterminado (TCP 2383) y que se ejecutan en la misma cuenta de usuario de dominio para que cada nodo tenga el mismo SID. Vea Cómo agrupar SQL Server Analysis Services para obtener más información.

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

En función de los requisitos de la solución, es posible que haya configurado Analysis Services para el acceso HTTP. Si la solución incluye IIS como componente de nivel intermedio y la autenticación Kerberos es un requisito de solución, es posible que tenga que 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 términos de registro de SPN para la instancia de Analysis Services, no hay ninguna diferencia entre una instancia configurada para TCP o HTTP. La conexión a Analysis Services desde IIS, mediante la extensión ISAPI MSMDPUMP, siempre es TCP.

Esto significa que puede usar las instrucciones de las secciones anteriores para la instancia predeterminada o con nombre 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 el 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 puertos fijos

No se puede especificar un número de puerto en un registro de SPN de Analysis Services. Si instaló Analysis Services como la instancia predeterminada y la configuró para escuchar en un puerto fijo, ahora debe configurarlo para que escuche en el puerto predeterminado (TCP 2383). Para las instancias con nombre, debe usar el servicio SQL Server Browser y las asignaciones de puertos dinámicos.

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 sobre la configuración del puerto, vea Configurar firewall de Windows para permitir el acceso a Analysis Services.

Véase también

Autenticación y delegación de identidad de Microsoft BI
Autenticación mutua mediante Kerberos
Cómo configurar SQL Server 2008 Analysis Services y SQL Server 2005 Analysis Services para usar la autenticación Kerberos
Sintaxis setSPN de nombres de entidad de seguridad de servicio (SPN) (Setspn.exe)
¿Qué SPN uso y cómo llega allí?
SetSPN
Guía paso a paso de las cuentas de servicio
Configurar los permisos y las cuentas de servicio de Windows
Uso de SPN al configurar aplicaciones web hospedadas en Internet Information Services
novedades de las cuentas de servicio
Configurar la autenticación Kerberos para productos de SharePoint 2010 (documento técnico)