Configurer l'accès HTTP à SQL Server Analysis Services sur IIS 7.0

Vous pouvez activer l'accès HTTP à Analysis Services en configurant MSMDPUMP.dll, une extension ISAPI qui s'exécute dans Internet Information Services (IIS) et qui pompe des données entre des applications clients et un serveur Analysis Services. Cette approche constitue une alternative à la connexion à Analysis Services lorsque votre solution OLAP nécessite les capacités suivantes :

  • Un accès client via une connexion Internet ou extranet, avec des restrictions au niveau des ports à activer ou des connexions client provenant de domaines non approuvés du même réseau.

  • Une application cliente qui s'exécute dans un environnement réseau qui permet des connexions HTTP mais pas TCP/IP.

  • Des méthodes d'authentification autres que la sécurité intégrée de Windows sont requises. IIS prend en charge les connexions anonymes et l'authentification de base. La configuration d'Analysis Services pour l'accès HTTP vous permet d'utiliser ces méthodes d'authentification alternatives avec Analysis Services.

  • Des applications clientes qui ne peuvent pas utiliser les bibliothèques clientes Analysis Services (par exemple, une application Java s'exécutant sur un serveur UNIX). Si vous ne pouvez pas utiliser les bibliothèques clientes Analysis Services pour accéder aux données, vous pouvez utiliser SOAP et XML/A sur une connexion HTTP directe à une instance Analysis Services.

Cette rubrique explique comment configurer l'accès HTTP à une instance Analysis Services à l'aide d'IIS 7.0. Ces instructions valent pour toute version ou édition prise en charge d'une instance Analysis Services OLAP interagissant avec IIS 7.0, y compris SQL Server 2008 R2, SQL Server 2008 et SQL Server 2005.

Cette rubrique comprend les sections suivantes :

Vue d'ensemble

Copier le fichier MSMDPUMP.dll dans un dossier du serveur Web

Créer un pool d'applications et un répertoire virtuel dans IIS

Configurer l'authentification IIS et ajouter l'extension

Modifier le fichier MSMDPUMP.INI pour définir le serveur cible

Tester votre configuration

Vue d'ensemble

MSMDPUMP est une extension ISAPI qui se charge dans IIS et qui permet la redirection vers une instance Analysis Services, se trouvant sur le même ordinateur, ou bien sur un ordinateur distant du même domaine. Vous devez créer et configurer un répertoire virtuel, avec son propre groupe de fichiers MSMDPUMP, pour chaque instance Analysis Services à laquelle vous souhaitez vous connecter. Le fichier de configuration de chaque groupe de fichiers MSMDPUMP spécifie le nom de l'instance de serveur Analysis Services utilisée pour chaque point de terminaison HTTP.

Dans IIS, MSMDPUMP se connecte à Analysis Services à l'aide du fournisseur OLE DB Analysis Services via une connexion TCP/IP. Analysis Services et IIS doivent se trouver dans le même domaine, ou bien dans un domaine approuvé, pour que la connexion soit réussie.

Lorsque MSMDPUMP se connecte à Analysis Services, il le fait sous une identité d'utilisateur Windows. Ce compte peut être un compte anonyme si vous avez configuré le répertoire virtuel de façon à autoriser les connexions anonymes, ou bien il peut s'agir d'un compte d'utilisateur Windows. Ce compte doit avoir des autorisations d'accès aux données nécessaires sur le serveur et la base de données Analysis Services.

Note

N'oubliez pas de débloquer les ports dans le Pare-feu Windows, afin de permettre les connexions client au serveur distant Analysis Services. Pour plus d'informations, consultez configurer le pare-feu Windows pour accéder à Analysis Services.

SSAS_HttpAccess_Pump

Le tableau suivant comprend d'autres éléments à prendre en compte lorsque vous activez l'accès HTTP dans différents scénarios.

Scénario

Configuration

IIS et Analysis Services sur le même ordinateur

Il s'agit de la configuration la plus simple car elle vous permet d'utiliser la configuration par défaut (lorsque le nom du serveur est localhost), le fournisseur OLE DB Analysis Services local et la sécurité intégrée de Windows avec NTLM. Si le client se trouve également dans le même domaine, l'authentification utilisateur est transparente pour l'utilisateur et ne nécessite aucune action supplémentaire de votre part.

IIS et Analysis Services sur des ordinateurs différents

Pour cette topologie, vous devez installer le fournisseur OLE DB Analysis Services sur le serveur Web. Vous devez également modifier le fichier msmdpump.ini pour qu'il spécifie l'emplacement de l'instance Analysis Services sur l'ordinateur distant.

Cette topologie ajoute une étape d'authentification double saut, dans laquelle les informations d'identification doivent passer du client vers le serveur Web, jusqu'au serveur principal Analysis Services. Si vous utilisez des informations d'identification Windows et NTLM, vous obtiendrez une erreur car NTLM ne permet pas la délégation d'informations d'identification client à un autre serveur. La solution habituelle consiste à utiliser l'authentification de base avec le protocole SSL. Cela nécessite, cependant, que les utilisateurs fournissent un nom d'utilisateur et un mot de passe pour accéder au répertoire virtuel MSMDPUMP. Une approche plus simple consiste à activer Kerberos et à configurer une délégation contrainte Analysis Services pour que les utilisateurs puissent accéder à Analysis Services facilement.

Réfléchissez aux ports à débloquer dans le Pare-feu Windows. Vous devrez débloquer les ports sur les deux serveurs pour permettre l'accès à l'application Web sur IIS et à Analysis Services sur un serveur distant.

Les connexions client proviennent d'un domaine non approuvé ou d'une connexion extranet

Les connexions client provenant d'un domaine nécessitent davantage de restrictions d'authentification. Par défaut, Analysis Services utilise l'authentification intégrée de Windows, qui nécessite que les utilisateurs se trouvent dans le même domaine que le serveur. Si vos utilisateurs extranet se connectent à IIS depuis un domaine extérieur, ils obtiendront une erreur de connexion si le serveur est configuré pour utiliser les paramètres par défaut.

L'une des solutions de contournement consiste à demander aux utilisateurs extranet de se connecter via une connexion VPN à l'aide d'informations d'identification de domaine. Cependant, une meilleure approche serait d'activer l'authentification de base et le protocole SSL sur votre site Web IIS.

Copier le fichier MSMDPUMP.dll dans un dossier du serveur Web

Dans cette section, vous copiez le fichier exécutable MSMDPUMP, le fichier de configuration et les fichiers de ressources des dossiers du programme Analysis Services vers le dossier du répertoire virtuel OLAP que vous créez dans le système de fichiers.

Le lecteur doit être formaté à l'aide du système de fichier NTFS. Le chemin d'accès au dossier que vous créez ne doit contenir aucun espace.

  1. Sur le serveur Web, créez le dossier suivant : <lecteur>:\inetpub\wwwroot\olap

  2. Copiez le contenu du dossier ISAPI présent sur l'ordinateur Analysis Services, vers le dossier \inetpub\wwwroot\olap que vous venez de créer.

    Le dossier ISAPI se trouve ici : <lecteur>:\Program Files\Microsoft SQL Server\<instance>\OLAP\bin\isapi. Il contient les fichiers et le dossier suivants : MSMDPUMP.DLL, MSMDPUMP.INI et un dossier Resources contenant les fichiers de ressources de langue.

    Note

    Notez que le format du nom de l'instance a changé dans les versions récentes de SQL Server. Si vous utilisez SQL Server 2008 R2, le nom de l'instance par défaut est MSAS10_50.MSSQLSERVER. Si vous utilisez des versions plus anciennes de SQL Server, le nom des instances est créé de façon séquentielle par ordre d'installation, où MSSQL.1 correspond au premier service installé, MSSQL.2 au deuxième service installé, et ainsi de suite. Vous aurez peut-être besoin d'ouvrir les dossiers des instances pour déterminer lequel d'entre eux contient les fichiers de programme Analysis Services.

  3. Vérifiez que le dossier \inetpub\wwwroot\olap\isapi présent sur votre serveur Web contient ce qui suit : un fichier MSMDPUMP.DLL, un fichier MSMDPUMP.INI et un dossier Resources.

Créer un pool d'applications et un répertoire virtuel dans IIS

La configuration de l'accès HTTP commence par la création d'un pool d'applications et d'un répertoire virtuel fournissant un point de terminaison à la pompe.

Créer un pool d'applications

  1. Démarrez le Gestionnaire des services Internet. Cliquez sur Démarrer, pointez sur Exécuter, puis tapez Inetmgr.

    SSAS_HttpAccess_Inetmgr

  2. Cliquez avec le bouton droit sur Pools d'applications, puis cliquez sur Ajouter un pool d'applications. Créez un pool d'applications nommé OLAP, à l'aide de .NET Framework v2.0.50727, avec le mode de pipeline géré défini sur Classique.

    SSAS_HttpAccess_AddAP

  3. Par défaut, IIS crée des pools d'applications en utilisant le Service réseau comme identité de sécurité. Pour modifier l'identité du pool d'applications que vous venez de créer, cliquez avec le bouton droit sur OLAP, puis sélectionnez Paramètres avancés.

    SSAS_HttpAccess_AdvSettings

  4. Dans Identité, cliquez sur le compte intégré qu'IIS a spécifié. Selon la version de Windows que vous utilisez, c'est Service réseau (voir capture d'écran) ou ApplicationPoolIdentity. Cliquez sur le bouton Modifier correspondant à cette propriété pour remplacer le compte intégré par le compte personnalisé que vous souhaitez utiliser.

  5. Par défaut, sur les systèmes d'exploitation 64 bit, IIS attribue la valeur false à la propriété Activer les applications 32 bits. Si vous avez copié le fichier msmdpump.dll depuis une installation 64 bits d'Analysis Services, il s'agit du paramètre approprié pour l'extension MSMDPUMP sur un serveur IIS 64 bits. Si vous avez copié les fichiers binaires MSMDPUMP depuis une installation 32 bits, attribuez la valeur true. À présent, vérifiez que cette propriété est correctement paramétrée.

Créer un répertoire virtuel

  1. Dans le Gestionnaire des services Internet, ouvrez Sites, cliquez avec le bouton droit sur Site Web par défaut (ou le site Web que vous utilisez pour accéder à la pompe), puis cliquez sur Ajouter un répertoire virtuel.

  2. Dans Alias, tapez OLAP.

  3. Dans Chemin d'accès physique, cliquez sur le bouton Parcourir et naviguez jusqu'à C:\inetpub\wwwroot\olap. Cliquez sur OK.

    SSAS_HttpAccess_AddVdir

  4. Cliquez avec le bouton droit sur le répertoire virtuel OLAP que vous venez de créer, puis cliquez sur Convertir en application.

  5. Dans la boîte de dialogue Ajouter une application, en regard de Pool d'applications, cliquez sur Sélectionner, puis choisissez de fermer le pool d'applications OLAP créé dans la section précédente.

  6. Cliquez sur OK à deux reprises pour accepter les modifications et convertir l'application.

Configurer l'authentification IIS et ajouter l'extension

Dans cette section, vous allez plus loin dans la configuration du répertoire virtuel OLAP que vous venez de créer. Vous allez spécifier une méthode d'authentification, puis ajouter un mappage de scripts. Pour plus d'informations sur les méthodes d'authentification, consultez Méthodes d'authentification IIS.

  1. Dans le Gestionnaire des services Internet, ouvrez Sites, ouvrez le Site Web par défaut, puis sélectionnez le répertoire virtuel OLAP.

  2. Double-cliquez sur Authentification dans la section IIS de la page principale.

    SSAS_HttpAccess_IIS

  3. Activez la case à cocher Authentification Windows si vous utilisez la sécurité intégrée de Windows.

    Il s'agit du mode le plus sécurisé et donc, de celui recommandé. Cependant, il requiert qu'IIS soit en mesure d'accéder aux informations d'identification du domaine utilisateur, à l'aide de Microsoft Active Directory® ou d'un autre mécanisme. Si Analysis Services et IIS ne se trouvent pas sur le même ordinateur, vous devrez activer Kerberos et configurer une délégation contrainte dans Analysis Services. Les configurations possibles dépassent l'objet de cette rubrique.

    SSAS_HttpAccess_IISAuth

  4. Vous pouvez aussi activer la case à cocher Authentification de base si vos applications clientes et serveur ne se trouvent pas dans le même domaine. Ce mode requiert que l'utilisateur entre un nom d'utilisateur et un mot de passe. Le nom d'utilisateur et le mot de passe sont transmis sur la connexion HTTP à IIS. IIS essaiera d'emprunter l'identité de l'utilisateur avec les informations d'identification fournies. Notez qu'il est impératif de sécuriser le canal de communication lorsqu'on crée un système où les mots de passe sont transmis. IIS fournit un ensemble d'outils qui vous aident à sécuriser le canal. Pour plus d'informations, consultez Configurer SSL sur IIS 7.

    L'authentification de base est utile lorsque vous souhaitez collecter les informations d'identification utilisateur à partir du client, en donnant aux utilisateurs accès au site Web à l'aide d'informations d'identification différentes de celles de leur compte de connexion Windows personnel. Lorsque vous sélectionnez l'authentification de base, IIS lit l'en-tête HTTP de chaque requête à la recherche d'un nom d'utilisateur et d'un mot de passe. S'il ne trouve pas d'informations d'identification qui lui conviennent, IIS envoie une réponse au client, demandant un nom d'utilisateur et un mot de passe. Le client demande à l'utilisateur des informations d'identification, puis utilise l'encodage Base64 pour envoyer le nom d'utilisateur et le mot de passe au serveur. Même si les informations d'identification sont encodées, elles ne sont pas chiffrées et ne sont donc pas sécurisées. C'est la raison pour laquelle il est fortement recommandé d'utiliser pour les sites Web à la fois l'authentification de base et le protocole SSL, afin de chiffrer les informations d'identification que le client envoie au serveur.

  5. Désactivez la case à cocher Authentification anonyme sauf si vous prenez en charge les connexions via IUSR_<NomOrdinateur>. Si vous activez l'authentification anonyme, IIS l'utilisera toujours en premier, même si vous activez d'autres méthodes d'authentification.

    Si vous activez l'authentification anonyme, assurez-vous que le compte IUSR_<NomOrdinateur> présent sur votre serveur Web dispose des autorisations d'accès aux données nécessaires sur la base de données Analysis Services.

    Lorsque ce mode est sélectionné, la pompe (msmdpump.dll) s'exécute à l'aide des informations d'identification d'IUSR_<NomOrdinateur>. Par conséquent, chaque connexion à Analysis Services est ouverte en tant qu'utilisateur IUSR_<NomOrdinateur>. Lorsque ce mode est sélectionné, il n'y a aucune distinction entre l'utilisateur qui se connecte à IIS et celui qui se connecte à Analysis Services. Ce mode se rencontre principalement dans des environnements extrêmement contrôlés, où l'accès des utilisateurs au répertoire virtuel est tantôt accordé, tantôt refusé sur la base de listes de contrôle d'accès.

  6. Cliquez sur le répertoire virtuel OLAP pour ouvrir la page principale. Double-cliquez sur Mappages de gestionnaires.

    SSAS_HttpAccess_IIS

  7. Cliquez avec le bouton droit n'importe où dans la page, puis sélectionnez Ajouter un mappage de scripts. Dans la boîte de dialogue Ajouter un mappage de scripts, spécifiez *.dll comme chemin d'accès à la demande, indiquez c:\inetpub\wwwroot\olap\msmdpump.dll comme fichier exécutable et entrez OLAP comme nom.

    SSAS_HttpAccess_AddScript

  8. Cliquez sur Restrictions des demandes.

  9. Sous l'onglet Verbes, vérifiez que Tous les verbes est sélectionné. Cliquez sur OK, puis encore sur OK pour terminer d'ajouter le mappage de scripts.

    SSAS_HttpAccess_RequestRestrictions

  10. Lorsqu'une invite vous demande si vous souhaitez autoriser l'extension ISAPI, cliquez sur Oui.

    SSAS_HttpAccess_ISAPIPrompt

Modifier le fichier MSMDPUMP.INI pour définir le serveur cible

Ouvrez le fichier msmdpump.ini situé dans le dossier C:\inetpub\wwwroot\OLAP et observez le contenu de ce fichier. Il devrait ressembler à ce qui suit :

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

Si l'instance Analysis Services pour laquelle vous configurez l'accès HTTP se trouve sur l'ordinateur local et si elle est installée comme instance par défaut, il n'y a aucune raison de modifier ce paramètre. Sinon, vous devez spécifier le nom du serveur (par exemple, <NomServeur>ADWRKS-SRV01</NomServeur>). Pour un serveur installé en tant qu'instance nommée, ajoutez le nom de l'instance (par exemple, <NomServeur>ADWRKS-SRV01\Tabular</NomServeur>).

Par défaut, Analysis Services écoute le port TCP/IP 2383. Si vous avez installé Analysis Services comme instance par défaut, il n'est pas nécessaire de spécifier de port dans <NomServeur> puisqu'Analysis Services sait automatiquement comment écouter le port 2383. Cependant, vous devrez autoriser les connexions entrantes pour ce port dans le Pare-feu Windows. Pour plus d'informations, consultez configurer le pare-feu Windows pour accéder à Analysis Services.

Si vous avez configuré une instance Analysis Services nommée ou par défaut de façon à ce qu'elle écoute un port fixe, vous devez ajouter le numéro du port au nom du serveur (par exemple, <NomServeur>AW-SRV01:55555</NomServeur>), et vous devez autoriser les connexions entrantes pour ce port dans le Pare-feu Windows.

Tester votre configuration

La syntaxe de la chaîne de connexion de MSMDPUMP est l'URL du fichier MSMDPUMP.dll.

Si l'application Web écoute un port fixe, ajoutez le numéro du port après le nom de serveur ou l'adresse IP (par exemple, http://my-web-srv01:8080/olap/msmdpump.dll ou http://123.456.789.012:8080/olap/msmdpump.dll).

Un moyen rapide de tester la connexion est d'ouvrir une connexion à l'aide de Microsoft Excel ou SQL Server Management Studio.

  • Dans Excel, sous Données, cliquez sur Connexions. Dans le groupe Données externes, cliquez sur À partir d'autres sources, puis sélectionnez sur Provenance : Analysis Services. Dans la zone Nom du serveur, entrez l'adresse HTTP de l'extension msmdpump : http://my-web-srv01/OLAP/msmdpump.dll

  • Dans la boîte de dialogue Management Studio Se connecter au serveur, sélectionnez Analysis Services comme type de serveur. Dans la zone Nom du serveur, entrez l'adresse HTTP de l'extension msmdpump : http://my-web-srv01/OLAP/msmdpump.dll

Assurez-vous d'effectuer par la suite des tests plus rigoureux à l'aide d'un ordinateur client s'exécutant dans l'environnement réseau duquel proviennent les connexions. N'oubliez pas d'accorder les autorisations nécessaires pour le serveur Analysis Services : IUSR_<NomOrdinateur> si vous avez activé les connexions anonymes, ou les identités Windows des utilisateurs se connectant à MSMDPUMP via IIS.