Habilitar acceso HTTP a Analysis Services en IIS

Pensando estos dias un proyecto para Analysis Services Tabular me encontré con que la seguirdad de SSAS ya sea en modo multidimensional o tabular es integrada y si queremos que funcione fuera de internet o fuera de dominio de entre otros iba tener que hacerlo con alguna alternativa.

Pues bien, para poder hacer esto hay que configurar tan solo tenemos que configurar IIS y este nos hace de portero (pasarela, autenticador) entre los clientes que quieren acceder y nuestra instancia de SSAS.

Para configurar IIS tendremos que seguir una serie de pasos que explico a continuación:

Copiar los archivos MSMDPUMP en una carpeta en el IIS

  1. Debemos buscar los archivos que se encuentra o se encontrarán en la ruta siguiente: <drive>:Program FilesMicrosoft SQL Server<instance>OLAPbinisapi. Digo se encuentran o se encontrarán porque dependiendo de si tenemos x86 o x64, un idioma u otro o si tenemos varias instancias esta ruta puede variar, por lo que tendremos que tener mucho ojo para no equivocarnos de archivos.
  2. Copiamos la carpeta en <drive>:inetpubwwwrootOLAP o en el directorio que tenamos configurado para nuestro IIS (este es el que viene por defecto).
    El directorio OLAP es por poner un  nombre, nosotros le podremos poner el que queramos.
  3. Dentro del directorio colocaremos lo que nos encontremos en la carpeta ISAPI (punto 1) con lo que quedará los siguienes archivos y carpetas:
    1. MSMDPUMP.dll
    2. MSMDPUMP.ini
    3. Resources (Carpeta)

Crear un application pool y directorio virtual en IIS

  1. Nos vamos a IIS pulsando inicio –-> Ejecutar (o control + r) –> Inetmgr para que nos abra la administración de IIS.
  2. Botón derecho en Application Pools y luego pulsamos Add Application Pool. en la siguiente ventana en Name ponemos OLAP, versión del framework v2.0.50.727 y el Managed pipeline mode en Classic.
  3. IIS por defecto crea un Application Pools usando Nertwork Service con identidad de seguridad, para cambiar esto sustituiremos built-in account por un usuario con permisos.
  4. Si estamos usando una máquina de 32bits, en esta misma ventana deberemos poner la propiedad Enable 32-bit Applications a true, si es 64 bits la dejamos tal como está.

Crear el directorio virtual

  1. En el IIS Manager, abrimos Sites, botón derecho en Default Web Site (o el que nosotros queramos usar) y a continuación Add Virtual Directory.
  2. En el Alias escribimos OLAP.
  3. En Physical path, la ruta donde copiamos anteriormente los archivos de ISAPI.
  4. Botón derecho sobre el directorio OLAP y le damos a Convert to Application. En el diálogo que no sale, pulsamos el botón select y en el nuevo diálogo que nos muestra en Application Pool elegimos OLAP. Click ok a todo para aceptar los cambios y convertir a aplicación

Configurar la autenticación IIS y añadir la extensión

Lo que vamos a hacer ahora es configurar la seguridad y añadir un script map. Los métodos de autenticación para Analysis Services sobre HTTP incluyen los siguientes:

  • Windows authentication (Kerberos o NTLM)
  • Anonymus authentication
  • Basic authentication

En sites, nos vamos a nuestro directorio virtual OLAP y hacemos doble click en authentication. Para mi caso he utilizado basic authentication ya que quería que el usuario metiese un usuario de dominio y que el IIS lo pase a la instancia OLAP. Aunque el usuario esté fuera de dominio, al pasarle las credenciales al IIS es este el que se encargará de hacer la validación contra dicha instancia. Habilitamos para ello Basic Authentication.

  1. Nos situamos otra vez en el directorio OLAP y hacemos doble click en Handler Mappings.
  2. Botón derecho y seleccionamos Add Script Map. En este escribimos los siguientes valores en las casillas:
    1. Request Path: *.dll
    2. Executable: directorio OLAP (<drive>:inetpubwwwrootOLAPmsmdpump.dll)
    3. Name: OLAP
  3. Click OK y al mensaje que sale le decimos que sí.

Editar el archivo MSMDPUMP.ini para establecer el servidor.

Si nos vamos a <drive>:inetpubwwwrootOLAP podremos modificar este archivo en el que decirle la instancia si la llevase o el puerto. Veamos algunos ejemplos:

  • Con instancia. <ServerName>Nombre-EquipoInstanciaTabular</ServerName>.
  • Con Puerto. <ServerName>Nombre-Equipo:33333</ServerName>.
  • Instancia y puerto. <ServerName>Nombre-Equipo:22334InstanciaTabular</ServerName>.

Por defecto, el puerto para Analysis Services es el 2383 por lo que si la instancia es la que hay por defecto no hay porque ponerle el puerto. Si tenemos otra instancia de Analysis Services y queremos saber el puerto y permitir el acceso echarle un ojo a este enlace: http://msdn.microsoft.com/en-us/library/ms174937.aspx donde nos explican como averiguarlo.

Probar nuestra configuración

Una vez configurado todo, la url que deberemos usar será algo parecida a esta: http://NuestraMáquina/OLAP/msmdpump.dll con ella configurada en Excel o Report Builder podremos entrar sin demasiados problemas Winking smile.

Referencia: http://msdn.microsoft.com/en-us/library/gg492140(v=sql.110).aspx

Espero que os haya sido de interés,

Un Saludo

Sin categoría

One thought on “Habilitar acceso HTTP a Analysis Services en IIS

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *