Configurar el acceso HTTP a Analysis Services en Internet Information Services (IIS) 7.0

Puede habilitar el acceso HTTP a Analysis Services configurando MSMDPUMP.dll, una extensión ISAPI que se ejecuta en Internet Information Services (IIS) y bombea los datos entre las aplicaciones cliente y un servidor de Analysis Services. Este método proporciona una alternativa para conectarse a Analysis Services cuando una solución BI necesita las capacidades siguientes:

  • El acceso de cliente se realiza a través de conexiones de una extranet o Internet, con restricciones en los puertos que se pueden habilitar.

  • Las conexiones de cliente provienen de dominios que no son de confianza en la misma red.

  • La aplicación cliente se ejecuta en un entorno que permite conexiones HTTP pero no TCP/IP.

  • Se requieren métodos de autenticación diferentes a la seguridad integrada de Windows. Específicamente, puede utilizar conexiones anónimas y la autenticación básica al configurar Analysis Services para el acceso HTTP. La autenticación Digest, Formularios y ASP.NET no se admite.

  • Las aplicaciones cliente no pueden usar las bibliotecas de cliente de Analysis Services (por ejemplo, una aplicación Java que se ejecuta en un servidor UNIX). Si no puede usar las bibliotecas de cliente de Analysis Services para el acceso de datos, use SOAP y XML/A a través de una conexión HTTP directa a una instancia de Analysis Services.

En este tema se explica cómo configurar el acceso HTTP a una instancia de Analysis Services con IIS 7.0. Estas instrucciones son válidas para cualquier edición o versión admitida de una instancia de Analysis Services que interactúe con IIS 7.0, incluidos SQL Server 2012, SQL Server 2008 R2, SQL Server 2008 y SQL Server 2005. El acceso HTTP es compatible tanto con servidores de modo tabular como de modo multidimensional.

[!NOTA]

La compatibilidad con las metodologías de autenticación varía en las aplicaciones cliente y servidor a través de la pila BI. Para obtener más información sobre los escenarios habilitados a través del acceso HTTP a Analysis Services, vea Autenticación Microsoft BI y delegación de identidad.

En este tema se incluyen las secciones siguientes:

  • Información general

  • Requisitos previos

  • Copiar MSMDPUMP.dll en una carpeta del servidor web

  • Crear un grupo de aplicaciones y un directorio virtual en IIS

  • Configurar la autenticación IIS y agregar la extensión

  • Modificar el archivo MSMDPUMP.INI para establecer el servidor de destino

  • Probar la configuración

Información general

MSMDPUMP es una extensión ISAPI que se carga en IIS y permite la redirección a una instancia de Analysis Services que está en el mismo equipo o en un equipo remoto dentro del mismo dominio. Al configurar esta extensión ISAPI, crea un extremo HTTP a una instancia de Analysis Services.

Debe crear y configurar un directorio virtual para cada extremo HTTP. Cada extremo tendrá su propio conjunto de archivos MSMDPUMP para cada instancia de Analysis Services a la que desee conectarse. Un archivo de configuración en este conjunto de archivos especifica el nombre de la instancia de Analysis Services que se usa para cada extremo HTTP.

En IIS, MSMDPUMP se conecta a Analysis Services con el proveedor OLE DB de Analysis Services a través de TCP/IP. Tanto Analysis Services como IIS deben estar en el mismo dominio o en dominios de confianza para que la conexión nativa sea correcta.

Cuando MSMDPUMP se conecta a Analysis Services, lo hace con una identidad de usuario Windows. Esta cuenta será la cuenta anónima, si configuró el directorio virtual para las conexiones anónimas, o una cuenta de usuario Windows. La cuenta debe tener los permisos de acceso de datos apropiados en la base de datos y el servidor Analysis Services.

[!NOTA]

No olvide desbloquear los puertos en Firewall de Windows para permitir las conexiones cliente a un servidor Analysis Services remoto. Para obtener más información, vea Configurar Firewall de Windows para permitir el acceso a Analysis Services.

Diagrama que muestra las conexiones entre los componentes

En la siguiente tabla se enumeran consideraciones adicionales que se aplican al habilitar el acceso HTTP en diferentes escenarios.

