Konfigurieren von HTTP-Zugriff auf SQL Server Analysis Services unter IIS 7.0

Sie können den HTTP-Zugriff auf Analysis Services aktivieren, indem Sie MSMDPUMP.dll konfigurieren, eine ISAPI-Erweiterung, die in Internetinformationsdienste ausgeführt wird und Datapump zu und von Clientanwendungen und einem Analysis Services-Server ausführt. Dieser Ansatz bietet eine Alternative für das Herstellen einer Verbindung mit Analysis Services, wenn die OLAP-Lösung die folgenden Funktionen erfordert:

  • Der Clientzugriff erfolgt über Internet- oder Extranetverbindungen, mit Einschränkungen bezüglich der aktivierbaren Ports, oder Clientverbindungen stammen von nicht vertrauenswürdigen Domänen im selben Netzwerk.

  • Die Clientanwendung wird in einer Netzwerkumgebung ausgeführt, die HTTP-, jedoch keine TCP/IP-Verbindungen unterstützt.

  • Andere Authentifizierungsmethoden als die integrierte Sicherheit von Windows sind erforderlich. IIS unterstützt anonyme Verbindungen und Standardauthentifizierung. Durch das Konfigurieren von Analysis Services für HTTP-Zugriff können Sie diese alternativen Authentifizierungsmethoden mit Analysis Services verwenden.

  • Die Analysis Services-Clientbibliotheken können von Clientanwendungen nicht verwendet werden (z. B. eine Java-Anwendung, die auf einem UNIX-Server ausgeführt wird). Wenn es nicht möglich ist, die Analysis Services-Clientbibliotheken für den Datenzugriff zu verwenden, können Sie SOAP und XML/A über eine direkte HTTP-Verbindung zu einer Analysis Services-Instanz verwenden.

In diesem Thema wird erläutert, wie der HTTP-Zugriff auf eine Analysis Services-Instanz mit IIS 7.0 eingerichtet wird. Diese Anweisungen gelten für alle unterstützten Versionen oder Editionen einer OLAP-Instanz von Analysis Services, die mit IIS 7.0 verbunden ist, einschließlich SQL Server 2008 R2, SQL Server 2008 und SQL Server 2005.

Das Thema enthält folgende Abschnitte:

Übersicht

Kopieren der Datei "MSMDPUMP.dll" in einen Ordner auf dem Webserver

Erstellen eines Anwendungspools und eines virtuellen Verzeichnisses in IIS

Konfigurieren der IIS-Authentifizierung und Hinzufügen der Erweiterung

Bearbeiten der Datei "MSMDPUMP.INI" zum Festlegen des Zielservers

Testen der Konfiguration

Übersicht

MSMDPUMP ist eine ISAPI-Erweiterung, die in IIS geladen wird und die Umleitung zu einer Analysis Services-Instanz bereitstellt, die sich auf demselben Computer oder einem Remotecomputer innerhalb derselben Domäne befindet. Sie müssen für jede Analysis Services-Instanz, zu der Sie eine Verbindung herstellen möchten, ein virtuelles Verzeichnis mit jeweils einem eigenen Satz von MSMDPUMP-Dateien erstellen und konfigurieren. Die Konfigurationsdatei in jedem Satz von MSMDPUMP-Dateien gibt den Namen der Analysis Services-Serverinstanz an, die für die einzelnen HTTP-Endpunkte verwendet wird.

In IIS stellt MSMDPUMP mithilfe des Analysis Services OLE DB-Anbieters über TCP/IP eine Verbindung mit Analysis Services her. Analysis Services und IIS müssen sich in derselben Domäne oder in vertrauenswürdigen Domänen befinden, damit die systemeigene Verbindung hergestellt werden kann.

Die Verbindung von MSMDPUMP zu Analysis Services wird mit einer Windows-Benutzeridentität hergestellt. Dabei kann es sich um das anonyme Konto handeln, wenn Sie das virtuelle Verzeichnis für anonyme Verbindungen konfiguriert haben, oder um ein Windows-Benutzerkonto. Das Konto muss über die entsprechenden Datenzugriffsberechtigungen für den Analysis Services-Server und die Analysis Services-Datenbank verfügen.

HinweisHinweis

Achten Sie darauf, die Blockierung der Ports in der Windows-Firewall aufzuheben, um Clientverbindungen zu einem Analysis Services-Remoteserver zuzulassen. Weitere Informationen finden Sie unter Konfigurieren der Windows-Firewall für Analysis Services-Zugriff.

SSAS_HttpAccess_Pump

