Share via


Configurar el acceso HTTP a SQL Server Analysis Services en 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 OLAP requiere 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. O bien, 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. IIS admite la autenticación anónima y la autenticación básica. La configuración de Analysis Services para el acceso HTTP permite usar estos métodos de autenticación alternativos con Analysis Services.

  • 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 utilizar las bibliotecas de cliente de Analysis Services para el acceso de datos, puede usar 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 admitidas de una instancia de Analysis Services OLAP que interactúe con IIS 7.0, incluido SQL Server 2008 R2, SQL Server 2008 y SQL Server 2005.

En este tema se incluyen las secciones siguientes:

Información general

Copie 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. Debe crear y configurar un directorio virtual, cada uno con su propio conjunto de archivos MSMDPUMP, para cada instancia de Analysis Services a la que desee conectarse. El archivo de configuración de cada conjunto de archivos MSMDPUMP especifica el nombre de la instancia de servidor 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 el Firewall de Windows para obtener acceso a Analysis Services.

SSAS_HttpAccess_Pump

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 el host local), 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 de usuario pasa desapercibida 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 Analysis Services back-end. 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.

Copie MSMDPUMP.dll en una carpeta del servidor web.

En esta sección, copia el ejecutable MSMDPUMP, el archivo de configuración y los archivos de recursos de las carpetas de programas de Analysis Services a una carpeta del directorio virtual OLAP que crea en el sistema de archivos.

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. En el servidor web, cree la carpeta siguiente: <unidad>:\inetpub\wwwroot\olap

  2. Copie el contenido de la carpeta ISAPI del equipo Analysis Services en la carpeta the \inetpub\wwwroot\olap recién creada.

    La carpeta ISAPI puede encontrarse en <unidad>:\Archivos de programa\Microsoft SQL Server\<instancia>\OLAP\bin\isapi. Contiene los archivos y carpeta siguientes: MSMDPUMP.DLL, MSMDPUMP.INI y una carpeta de recursos que contiene los archivos de recursos de idioma.

    Nota

    Observe que el formato del nombre de instancia ha cambiado en las versiones recientes de SQL Server. Si utiliza SQL Server 2008 R2, el nombre de la instancia predeterminada es MSAS10_50.MSSQLSERVER. Si usa versiones anteriores de SQL Server, los nombres de instancia se crean en secuencia por orden de instalación, donde MSSQL.1 es el primer servicio instalado, MSSQL.2 es el segundo y así sucesivamente. Puede que tenga que abrir las carpetas de instancia para determinar cuál tiene los archivos de programa de Analysis Services.

  3. Compruebe que la carpeta \inetpub\wwwroot\olap\isapi del servidor web contiene lo siguiente: MSMDPUMP.DLL, MSMDPUMP.INI y una carpeta de recursos.

Crear un grupo de aplicaciones y un directorio virtual en IIS

La configuración del acceso HTTP comienza creando 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.

    SSAS_HttpAccess_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.

    SSAS_HttpAccess_AddAP

  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.

    SSAS_HttpAccess_AdvSettings

  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 utilizar.

  5. De manera predeterminada, en un sistemas 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.

    SSAS_HttpAccess_AddVdir

  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.

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

En esta sección, seguirá configurando el directorio virtual OLAP recién creado. Especificará un método de autenticación y después agregará una asignación de script. Para obtener más información acerca de los métodos de autenticación, vea Métodos de autenticación de II.

  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.

    SSAS_HttpAccess_IIS

  3. Si está utilizando la seguridad integrada de Windows, elija Autenticación de Windows.

    Se trata del modo más seguro y recomendado, pero requiere que IIS pueda tener acceso a las credenciales de dominio del usuario, mediante Microsoft Active Directory® u otro mecanismo. Si Analysis Services e IIS están en equipos diferentes, tendrá que habilitar Kerberos y configurar la delegación restringida en Analysis Services. Está fuera del ámbito de este tema explicar todas las configuraciones posibles.

    SSAS_HttpAccess_IISAuth

  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. 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.

    La autenticación básica resulta útil cuando se desea recopilar las credenciales del usuario del cliente, ofreciendo a los usuarios un modo de acceder al sitio web mediante credenciales que son distintas de las de su cuenta de inicio de sesión de Windows personal. Si selecciona la autenticación básica, IIS lee el encabezado HTTP de cada solicitud para un nombre de usuario y contraseña. Si no encuentra las credenciales apropiadas, IIS envía una respuesta al cliente en la que se le pide un nombre de usuario y una contraseña. El cliente pide al usuario las credenciales y después usa la codificación Base64 para enviar el nombre de usuario y la contraseña al servidor. Aunque las credenciales estén codificadas, no están cifradas y, por tanto, no son seguras. Esta es la razón por la que se recomienda encarecidamente que los sitios web usen una combinación de autenticación básica y SSL para cifrar las credenciales que el cliente envía al servidor.

  5. Deshabilite Autenticación anónima a menos que vaya a establecer conexiones a través de IUSR_<nombreDeEquipo>. Si habilita la autenticación anónima, IIS siempre la usará primero, incluso si habilita otros métodos de autenticación.

    Si habilita la autenticación anónima, asegúrese de que la cuenta IUSR_ <nombreDeEquipo> del servidor web disponga de los permisos de acceso a datos apropiados en la base de datos de Analysis Services.

    Cuando este modo está seleccionado, el bombeo (msmdpump.dll) se ejecuta con las credenciales de IUSR_<nombreDeEquipo>. Por tanto, cada conexión de Analysis Services se abre como usuario de IUSR_<nombreDeEquipo>. Cuando este modo está seleccionado, no se distingue qué usuarios se están conectando a IIS y cuáles a Analysis Services. Este modo 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 directorio virtual.

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

    SSAS_HttpAccess_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.

    SSAS_HttpAccess_AddScript

  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 haga clic en Aceptar de nuevo para terminar de agregar la asignación de script.

    SSAS_HttpAccess_RequestRestrictions

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

    SSAS_HttpAccess_ISAPIPrompt

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

Abra el archivo msmdpump.ini que se encuentra en la carpeta C:\inetpub\wwwroot\OLAP y eche un vistazo al 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 escucha en el puerto TCP/IP 2383. Si instaló Analysis Services como instancia predeterminada, no tiene que especificar ningún puerto en <nombreDeServidor> porque Analysis Services sabe cómo escuchar en el puerto 2383 de modo automático. Sin embargo, no necesita permitir las conexiones de entrada en ese puerto en Firewall de Windows. Para obtener más información, vea Configurar el Firewall de Windows para obtener 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.

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 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.

  • En Excel, en Datos, haga clic en Conexiones. En Obtener datos externos, haga clic en Desde otros orígenes y elija Desde Analysis Services. En Nombre de servidor, escriba la dirección HTTP de la extensión msmdpump: http://my-web-srv01/OLAP/msmdpump.dll

  • 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

Asegúrese de realizar las pruebas de forma más rigurosa con un equipo cliente real que se ejecute en el entorno de red desde el que se vayan a originar las conexiones. Recuerde conceder los permisos de acceso apropiados en el servidor Analysis Services (ya sea IUSR_<nombreDeEquipo> si habilitó las conexiones anónimas o las identidades Windows de los usuarios que se conectan a MSMDPUMP mediante IIS.)