Escenario

Configuración

IIS y Analysis Services en el mismo equipo

Se trata de la configuración más sencilla porque permite usar la configuración predeterminada (en la que el nombre de servidor es localhost), el proveedor OLE DB local de Analysis Services y la seguridad de Windows integrada con NTLM. Suponiendo que el cliente también esté en el mismo dominio, la autenticación es transparente para el usuario y no le requiere ningún esfuerzo.

IIS y Analysis Services en equipos diferentes

En esta topología, debe instalar el proveedor OLE DB para Analysis Services en el servidor web. También debe modificar el archivo msmdpump.ini para especificar la ubicación de la instancia de Analysis Services en el equipo remoto.

Esta topología agrega un paso de autenticación de doble salto, en el que las credenciales deben fluir del cliente al servidor web y en el servidor back-end de Analysis Services. Si especifica las credenciales de Windows y NTLM, obtendrá un error porque NTLM no permite la delegación de las credenciales de cliente en un segundo servidor. La solución más habitual es usar la autenticación básica con Capa de sockets seguros (SSL), pero esto requerirá que los usuarios proporcionen un nombre de usuario y una contraseña al acceder al directorio virtual de MSMDPUMP. Un método más sencillo podría ser habilitar Kerberos y configurar la delegación restringida de Analysis Services para que los usuarios puedan acceder a Analysis Services de un modo transparente.

Considere qué puertos desbloquear en Firewall de Windows. Tendrá que desbloquear los puertos en ambos servidores para permitir el acceso a la aplicación web en IIS y a Analysis Services en un servidor remoto.

Las conexiones de cliente provienen de un dominio que no es de confianza o de una conexión de la extranet

Las conexiones de cliente que provienen de un dominio que no es de confianza imponen mayores restricciones en la autenticación. De forma predeterminada, Analysis Services usa la autenticación integrada de Windows, que requiere que los usuarios estén en el mismo dominio que el servidor. Si tiene usuarios de la extranet que se conectan a IIS desde fuera del dominio, recibirán un error de conexión si el servidor está configurado para usar la configuración predeterminada.

Como solución alternativa, puede hacer que los usuarios de la extranet se conecten a través de una VPN con las credenciales del dominio. Sin embargo, sería mejor solución habilitar la autenticación básica y SSL en el sitio web de IIS.

Requisitos previos

En el servidor web IIS, asegúrese de instalar al proveedor OLE DB de Analysis Services (MSOLAP) para SQL Server 2012. Puede descargar el proveedor del paquete de características de SQL Server 2012.

Paso 1: Copiar los archivos MSMDPUMP en una carpeta del servidor web

Cada extremo HTTP que cree debería tener su propio conjunto de archivos MSMDPUMP. En este paso, copia el ejecutable MSMDPUMP, el archivo de configuración y los archivos de recursos de las carpetas de programas de Analysis Services a una nueva carpeta del directorio virtual IIS que creará en el sistema de archivos del equipo que ejecuta IIS.

La unidad debe tener el formato del sistema de archivos NTFS. La ruta de acceso a la carpeta que cree no debe contener ningún espacio.

  1. Busque los archivos que necesita copiar: MSMDPUMP.DLL, MSMDPUMP.INI y una carpeta de recursos que contiene los archivos de recursos de idioma. Estos archivos pueden encontrarse en <unidad>:\Archivos de programa\Microsoft SQL Server\<instancia>\OLAP\bin\isapi.

    [!NOTA]

    Observe que el formato del nombre de instancia ha cambiado en versiones recientes de SQL Server. Si usa SQL Server 2012, el nombre de la instancia predeterminada es MSAS11.MSSQLSERVER.

  2. Copie todos los archivos dentro de la carpeta \OLAP\bin\isapi, incluido el contenido de la subcarpeta Resources.

  3. En el servidor web, cree una nueva carpeta: <unidad>:\inetpub\wwwroot\OLAP

  4. Pegue los archivos que copió anteriormente en esta nueva carpeta.

  5. Compruebe que la carpeta \inetpub\wwwroot\OLAP del servidor web contenga lo siguiente: MSMDPUMP.DLL, MSMDPUMP.INI y una carpeta de recursos. La estructura de carpetas debe tener una apariencia como esta:

    • <unidad>:\inetpub\wwwroot\OLAP\MSMDPUMP.dll

    • <unidad>:\inetpub\wwwroot\OLAP\MSMDPUMP.ini

    • <unidad>:\inetpub\wwwroot\OLAP\Resources