In der folgenden Tabelle sind Überlegungen für das Aktivieren des HTTP-Zugriffs in verschiedenen Szenarien aufgeführt.

Szenario

Konfiguration

IIS und Analysis Services auf demselben Computer

Dies ist die einfachste Konfiguration, da dadurch die Standardkonfiguration (mit dem Servernamen "localhost"), der lokale Analysis Services OLE DB-Anbieter sowie die integrierte Sicherheit von Windows mit NTLM verwendet werden können. Vorausgesetzt, der Client befindet sich in derselben Domäne, ist die Benutzerauthentifizierung für den Benutzer transparent, ohne dass Sie zusätzliche Schritte ausführen müssen.

IIS und Analysis Services auf verschiedenen Computern

Bei dieser Topologie muss der OLE DB-Anbieter für Analysis Services auf dem Webserver installiert werden. Außerdem muss die Datei msmdpump.ini so bearbeitet werden, dass der Speicherort der Analysis Services-Instanz auf dem Remotecomputer angegeben wird.

Diese Topologie fügt einen Doppelhop-Authentifizierungsschritt hinzu, bei dem Anmeldeinformationen vom Client an den Webserver und dann an den Analysis Services-Back-End-Server geleitet werden müssen. Wenn Sie Windows-Anmeldeinformationen und NTLM verwenden, wird ein Fehler ausgegeben, da NTLM keine Delegierung von Clientanmeldeinformationen an einen zweiten Server zulässt. Die verbreitetste Lösung ist die Verwendung der Standardauthentifizierung mit SSL (Secure Sockets Layer). Dabei müssen die Benutzer jedoch einen Benutzernamen und ein Kennwort eingeben, wenn Sie auf das virtuelle Verzeichnis MSMDPUMP zugreifen. Ein einfacherer Ansatz wäre, Kerberos zu aktivieren und die eingeschränkte Delegierung von Analysis Services zu konfigurieren, sodass Benutzer auf Analysis Services in transparenter Weise zugreifen können.

Bestimmen Sie, für welche Ports die Blockierung in der Windows-Firewall aufgehoben werden muss. Sie müssen die Blockierung von Ports auf beiden Servern aufheben, um Zugriff auf die Webanwendung in IIS und auf Analysis Services auf einem Remoteserver zu gewähren.

Clientverbindungen stammen von einer nicht vertrauenswürdigen Domäne oder einer Extranetverbindung

Clientverbindungen von einer nicht vertrauenswürdigen Domäne führen zu weiteren Einschränkungen bei der Authentifizierung. In der Standardeinstellung verwendet Analysis Services die integrierte Windows-Authentifizierung, bei der sich Benutzer in derselben Domäne wie der Server befinden müssen. Bei Extranetbenutzern, die von außerhalb der Domäne eine Verbindung zu IIS herstellen, tritt ein Verbindungsfehler auf, wenn der Server für die Verwendung der Standardeinstellungen konfiguriert ist.

Als Problemumgehung können Extranetbenutzer eine Verbindung über ein VPN mit Domänenanmeldeinformationen herstellen. Ein besserer Ansatz könnte jedoch sein, die Standardauthentifizierung und SSL auf der IIS-Website zu aktivieren.

Kopieren der Datei MSMDPUMP.dll in einen Ordner auf dem Webserver

In diesem Abschnitt kopieren Sie die ausführbare MSMDPUMP-Datei, die Konfigurationsdatei und Ressourcendateien aus den Analysis Services-Programmordnern in einen virtuellen OLAP-Verzeichnisordner, den Sie im Dateisystem erstellen.

Das Laufwerk muss für das NTFS-Dateisystem formatiert sein. Der Pfad zum Ordner, den Sie erstellen, darf keine Leerzeichen enthalten.

  1. Erstellen Sie auf dem Webserver folgenden Ordner: <Laufwerk>:\inetpub\wwwroot\olap

  2. Kopieren Sie die Inhalte des ISAPI-Ordners auf dem Analysis Services-Computer in den eben erstellten Ordner \inetpub\wwwroot\olap.

    Den ISAPI-Ordner finden Sie unter <Laufwerk>:\Programme\Microsoft SQL Server\<Instanz>\OLAP\bin\isapi. Er enthält die folgenden Dateien und Ordner: MSMDPUMP.DLL, MSMDPUMP.INI sowie den Ordner Resources, der Sprachressourcendateien enthält.

    HinweisHinweis

    Beachten Sie, dass sich das Format des Instanznamens in neueren Versionen von SQL Server geändert hat. Wenn Sie SQL Server 2008 R2 verwenden, lautet der Name der Standardinstanz MSAS10_50.MSSQLSERVER. Wenn Sie frühere Versionen von SQL Server verwenden, werden die Instanznamen sequenziell nach der Installationsreihenfolge erstellt, dabei ist MSSQL.1 der erste installierte Dienst, MSSQL.2 der zweite Dienst usw. Möglicherweise müssen Sie die Instanzordner öffnen, um zu ermitteln, welcher die Analysis Services-Programmdateien enthält.

  3. Stellen Sie sicher, dass der Ordner \inetpub\wwwroot\olap\isapi auf dem Webserver Folgendes enthält: MSMDPUMP.DLL, MSMDPUMP.INI sowie einen Ordner Resources.

