Planen zur Extranet- oder Internetbereitstellung

Obwohl SQL ServerReporting Services nicht ausdrücklich für Berichtbereitstellungsszenarien im Extranet oder Internet entworfen wurde, können Sie Reporting Services erfolgreich auf einem Webserver mit Internetanbindung implementieren, um allgemeine Informationen für die Öffentlichkeit oder private Unternehmensdaten für berechtigte und authentifizierte Benutzer bereitzustellen.

HinweisHinweis

Die Bereitstellung von Reporting Services auf einem mit dem Internet verbundenen Webserver erfordert eine sorgfältige Überprüfung. Netzwerk- und Sicherheitssoftware, Netzwerktopologie und Domänenkonfiguration stellen Variablen dar, die die Angabe genau einzuhaltender Schritte für die Bereitstellung des Berichtsservers erschweren. Stellen Sie beim Auswerten eines Berichtsservers für den Internetzugriff sicher, dass Ihre Testszenarien alle Features enthalten, die Sie verwenden möchten. Führen Sie die Tests außerdem stets mit sicheren Verbindungen durch.

Diagramm einer Extranet- oder Internetarchitektur

In der folgenden Abbildung wird ein Beispiel für eine Best Practice-Bereitstellungskonfiguration einer Extranet- oder Internetbereitstellung dargestellt.

Internet- oder Extranet-Berichtsserverbereitstellung

Zu den Hauptmerkmalen des Diagramms gehören:

  • Drei Firewalls bieten eine tiefgreifende Verteidigung über die gesamte Bereitstellung hinweg. In diesem Thema werden Empfehlungen zur Konfiguration der Firewalls beschrieben.

  • Der Eingangspunkt ist eine benutzerdefinierte Internetanwendung, die das ReportViewer-Steuerelement enthält. Das Steuerelement hostet einen Bericht, der auf einem Berichtsserver hinter der zweiten Firewall ausgeführt wird.

  • Berichte verwenden Daten aus schreibgeschützten Datenquellen, die ausdrücklich zu Berichterstellungszwecken erstellt werden. Die Datenquellen enthalten Daten, die aus anderen Quellen kopiert werden, jedoch ohne sensible Daten, die Sie niemals in einem Bericht verwenden würden.

  • Datenserver in Unternehmen enthalten sensible Daten, die Sie durch strenge Berechtigungen und restriktive Firewalleinstellungen schützen. Sie sollten auch in Erwägung ziehen, die Berichtsserver-Datenbank in diese Sicherheitszone zu stellen, damit alle Datenbankserver, die Lese-/Schreibzugriff benötigen, den von der dritten Firewall bereitgestellten Schutz verwenden können.

Allgemeine Richtlinien

Die folgende Liste enthält umfassende Richtlinien zum Bereitstellen von Reporting Services in der in diesem Thema dargestellten Topologie. Diese Liste wird als Ausgangspunkt zum Planen eines eigenen Bereitstellungsplans angeboten. Für die spezielle Konfiguration Ihrer Netzwerktopologie ist es wahrscheinlich erforderlich, dass Sie zusätzliche Schritte durchführen, die in dieser Liste nicht beschrieben sind.