Paso 2: Crear un grupo de aplicaciones y un directorio virtual en IIS

A continuación, cree un grupo de aplicaciones y un directorio virtual que proporcione un extremo al bombeo.

Crear un grupo de aplicaciones

  1. Inicie el Administrador de IIS. Haga clic en Inicio, elija Ejecutar y escriba Inetmgr.

    Captura de pantalla de un comando de ejecución con el ejecutable de inetmgr

  2. Haga clic con el botón secundario en Grupos de aplicaciones y haga clic en Agregar grupo de aplicaciones. Cree un grupo de aplicaciones denominado OLAP, mediante .NET Framework v2.0.50727, con el modo de canalización administrado establecido en Clásico.

    Captura de pantalla del cuadro de diálogo Agregar grupo de aplicaciones

  3. De forma predeterminada, IIS crea grupos de aplicaciones con Servicio de red como identidad de seguridad. Para cambiar la identidad del grupo de aplicaciones recién creado, haga clic con el botón secundario en OLAP y seleccione Configuración avanzada.

    Captura de pantalla de la página de propiedades Configuración avanzada

  4. En Identidad, haga clic en la cuenta integrada que IIS especificó. Según la versión de Windows que use, es Servicio de red (mostrado en la captura de pantalla) o ApplicationPoolIdentity. Haga clic en el botón Cambiar para que esta propiedad reemplace la cuenta integrada con la cuenta personalizada que desea usar.

  5. De manera predeterminada, en un sistema operativo de 64 bits, IIS establece la propiedad Habilitar aplicaciones de 32 bits en false. Si copió el archivo msmdpump.dll de una instalación de 64 bits de Analysis Services, es la opción correcta para la extensión MSMDPUMP en un servidor IIS de 64 bits. Si copió los archivos binarios de MSMDPUMP de una instalación de 32 bits, establézcala en true. Compruebe esta propiedad ahora para asegurarse de que se ha establecido correctamente.

Crear un directorio virtual

  1. En el Administrador de IIS, abra Sitios, haga clic con el botón secundario en Sitio web predeterminado (o en cualquier sitio web que use para tener acceso al bombeo) y haga clic en Agregar directorio virtual.

  2. En Alias, escriba OLAP.

  3. En Ruta de acceso física, haga clic en el botón Examinar y navegue a C:\inetpub\wwwroot\OLAP. Haga clic en Aceptar.

    Captura de pantalla del cuadro de diálogo Agregar directorio virtual

  4. Haga clic con el botón secundario en el directorio virtual OLAP recién creado, haga clic en Convertir en aplicación.

  5. En el cuadro de diálogo Agregar aplicación, junto a Grupo de aplicaciones, haga clic en Seleccionar y elija el grupo de aplicaciones OLAP que creó en la sección anterior.

  6. Haga clic dos veces en Aceptar para aceptar los cambios y convertir la aplicación.

Paso 3: Configurar la autenticación IIS y agregar la extensión

En este paso, seguirá configurando el directorio virtual SSAS recién creado. Especificará un método de autenticación y después agregará una asignación de script. Algunos métodos de autenticación admitidos para Analysis Services sobre HTTP son los siguientes:

  • Autenticación de Windows (Kerberos o NTLM)

  • Autenticación anónima

  • Autenticación básica

La autenticación anónima se suele utilizar durante las pruebas iniciales debido a que su facilidad de configuración ayuda a validar rápidamente la conectividad HTTP a Analysis Services. En unos pocos pasos, puede asignar una cuenta de usuario único como identidad, conceder a esa cuenta permisos en Analysis Services, utilizar la cuenta para comprobar el acceso a los datos en una aplicación cliente y, después, deshabilitar la autenticación anónima cuando se complete la prueba.