Erstellen eines Anwendungspools und eines virtuellen Verzeichnisses in IIS

Das Konfigurieren des HTTP-Zugriffs beginnt mit dem Erstellen eines Anwendungspools und eines virtuellen Verzeichnisses, das einen Endpunkt für Datapump bereitstellt.

Erstellen eines Anwendungspools

  1. Starten Sie den IIS-Manager. Klicken Sie auf Start, zeigen Sie auf Ausführen, und geben Sie dann Inetmgr ein.

    SSAS_HttpAccess_Inetmgr

  2. Klicken Sie mit der rechten Maustaste auf Anwendungspools, und klicken Sie dann auf Anwendungspool hinzufügen. Erstellen Sie einen Anwendungspool mit dem Namen OLAP mithilfe von .NET Framework v2.0.50727, wobei der verwaltete Pipelinemodus auf Klassisch festgelegt ist.

    SSAS_HttpAccess_AddAP

  3. Standardmäßig erstellt IIS Anwendungspools mithilfe des Netzwerkdiensts als Sicherheitsidentität. Um die Identität des gerade erstellten Anwendungspools zu ändern, klicken Sie mit der rechten Maustaste auf OLAP, und wählen Sie dann Erweiterte Einstellungen aus.

    SSAS_HttpAccess_AdvSettings

  4. Klicken Sie unter Identität auf das von IIS angegebene integrierte Konto. Abhängig von der verwendeten Windows-Version ist dies entweder Netzwerkdienst (wie im Screenshot dargestellt) oder ApplicationPoolIdentity. Klicken Sie auf die Schaltfläche Ändern für diese Eigenschaft, um das integrierte Konto durch das benutzerdefinierte Konto, das Sie verwenden möchten, zu ersetzen.

  5. In der Standardeinstellung wird auf einem 64-Bit-Betriebssystem die Eigenschaft 32-Bit-Anwendungen aktivieren von IIS auf false festgelegt. Wenn Sie msmdpump.dll von einer 64-Bit-Installation von Analysis Services kopiert haben, ist dies die richtige Einstellung für die MSMDPUMP-Erweiterung auf einem 64-Bit-IIS-Server. Wenn Sie die MSMDPUMP-Binärdateien von einer 32-Bit-Installation kopiert haben, setzen Sie die Eigenschaft auf true. Überprüfen Sie nun, ob die Eigenschaft richtig festgelegt wurde.

Erstellen eines virtuellen Verzeichnisses

  1. Öffnen Sie im IIS-Manager Sites, klicken Sie mit der rechten Maustaste auf Standardwebsite (bzw. auf die zum Zugriff auf Datapump verwendete Website), und klicken Sie dann auf Virtuelles Verzeichnis hinzufügen.

  2. Geben Sie im Alias OLAP ein.

  3. Klicken Sie im physischen Pfad auf die Schaltfläche zum Durchsuchen, und navigieren Sie zu C:\inetpub\wwwroot\olap. Klicken Sie auf OK.

    SSAS_HttpAccess_AddVdir

  4. Klicken Sie mit der rechten Maustaste auf das gerade erstellte virtuelle OLAP-Verzeichnis, und klicken Sie dann auf In Anwendung konvertieren.

  5. Klicken Sie im Dialogfeld Anwendung hinzufügen neben Anwendungspool auf Auswählen, und wählen Sie dann den in der vorherigen Sitzung erstellten OLAP-Anwendungspool aus.

  6. Klicken Sie zweimal auf OK, um die Änderungen zu bestätigen und die Anwendung zu konvertieren.

Konfigurieren der IIS-Authentifizierung und Hinzufügen der Erweiterung