Es ist wichtig, dass Sie die Konfiguration in einer Testumgebung bereitstellen, um zu überprüfen, ob Ihnen alle Anforderungen, Einstellungen, Schritte und die optimale Reihenfolge dieser Schritte bekannt sind:

  1. Installieren Sie Firewalls, und identifizieren Sie Server, Konten und Berechtigungen.

  2. Erstellen oder erwerben Sie Serverzertifikate für SSL-Verbindungen. Installieren Sie auf allen Computern Zertifikate, die Serverkomponenten hosten. Wenn Sie die Zertifikate mit Platzhaltereinstellungen installiert haben, können Sie das gleiche Zertifikat für mehrere URLs verwenden.

  3. Entwerfen und implementieren Sie einen Ansatz zum Kopieren von Unternehmensdaten in getrennte Berichtsdatenquellen. Sie können Technologien, z. B. die Replikation, SQL ServerIntegration Services oder ein Produkt eines Drittanbieters verwenden.

  4. Installieren Sie Reporting Services im Installationsmodus, bei dem nur die Dateien installiert werden, damit Sie ihn mit den für den externen Zugriff gültigen Einstellungen konfigurieren können. Beim SQL Server-Assistenten ist das die Option Server installieren, jedoch nicht konfigurieren.

  5. Führen Sie das Reporting Services-Konfigurationstool nach Abschluss des Setupprogramms aus, um den Berichtsserver zu konfigurieren:

    1. Überprüfen Sie die Dienstausführungen unter einem am wenigsten privilegierten Konto. Vermeiden Sie, Lokales System zu verwenden. Wenn Sie Lokales System ausgewählt haben, ändern Sie das Konto, um NetworkService oder ein Domänenbenutzerkonto zu verwenden.

    2. Definieren Sie eine Berichtsserver-URL und optional eine Berichts-Manager-URL:

      Sie sollten mehrere URLs erstellen, um den Zugriff über einen vollständig qualifizierten Domänennamen (FQDN) zu unterstützen, der von externen Benutzern verwendet wird. Außerdem sollten Sie eine weitere URL erstellen, die den Netzwerknamen verwendet. Durch die Verwendung von zwei verschiedenen URLs können Sie eine Verbindung mit dem Berichtsserver erstellen, falls Ihre Internetverbindung deaktiviert oder offline ist.

      Sie sollten SSL-Zertifikate für die von Ihnen definierten FQDN-URLs auswählen.

    3. Erstellen der Berichtsserver-Datenbank. Wenn sich die SQL Server-Instanz in einer anderen Domäne befindet und Kerberos 5.0 nicht aktiviert ist, verwenden Sie für die Verbindung mit der Berichtsserver-Datenbank die SQL Server-Authentifizierung. Sichern Sie die Verbindung zwischen dem Berichtsservercomputer und der SQL ServerDatabase Engine (Datenbankmodul)-Instanz mit SSL oder IPSec.

  6. Erstellen Sie eine benutzerdefinierte Authentifizierungserweiterung, und stellen Sie diese bereit. Falls Sie die Technologie für einmaliges Anmelden (Single Sign-On) verwenden, die als ISAPI-Filter implementiert ist, müssen Sie den ISA-Server für die Unterstützung des ISAPI-Filters verwenden. Der HTTP-Listener in Reporting Services unterstützt keine ISAPI-Filter.

  7. Konfigurieren Sie Rollenzuweisungen, welche die Sicherheitsprinzipale der benutzerdefinierten Authentifizierungserweiterung verwenden, und ordnen Sie diese den Rollen zu, die Berechtigungen an Berichtsservervorgänge übermitteln.

  8. Erstellen Sie eine Internet-Front-End-Anwendung, die das ReportViewer-Webserversteuerelement verwendet, und stellen Sie sie bereit.

  9. Veröffentlichen Sie Berichte und andere Inhaltstypen auf dem Berichtsserver.

  10. Konfigurieren Sie die Firewalleinstellungen. Überprüfen Sie, ob die Firewalleinstellungen einen minimalen Zugriff auf Downstreamcomputer und -anwendungen zulassen.

Firewallkonfigurationen

Bei den Standard-URLs für Berichtsserveranwendungen wird davon ausgegangen, dass Port 80 aktiviert und für den Berichtsserver verfügbar ist. Bei Verwendung der Windows Firewall müssen Sie Port 80 oder einen anderen Port öffnen, der für HTTP-Berichtsserveranforderungen zur Verfügung steht. Wenn Sie einen anderen Port verwenden, müssen Sie ihn in den Berichtsserver-URLs angeben. Weitere Informationen finden Sie unter Vorgehensweise: Konfigurieren einer Firewall für den Zugriff auf den Berichtsserver. Weitere Informationen zu den Standardeinstellungen von Windows-Firewall und eine Beschreibung der TCP-Ports, die sich auf Datenbankmodul, Analysis Services, Reporting Services und Integration Services auswirken, finden Sie unter Konfigurieren der Windows-Firewall für den SQL Server-Zugriff.

ReportViewer-Webserversteuerelement in einer Internetanwendung

Um Berichte in einer Internetanwendung bereitzustellen, können Sie das ReportViewer-Webserversteuerelement in eine benutzerdefinierte, internetfähige Anwendung einbetten, die Sie erstellen und bereitstellen. Das ReportViewer-Webserversteuerelement ist in Visual Studio 2005 und höher enthalten und kann zusammen mit der Anwendung frei verteilt werden. Sie können das Steuerelement für die Anzeige von Berichten konfigurieren, die auf einem Berichtsserver ausgeführt werden. Die Verbindung zwischen der Anwendung und dem Berichtsserver wird durch das Steuerelement über die Webdienst-Programmierschnittstelle behandelt. Die gesamte Authentifizierung und Autorisierung erfolgt durch die Anwendung, die über eine einzelne vertrauenswürdige Verbindung des Benutzers mit dem Berichtsserver verbunden ist.

Weitere Informationen finden Sie unter Vergleich zwischen Reporting Services und ReportViewer-Steuerelementen.

Der Berichts-Manager als Internet- oder Extranet-Web-Front-End