También puede utilizar la autenticación anónima en un entorno de producción si los usuarios no tienen cuentas de usuario de Windows pero seguir las prácticas recomendadas bloqueando los permisos del sistema host, como se explica en este artículo: Habilitar la autenticación anónima (IIS 7). Asegúrese de que la autenticación se establece en el directorio virtual y no en el sitio Web primario, para reducir aún más el nivel de acceso de la cuenta.

Cuando se habilita la autenticación anónima, cualquier conexión de usuario al extremo HTTP se permite como usuario anónimo. No podrá auditar conexiones de usuario individuales, ni utilizar la identidad de usuario para seleccionar datos de un modelo. Como puede ver, el uso de la autenticación anónima afecta a todo, desde el diseño del modelo a la actualización y el acceso a los datos. Sin embargo, si los usuarios no tienen un inicio de sesión de usuario de Windows con el que empezar, el uso de la cuenta anónima podría ser la única opción.

La autenticación de Windows se considera la más segura y aprovecha la infraestructura existente para las redes que utilizan Active Directory. Para utilizar la autenticación de Windows con eficacia, todos los exploradores, aplicaciones cliente y aplicaciones de servidor deben admitirla. Es el modo más seguro y recomendado, pero requiere que IIS pueda tener acceso a un controlador de dominio de Windows que pueda autenticar la identidad del usuario que solicita una conexión.

Para las topologías que colocan a Analysis Services e IIS en equipos diferentes, deberá resolver los problemas del doble salto que surgen cuando una identidad de usuario tiene que delegarse a un segundo servicio en un equipo remoto, normalmente habilitando Analysis Services para la delegación restringida de Kerberos. Para obtener más información, vea Configurar Analysis Services para la delegación limitada de Kerberos.

La autenticación básica se usa cuando se tienen identidades de Windows pero las conexiones de usuario son de dominios que no son de confianza, lo que prohíbe el uso de conexiones suplantadas o delegadas. La autenticación básica le permite especificar una identidad y una contraseña en una cadena de conexión. En lugar de utilizar el contexto de seguridad del usuario actual, las credenciales de la cadena de conexión se utilizan para conectarse a Analysis Services. Dado que Analysis Services solo admite la autenticación de Windows, las credenciales que se le pasan deben ser un usuario o un grupo de Windows que sea miembro del dominio en el que Analysis Services se hospeda.

Establecer el tipo de autenticación y el mapa de script

  1. En el Administrador de IIS, abra Sitios, abra Sitio web predeterminado y seleccione el directorio virtual OLAP.

  2. Haga doble clic en Autenticación en la sección de IIS de la página principal.

    Captura de pantalla de la página principal del Administrador IIS

  3. Si está usando la seguridad integrada de Windows, habilite Autenticación de Windows.

    Captura de pantalla de la configuración de autenticación de directorio virtual

  4. También puede habilitar la autenticación básica si las aplicaciones cliente y servidor están en dominios diferentes. Este modo requiere que el usuario escriba un nombre de usuario y una contraseña. El nombre de usuario y la contraseña se transmiten a través de la conexión HTTP a IIS. IIS intentará suplantar al usuario utilizando las credenciales proporcionadas al conectarse a MSMDPUMP, pero las credenciales no se delegarán a Analysis Services. En su lugar, deberá pasar un nombre de usuario y una contraseña válidos en una conexión, como se describe en el paso 6 de este documento.

    Nota de seguridadNota de seguridad

    Tenga en cuenta que es imprescindible siempre que se crea un sistema en el que la contraseña se transmita disponer de métodos para proteger el canal de comunicaciones. IIS proporciona un conjunto de herramientas que le ayudan a proteger el canal. Para obtener más información, vea Configurar SSL en IIS 7.

  5. Deshabilite la Autenticación anónima si está utilizando la autenticación básica o la autenticación de Windows. Cuando se habilita la autenticación anónima, IIS siempre la usará primero, incluso si se habilitan otros métodos de autenticación.

    En la autenticación anónima, el bombeo (msmdpump.dll) se ejecuta como la cuenta de usuario que estableció para el usuario anónimo. No hay distinción entre el usuario que se conecta a IIS y el usuario que se conecta a Analysis Services. De forma predeterminada, IIS usa la cuenta IUSR, pero puede cambiarla a una cuenta de usuario de dominio que tenga permisos de red. Necesitará esta capacidad si IIS y Analysis Services están en equipos diferentes.

    Para obtener instrucciones sobre cómo configurar las credenciales para la autenticación anónima, vea Autenticación anónima.

    Nota de seguridadNota de seguridad

    La autenticación anónima es más probable que se encuentre en un entorno sumamente controlado, donde a los usuarios se les da o se les deniega el acceso mediante listas de control de acceso en el sistema de archivos. Para las prácticas recomendadas, vea Habilitar la autenticación anónima (IIS 7).

  6. Haga clic en el directorio virtual OLAP para abrir la página principal. Haga doble clic en Asignaciones de controlador.

    Captura de pantalla de la página principal del Administrador IIS

  7. Haga clic con el botón secundario en cualquier lugar de la página y seleccione Agregar asignación de script. En el cuadro de diálogo Agregar asignación de script, especifique *.dll como la ruta de acceso de la solicitud, especifique c:\inetpub\wwwroot\olap\msmdpump.dll como el ejecutable y escriba OLAP como nombre.

    Captura de pantalla del cuadro de diálogo Agregar asignación de script

  8. Haga clic en Restricciones de solicitudes.

  9. En la pestaña Verbos, compruebe que está seleccionado Todos los verbos. Haga clic en Aceptar y otra vez en Aceptar para terminar de agregar la asignación de script.

    Captura de pantalla del cuadro de diálogo Restricciones de solicitudes

  10. Cuando se le solicite que permita la extensión ISAPI, haga clic en .

    Captura de pantalla de la confirmación para agregar la extensión de ISAPI