In diesem Abschnitt nehmen Sie weitere Konfigurationen am soeben erstellten virtuellen OLAP-Verzeichnis vor. Sie geben eine Authentifizierungsmethode an und fügen dann eine Skriptzuordnung hinzu. Weitere Informationen zu Authentifizierungsmethoden finden Sie unter IIS-Authentifizierungsmethoden.

  1. Öffnen Sie im IIS-Manager Sites, öffnen Sie Standardwebsite, und wählen Sie dann das virtuelle OLAP-Verzeichnis aus.

  2. Doppelklicken Sie im IIS-Abschnitt der Hauptseite auf Authentifizierung.

    SSAS_HttpAccess_IIS

  3. Aktivieren Sie Windows-Authentifizierung, wenn Sie die integrierte Sicherheit von Windows verwenden.

    Dabei handelt es sich um den sichersten sowie den empfohlenen Modus. Dieser erfordert jedoch, dass IIS mithilfe von Microsoft Active Directory® oder einem anderen Mechanismus auf Anmeldeinformationen für Benutzerdomänen zugreifen kann. Wenn sich Analysis Services und IIS auf unterschiedlichen Computern befinden, muss Kerberos aktiviert und Analysis Services für die eingeschränkte Delegierung konfiguriert werden. Es würde den Rahmen dieses Themas sprengen, alle möglichen Konfigurationen zu erläutern.

    SSAS_HttpAccess_IISAuth

  4. Aktivieren Sie alternativ Standardauthentifizierung, wenn sich Client- und Serveranwendung in verschiedenen Domänen befinden. Dieser Modus erfordert, dass der Benutzer einen Benutzernamen und ein Kennwort eingibt. Der Benutzername und das Kennwort werden über die HTTP-Verbindung an IIS übertragen. IIS versucht, die Identität des Benutzers mithilfe der bereitgestellten Anmeldeinformationen anzunehmen. Beachten Sie, dass für jede Person, die ein System erstellt, in dem das Kennwort übertragen wird, Methoden zur Sicherung des Kommunikationskanals obligatorisch sind. IIS stellt verschiedene Tools bereit, mit denen Sie den Kanal sichern können. Weitere Informationen finden Sie unter Einrichten von SSL in IIS 7.

    Die Standardauthentifizierung ist hilfreich, wenn Sie Benutzeranmeldeinformationen vom Client erfassen möchten, um Benutzern die Möglichkeit zu geben, auf die Website mit Anmeldeinformationen zuzugreifen, die sich vom persönlichen Windows-Anmeldekonto unterscheiden. Wenn Sie die Standardauthentifizierung auswählen, durchsucht IIS den HTTP-Header jeder Anforderung nach einem Benutzernamen und Kennwort. Wenn keine geeigneten Anmeldeinformationen gefunden werden, sendet IIS eine Antwort an den Client, in der ein Benutzername und ein Kennwort angefordert werden. Der Client fordert den Benutzer zur Eingabe von Anmeldeinformationen auf und sendet dann unter Verwendung von Base64-Codierung den Benutzernamen und das Kennwort an den Server. Die Anmeldeinformationen sind zwar codiert, jedoch nicht verschlüsselt und daher nicht sicher. Daher wird ausdrücklich empfohlen, dass Websites eine Kombination aus Standardauthentifizierung und SSL verwenden, um die Anmeldeinformationen zu verschlüsseln, die der Client an den Server sendet.

  5. Deaktivieren Sie Anonyme Authentifizierung, es sei denn, Sie unterstützen Verbindungen über IUSR_<Computername>. Wenn Sie die anonyme Authentifizierung aktivieren, verwendet IIS diese immer zuerst, auch wenn Sie andere Authentifizierungsmethoden aktivieren.

    Stellen Sie beim Aktivieren der anonymen Authentifizierung sicher, dass das Konto "IUSR_<Computername>" auf dem Webserver über die entsprechenden Datenzugriffsberechtigungen in der Analysis Services-Datenbank verfügt.

    Wenn dieser Modus ausgewählt ist, wird Datapump (msmdpump.dll) mit den Anmeldeinformationen von "IUSR_<Computername>" ausgeführt. Daher wird jede Verbindung mit Analysis Services als Benutzer "IUSR_<Computername>" geöffnet. Wenn dieser Modus ausgewählt ist, wird nicht zwischen Benutzern unterschieden, die eine Verbindung mit IIS bzw. mit Analysis Services herstellen. Dieser Modus wird am häufigsten in einer ausführlich verwalteten Umgebung verwendet, in der Benutzern der Zugriff auf das virtuelle Verzeichnis anhand von Zugriffssteuerungslisten gewährt oder verweigert wird.

  6. Klicken Sie auf das virtuelle OLAP-Verzeichnis, um die Hauptseite zu öffnen. Doppelklicken Sie auf Handlerzuordnungen.

    SSAS_HttpAccess_IIS

  7. Klicken Sie mit der rechten Maustaste an einer beliebigen Stelle auf die Seite, und wählen Sie dann Skriptzuordnung hinzufügen aus. Legen Sie im Dialogfeld Skriptzuordnung hinzufügen die Option *.dll als Anforderungspfad und c:\inetpub\wwwroot\olap\msmdpump.dll als ausführbare Datei fest, und geben Sie OLAP als Namen ein.

    SSAS_HttpAccess_AddScript

  8. Klicken Sie auf Einschränkungen.

  9. Überprüfen Sie auf der Registerkarte Verben, ob die Option Alle Verben aktiviert ist. Klicken Sie auf OK, und klicken Sie dann erneut auf OK, um das Hinzufügen der Skriptzuordnung abzuschließen.

    SSAS_HttpAccess_RequestRestrictions

  10. Klicken Sie bei der Aufforderung zum Zulassen der ISAPI-Erweiterung auf Ja.

    SSAS_HttpAccess_ISAPIPrompt

