Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
se aplica a:
SQL Server Analysis Services
Azure Analysis Services
Fabric/Power BI Premium
Un Service Principal Name (SPN) identifica unívocamente una instancia de servicio en un dominio de Active Directory cuando se usa Kerberos 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 SPN para controlar el nombre de dominio completo (FQDN) de un servidor, así como el nombre de equipo corto. 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.
Este tema contiene las siguientes secciones:
Cuando se requiere el registro de SPN
Formato 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 operan 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 restringida 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 | Description |
|---|---|
| Clase de servicio | 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 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 servidor | Identifica el equipo en el que se ejecuta el servicio. Puede ser un nombre de dominio completo 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, se usa en 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 la 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 está precedido por 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 completo 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 requiere una cuenta de dominio, y cada instancia del clúster debe ejecutarse con 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 asignado 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
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 SPNs de NetBIOS y FQDN para la instancia nombrada para habilitar las conexiones Kerberos.
Sintaxis de ejemplo para una instancia con nombre que se ejecuta como usuario de dominio
En el ejemplo siguiente se muestra la sintaxis de la setspn 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 que escuche en un puerto fijo, siga estos pasos para usar las conexiones Kerberos desde la aplicación cliente:
- Inicie el servicio Explorador de SQL Server .
- Si usa un número de puerto en la cadena de conexión, quite el número de puerto, agregue el nombre de 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 mediante la ejecución del comando Setspn -L <domain account> o Setspn -L <machinename>, en función de cómo se registró el SPN.
Microsoft Kerberos Configuration Manager para SQL Server es una herramienta de diagnóstico que ayuda a solucionar problemas de conectividad relacionados con Kerberos 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
En el caso de los clústeres de conmutación por error de Analysis Services, el nombre del 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 el Administrador de clústeres de conmutación por error | en la pestaña Roles | 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. 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 el servicio SQL Server 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 sobre la configuración del puerto, vea Configurar firewall de Windows para permitir el acceso a Analysis Services.
Véase también
Autenticación de Microsoft BI y delegación de identidad
Autenticación mutua mediante Kerberos
Service Principal Names (SPN) Sintaxis de SetSPN (Setspn.exe)
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 en las cuentas de servicio
Configurar la autenticación Kerberos para Productos de SharePoint 2010 (documento técnico)