Paso 4: Modificar el archivo MSMDPUMP.INI para establecer el servidor de destino

El archivo MSMDPUMP.INI especifica la instancia de Analysis Services a la que se conecta MSMDPUMP.DLL. Esta instancia puede ser local o remota, instalarse como la predeterminada o como una instancia con nombre.

Abra el archivo msmdpump.ini que se encuentra en la carpeta C:\inetpub\wwwroot\OLAP y examine el contenido de este archivo. Debería ser similar al siguiente:

<ConfigurationSettings>
<ServerName>localhost</ServerName>
<SessionTimeout>3600</SessionTimeout>
<ConnectionPoolSize>100</ConnectionPoolSize>
</ConfigurationSettings>

Si la instancia de Analysis Services para la que está configurando el acceso HTTP se encuentra en el equipo local y se instala como una instancia predeterminada, no hay ninguna razón para cambiar este valor. De lo contrario, debe especificar el nombre del servidor (por ejemplo, <nombreDeServidor>ADWRKS-SRV01</nombreDeServidor>). Para un servidor instalado como una instancia con nombre, asegúrese de agregar el nombre de instancia (por ejemplo, <NombreDeServidor>ADWRKS-SRV01\Tabular</NombreDeServidor>).

De forma predeterminada, Analysis Services realiza la escucha en el puerto TCP/IP 2383. Si ha instalado Analysis Services como la instancia predeterminada, no es necesario especificar ningún puerto en <ServerName>, ya que Analysis Services sabe cómo escuchar en el puerto 2383 automáticamente. Sin embargo, no necesita permitir las conexiones de entrada en ese puerto en Firewall de Windows. Para obtener más información, vea Configurar Firewall de Windows para permitir el acceso a Analysis Services.

Si configuró una instancia con nombre o predeterminada de Analysis Services para escuchar en un puerto fijo, debe agregar el número de puerto al nombre de servidor (por ejemplo, <nombreDeServidor>AW-SRV01:55555</nombreDeServidor>) y debe permitir las conexiones de entrada en Firewall de Windows en ese puerto.

Paso 5: Conceder permisos de acceso

Como se indicó anteriormente, deberá conceder permisos de acceso a los datos en la instancia de Analysis Services. Cada objeto de base de datos tendrá roles que proporcionan un nivel determinado de permisos (lectura o lectura/escritura), y cada rol tendrá miembros que constan de identidades de usuario de Windows.