Der Berichts-Manager wurde nicht als Internetanwendung entworfen. Wenn Sie jedoch keine benutzerdefinierte Internetanwendung erstellen können, können Sie mit dem Berichts-Manager Berichte über eine Internetverbindung anzeigen. Die folgenden Vorschläge werden als Best Practice-Empfehlungen zur Bereitstellung angeboten:

  • Erwägen Sie die Installation des Berichts-Managers als separate Instanz auf einem Anwendungsserver. Der Berichts-Manager wird im Berichtsserverdienst ausgeführt. Deshalb müssen Sie zum Installieren des Berichts-Managers Reporting Services installieren und dann den Webdienst sowie die Zeitplanungs- und Übermittlungsfeatures deaktivieren. Installieren Sie Reporting Services auf einem mit dem Internet verbundenen Webserver. Verwenden Sie dazu den Installationsmodus, bei dem nur die Dateien installiert werden. Beim SQL Server-Assistenten ist das die Option Server installieren, jedoch nicht konfigurieren.

  • Erstellen Sie eine benutzerdefinierte Sicherheitserweiterung, und stellen Sie diese bereit, um die Formularauthentifizierung oder eine Technologie für einmaliges Anmelden zu unterstützen.

  • Konfigurieren Sie den Berichts-Manager für minimale Berechtigungen. Die Browser- und Systembenutzerrollen reichen zum Anzeigen von Berichten aus.

  • Wenn Sie mit dem Berichts-Manager auf eine andere Berichtsserverinstanz verweisen möchten, die auf einem anderen Computer ausgeführt wird, müssen Sie die URL des Berichts-Managers konfigurieren und dann die <ReportServerVirtualDirectory>-Einstellung und die <ReportServerUrl>-Einstellung in der Datei RSReportServer.config ändern, damit der Berichts-Manager auf die Berichtsserverinstanz verweist.

  • Deaktivieren Sie auf dem Berichtsserver, mit dem Sie eine Verbindung herstellen, die Features, die Sie nicht verwenden. Beispiele könnten Meine Berichte, Abonnement und Übermittlung, Berichts-Generator und clientseitiger Druck sein.

Konfigurieren von Proxyeinstellungen in Web.config-Dateien

Falls Sie den Berichts-Manager als Front-End-Anwendung für die Internetbereitstellung verwenden und der Berichtsserver auch auf demselben Computer installiert ist, müssen Sie eine Web.config-Einstellung angeben, mit der Sie dem Berichts-Manager erlauben können, den Proxyserver beim Senden von Anforderungen an einen lokalen Berichtsserver, der auf demselben Computer installiert ist, zu umgehen.

Es handelt sich hierbei um die Netzwerkeinstellung System.NET defaultProxy in der Datei Web.config. Standardmäßig ist defaultProxy in der Datei Web.config für den Berichts-Manager deaktiviert. Diese Konfiguration wird empfohlen, wenn der Berichts-Manager und der Berichtsserver gemeinsam auf demselben Computer bereitgestellt werden.

Wenn Sie eine Aktualisierung von einer früheren Version von Reporting Services durchführen, enthält die Datei Web.config die Konfigurationseinstellung defaultProxy nicht. Sie können die Einstellung defaultProxy hinzufügen und festlegen, um bei Installationen, in denen der Berichts-Manager und der Berichtsserver auf demselben Computer ausgeführt werden, den Proxyserver zu umgehen. Kopieren Sie die folgenden Konfigurationseinstellungen in die Datei Web.config des Berichts-Managers:

<configuration>
...
<system.net>
  <defaultProxy enabled="false" />
</system.net>
</configuration>

Weitere Informationen zu diesen Einstellungen finden Sie unter "Configuring Internet Applications" und "defaultProxy Element (Network Settings)" im Microsoft.NET Framework Developer's Guide.

Überlegungen zur Authentifizierung bei der Extranet- und Internetbereitstellung

Zum Bereitstellen eines Berichtsservers in einem Extranetszenario, das Verbindungen von vordefinierten Microsoft Active Directory-Konten unterstützt, können Sie die Standardsicherheitserweiterung der Windows-Authentifizierung verwenden. Planen Sie die Konfiguration des Servers für SSL-Verbindungen (Secure Sockets Layer) und die Standardauthentifizierung. Verwenden Sie das Reporting Services-Konfigurationstool, um einer Berichtsserver-URL ein vorhandenes Zertifikat zuzuordnen. Sie können Konfigurationsdateien auch ändern, um den Authentifizierungstyp anzugeben.

Um einen Berichtsserver in einem Extranetszenario bereitzustellen, das Verbindungen unterstützt, die von Technologie, die auf einer einmaligen Anmeldung basiert, oder von einem formularbasierten Authentifizierungsmodell, das Benutzeridentitätsinformationen in einer Datenbank speichert, ausgehen, müssen Sie eine benutzerdefinierte Authentifizierungserweiterung erstellen, um die standardmäßige Sicherheitserweiterung der Windows-Authentifizierung zu ersetzen. Die formularbasierte Authentifizierung wird in der Regel verwendet, wenn Sie einen Berichtsserver öffentlich verfügbar machen möchten, aber nur authentifizierte Benutzer den Inhalt anzeigen können sollen. Standardmäßig stellt SQL ServerReporting Services kein formularbasiertes Authentifizierungsmodul bereit. Weitere Informationen zum Erstellen eines Authentifizierungsmoduls finden Sie unter Implementieren von Sicherheitserweiterungen in der SQL Server-Onlinedokumentation.

Überprüfen der Internetbereitstellung

Um zu überprüfen, ob auf die Verbindung mit dem Berichtsserver zugegriffen werden kann, sollten Sie den Ordnernamespace des Berichtsservers über eine Internetverbindung anzeigen können, indem Sie http: (oder https:)//<your-web-server-fully-qualified-domain-name>/reportserver eingeben, wobei /reportserver der Standardname für das virtuelle Verzeichnis des Berichtsservers ist.