Bearbeiten der Datei MSMDPUMP.INI zum Festlegen des Zielservers

Öffnen Sie die Datei msmdpump.ini im Ordner C:\inetpub\wwwroot\OLAP, und überprüfen Sie den Inhalt dieser Datei. Dieser sollte wie folgt aussehen:

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

Wenn sich die Analysis Services-Instanz, für die Sie den HTTP-Zugriff konfigurieren, auf dem lokalen Computer befindet und als Standardinstanz installiert ist, gibt es keinen Grund, diese Einstellung zu ändern. Andernfalls müssen Sie den Servernamen angeben (z. B. <Servername>ADWRKS-SRV01</Servername>). Hängen Sie bei einem Server, der als benannte Instanz installiert ist, den Instanznamen (z. B. <ServerName>ADWRKS-SRV01\Tabular</ServerName>) an.

In der Standardeinstellung überwacht Analysis Services TCP/IP-Port 2383. Wenn Sie Analysis Services als Standardinstanz installiert haben, müssen Sie für <Servername> keinen Port angeben, da Analysis Services Port 2383 automatisch überwacht. Sie müssen jedoch eingehende Verbindungen zu diesem Port in der Windows-Firewall zulassen. Weitere Informationen finden Sie unter Konfigurieren der Windows-Firewall für Analysis Services-Zugriff.

Wenn Sie eine benannte Instanz oder eine Standardinstanz von Analysis Services für das Überwachen eines festen Ports konfiguriert haben, müssen Sie dem Servernamen die Portnummer hinzufügen (z. B. <Servername>AW-SRV01:55555</Servername>). Außerdem müssen eingehende Verbindungen zu diesem Port in der Windows-Firewall zugelassen werden.

Testen der Konfiguration

Die Syntax der Verbindungszeichenfolge für MSMDPUMP ist die URL zur Datei MSMDPUMP.dll.

Wenn die Webanwendung einen festen Port überwacht, hängen Sie die Portnummer an den Servernamen bzw. die IP-Adresse an (z. B. http://my-web-srv01:8080/olap/msmdpump.dll oder http://123.456.789.012:8080/olap/msmdpump.dll).

Eine schnelle Methode zum Testen der Verbindung ist das Öffnen einer Verbindung mit Microsoft Excel oder SQL Server Management Studio.

  • Klicken Sie in Excel unter Daten auf Verbindungen. Klicken Sie in der Gruppe Externe Daten abrufen auf Aus anderen Quellen, und wählen Sie dann Aus Analysis Services aus. Geben Sie als Servernamen die HTTP-Adresse der Erweiterung msmdpump ein: http://my-web-srv01/OLAP/msmdpump.dll.

  • Wählen Sie in Management Studio im Dialogfeld Verbindung mit Server herstellen als Servertyp Analysis Services aus. Geben Sie als Servernamen die HTTP-Adresse der Erweiterung msmdpump ein: http://my-web-srv01/OLAP/msmdpump.dll.

Führen Sie anschließend ausführlichere Tests durch, indem Sie einen tatsächlichen Clientcomputer verwenden, der in der Netzwerkumgebung ausgeführt wird und von dem die Verbindungen stammen. Denken Sie daran, die entsprechenden Berechtigungen auf dem Analysis Services-Server zu gewähren (entweder "IUSR_<Computername>", wenn Sie anonyme Verbindungen aktiviert haben, oder die Windows-Identitäten der Benutzer, die über IIS eine Verbindung mit MSMDPUMP herstellen).