Para establecer los permisos puede utilizar SQL Server Management Studio. En la carpeta Base de datos | Roles, puede crear roles, especificar permisos de base de datos, asignar la pertenencia a las cuentas de grupo o de usuario de Windows y, a continuación, conceder permisos de lectura o escritura en objetos específicos. Normalmente, los permisos de Lectura en un cubo son suficientes para las conexiones de cliente que utilizan, pero no actualizan, los datos del modelo.

La asignación de roles varía en función de cómo configuró la autenticación.

Anónimo

Agregar a la lista de miembros la cuenta especificada en Editar las credenciales de autenticación anónima en IIS. Para obtener más información, vea Autenticación anónima.

Autenticación de Windows

Agregue a la lista de miembros las cuentas de usuario o grupo de Windows que solicitan datos de Analysis Services a través de la suplantación y la delegación.

Autenticación básica

Agregue a la lista de miembros las cuentas de usuario o de grupo de Windows que se pasarán en la cadena de conexión.

Para obtener más información sobre cómo establecer los permisos, vea Autorizar el acceso a objetos y operaciones (Analysis Services).

Paso 6: Probar la configuración

La sintaxis de la cadena de conexión para MSMDPUMP es la dirección URL del archivo MSMDPUMP.dll.

Si la aplicación web escucha en un puerto fijo, anexe el número de puerto al nombre de servidor o a la dirección IP (por ejemplo, http://mi-web-srv01:8080/OLAP/msmdpump.dll o http://123.456.789.012:8080/OLAP/msmdpump.dll.

Para probar rápidamente la conexión, puede abrir una conexión con Microsoft Excel o SQL Server Management Studio.

Probar las conexiones con Excel

  1. En la pestaña Datos de Excel, en Obtener datos externos, haga clic en Desde otras fuentes y, a continuación, elija Desde el Asistente para la conexión de datos para iniciar el asistente.

  2. En Nombre de servidor, escriba la dirección HTTP de la extensión msmdpump: http://my-web-srv01/OLAP/msmdpump.dll.

  3. Para las credenciales de inicio de sesión, elija Usar la autenticación de Windows si utiliza la seguridad integrada de Windows o NTLM, o el usuario anónimo.

    Para la autenticación básica, elija Usar el nombre de usuario y la contraseña siguientes y después especifique las credenciales que se utilizan para iniciar sesión. Las credenciales que proporcione se pasarán en la cadena de conexión a Analysis Services.

Probar las conexiones con SQL Server Management Studio

  1. En Management Studio, en el cuadro de diálogo Conectar al servidor, seleccione Analysis Services como tipo de servidor. En Nombre de servidor, escriba la dirección HTTP de la extensión msmdpump: http://my-web-srv01/OLAP/msmdpump.dll.

  2. La autenticación debe ser la de Windows y la persona que usa Management Studio debe ser un administrador de Analysis Services.

Probar las conexiones con AMO

Puede probar el acceso HTTP mediante programación utilizando AMO, sustituyendo la dirección URL del extremo para el nombre del servidor. Para obtener información detallada, vea Exposición en el foro (Cómo sincronizar las bases de datos SSAS 2008 R2 mediante HTTPS a través de los límites de dominio y bosque y de firewall).

Una cadena de conexión de ejemplo que muestra la sintaxis del acceso HTTP con la autenticación básica:

Data Source=https://<servername>/olap/msmdpump.dll; Initial Catalog=AdventureWorksDW2012; Integrated Security=Basic; User ID=XXXX; Password=XXXXX;

Para obtener más información acerca de la configuración de la conexión mediante programación, vea Establecer conexiones seguras en ADOMD.NET.

Como paso final, asegúrese de realizar las pruebas de forma más rigurosa con un equipo cliente que se ejecute en el entorno de red desde el que se vayan a originar las conexiones.

Vea también

Conceptos

Configurar Firewall de Windows para permitir el acceso a Analysis Services

Autorizar el acceso a objetos y operaciones (Analysis Services)

Otros recursos

Exposición en el foro (acceso HTTP mediante msmdpump y la autenticación básica)

Métodos de autenticación IIS

Cómo configurar SSL en IIS 7