Identitätsdelegierung für SQL Server Reporting Services (SharePoint Server 2010)

 

Gilt für: SharePoint Server 2010

Letztes Änderungsdatum des Themas: 2016-11-30

In diesem Szenario konfigurieren Sie zwei Server mit SQL Server Reporting Services (SSRS) mit Lastenausgleich in einer horizontal skalierten Konfiguration, die im integrierten SharePoint-Modus ausgeführt wird. Die Server sind so konfiguriert, dass sie Kerberos-Authentifizierung akzeptieren und delegieren die Authentifizierung an einen Back-End-Servercluster mit SQL Server.

Die SharePoint Server-Farm und die Reporting Services-Datenquelle befinden sich beide in der gleichen Domäne. Daher konfigurieren wir in diesem Szenario eingeschränkte Kerberos-Delegierung, um die Identitätsdelegierung an die Back-End-Datenquelle zu ermöglichen. Wenn Sie sich bei Datenquellen in anderen Domänen in der gleichen Gesamtstruktur authentifizieren müssen, müssen Sie einfache (nicht eingeschränkte) Kerberos-Delegierung konfigurieren. Denken Sie daran, dass Reporting Services den Forderungen-zu-Windows-Tokens-Dienst (C2WTS) nicht nutzt und daher einfache Delegierung verwenden kann.

Szenarioabhängigkeiten

Checkliste für die Konfiguration

Konfigurationsbereich Beschreibung

Active Directory

SSRS-Dienstkonto erstellen

Eingeschränkte Kerberos-Delegierung konfigurieren

SQL Server Reporting Services

SSRS im Modus für horizontale Skalierung mit Lastenausgleich installieren und konfigurieren

Web.Config ändern

ReportingServer.config ändern

SharePoint Server konfigurieren

Integration von Reporting Services konfigurieren

Der Integration einen Berichtsserver hinzufügen

Standardwerte für Server festlegen

Konfiguration überprüfen

Eine Dokumentbibliothek für Berichte erstellen

Websitesammlungseinstellungen für Reporting Services konfigurieren

Einen Testbericht in SQL Server Business Intelligence Development Studio erstellen und veröffentlichen

Den Testbericht in Internet Explorer anzeigen

Details der Szenarioumgebung

Diagramm zur Szenarioumgebung

In diesem Szenario sind die Anwendungspool-Dienstkonten für Internetinformationsdienste (Internet Information Services, IIS) so konfiguriert, dass eine Delegierung an den Dienst SQL Server Reporting Services (SSRS) erfolgt. Das SSRS-Dienstkonto ist für die Delegierung von Anmeldeinformationen an den SQL Server-Dienst konfiguriert. Beachten Sie, dass SQL Server Reporting Services im integrierten SharePoint-Modus keine Forderungsauthentifizierung zwischen Farmen verwendet und daher Kerberos-Authentifizierung für die delegierte Authentifizierung erfordert. Weitere Informationen finden Sie unter Anspruchsauthentifizierung und Reporting Services.

Domänenübergreifende Kerberos-Delegierung

Im aktuellen Beispiel befindet sich die Datenquelle, mit der SSRS eine Verbindung herstellt, in der gleichen Domäne wie die SSRS-Server. In manchen Situationen ist es vielleicht erforderlich, auf Datenquellen außerhalb der Domäne zuzugreifen, in der sich SSRS befindet. Für die Authentifizierung mit domänenübergreifender Delegierung müssen Sie auf dem SSRS-Dienstkonto einfache (nicht eingeschränkte) Delegierung konfigurieren. Denken Sie daran, dass dies möglich ist, weil der SSRS-Dienst den Forderungen-zu-Windows-Tokens-Dienst (C2WTS) nicht verwendet und daher kein Protokollübergang über eingeschränkte Kerberos-Delegierung erforderlich ist. Beachten Sie auch, dass gesamtstrukturübergreifende Delegierung nicht möglich ist, auch nicht bei einfacher Delegierung.

Schritt-für-Schritt-Anleitung für die Konfiguration

Konfigurieren von DNS

Konfigurieren Sie DNS für die SSRS-NLB-Servergruppe (Network Load Balancing) in der vorgesehenen Umgebung. In diesem Beispiel werden zwei SSRS-Server verwendet, VMSSRS01 und VMSSRS02, für die ein Lastenausgleich durchgeführt wird und die zur gleichen NLB-VIP (192.168.24.180/24) aufgelöst werden. Die VIP wird auf den Host "FarmReports" abgebildet und hat die URL http://FarmReports.

Allgemeine Informationen zum Konfigurieren von DNS finden Sie unter Verwalten von DNS-Einträgen.

Konfigurieren Sie einen neuen DNS-A-Eintrag für den SSRS-Host. Im aktuellen Beispiel wird der Host "FarmReports" so konfiguriert, dass er zu der VIP mit Lastenausgleich aufgelöst wird.

Active Directory-Verzeichnisdienst

Erstellen eines SSRS-Dienstkontos

Es wird empfohlen, SQL Server Reporting Services unter seiner eigenen Domänenidentität auszuführen. In diesem Beispiel wurden die folgenden Konten erstellt:

Dienst Dienstidentität

SQL Server Reporting Services

vmlab\svcSQLRS

Konfigurieren von Dienstprinzipalnamen

Damit SSRS mithilfe von Kerberos-Authentifizierung eine Verbindung zu externen Datenquellen herstellt und bei diesen Datenquellen eine Authentifizierung durchführt, müssen für die Dienstkonten des Berichtsserver-Webdiensts und des Berichts-Managers und für das Dienstkonto für die externe Datenquelle Dienstprinzipalnamen konfiguriert sein. Informationen zum Konfigurieren und Validieren der erforderlichen Dienstprinzipalnamen für die Dienstkonten der SharePoint Server-Webanwendungen und von SQL Server finden Sie in den Szenarien 1 und 2 (Kernkonfiguration und Kerberos-Authentifizierung für SQL OLTP) in dieser Artikelreihe. Für die SSRS-Server wurden die folgenden Dienstprinzipalnamen definiert:

DNS-Host IIS-Anwendungspoolidentität Dienstprinzipalnamen

FarmReports.vmlab.local

vmlab\svcSQLRS

HTTP/FarmReports

HTTP/FarmReports.vmlab.local

In diesem Beispiel wurden die folgenden Befehle ausgeführt:

SetSPN -S HTTP/FarmReports vmlab\svcSQLRS

SetSPN -S HTTP/FarmReports.vmlab.local vmlab\svcSQLRS

Konfigurieren der Delegierung

Kerberos-Delegierung muss konfiguriert werden, damit SSRS die Identität des Clients an die Back-End-Datenquelle delegiert. In diesem Beispiel fragt SSRS Daten aus einer transaktionalen SQL Server-Datenbank unter Verwendung der Identität des Clients ab. Deshalb ist Kerberos-Delegierung erforderlich. Die eingeschränkte Kerberos-Delegierung ist in diesem Szenario keine Notwendigkeit (weil kein Protokollübergang erforderlich ist), es empfiehlt sich aber im Sinne einer Best Practice, sie zu konfigurieren.

Das SSRS-Dienstkonto, unter dem die SSRS-Dienste ausgeführt werden, muss vertrauenswürdig sein, damit die Anmeldeinformationen an die einzelnen Back-End-Dienste delegiert werden. In unserem Beispiel werden die folgenden Delegierungspfade benötigt:

Prinzipaltyp Prinzipalname Dienst, an den delegiert wird

Benutzer

Vmlab\svcPortal10App

HTTP/FarmReports

HTTP/FarmReports.vmlab.local

Benutzer

Vmlab\svcSQLRS

MSSQLSVC/MySqlCluster.vmlab.local:1433

Optional können Sie die folgenden Delegierungspfade konfigurieren, wenn Berichte mit Analysis Services-Datenquellen ausgeführt werden sollen:

Prinzipaltyp Prinzipalname Dienst, an den delegiert wird

Benutzer

Vmlab\svcSQLRS

MSOLAPSvc.3/MySqlCluster.vmlab.local

So konfigurieren Sie eingeschränkte Delegierung

  1. Öffnen Sie in Active Directory-Benutzer und -Computer die Eigenschaften des Active Directory-Objekts.

  2. Wechseln Sie zur Registerkarte Delegierung.

  3. Wählen Sie die Option Benutzer bei Delegierungen angegebener Dienste vertrauen aus.

    Hinweis

    Wenn Sie eine Authentifizierung bei Datenquellen innerhalb derselben Gesamtstruktur, aber außerhalb der Domäne, in der sich der SSRS-Server befindet, durchführen müssen, konfigurieren Sie für das SSRS-Dienstkonto einfache Delegierung statt eingeschränkter Delegierung. Dazu wählen Sie die Option Computer bei Delegierungen aller Dienste vertrauen. Denken Sie daran, dass eine gesamtstrukturübergreifende Kerberos-Delegierung nicht möglich ist.

  4. Wählen Sie optional Beliebiges Authentifizierungsprotokoll verwenden aus. Dadurch wird der Protokollübergang aktiviert.

  5. Klicken Sie auf die Schaltfläche Hinzufügen, um den Dienstprinzipal auszuwählen, an den delegiert werden kann.

  6. Wählen Sie Benutzer und Computer aus.

  7. Wählen Sie das Dienstkonto aus, unter dem der Dienst ausgeführt wird, an den die Delegierung erfolgen soll. Im aktuellen Beispiel ist dies das Dienstkonto für SQL Server Reporting Services.

    Hinweis

    Dem ausgewählten Dienstkonto muss ein Dienstprinzipalname zugeordnet sein. In unserem Beispiel war der Dienstprinzipalname für dieses Konto (HTTP/FarmReports.vmlab.local) in einem früheren Schritt in diesem Szenario konfiguriert worden.

  8. Klicken Sie auf OK. Anschließend werden Sie aufgefordert, auf der folgenden Seite die Dienstprinzipalnamen auszuwählen, an die delegiert werden soll.

  9. Wählen Sie den Dienst aus, oder wählen Sie Alle auswählen aus, und klicken Sie auf OK.

    Die ausgewählten Dienstprinzipalnamen sollten nun in der Liste Dienste, für die dieses Konto delegierte Anmeldeinformationen verwenden kann angezeigt werden:

  10. Wiederholen Sie diese Schritte für jeden Delegierungspfad, der weiter oben in diesem Abschnitt angegeben wurde. Sie müssen die Delegierung vom SQL Server Reporting Services-Dienstkonto zu einer oder mehreren Back-End-Datenquellen (in unseren Szenarien SQL OLTP oder SQL AS) konfigurieren.

    Hinweis

    Wenn Sie eine Authentifizierung bei Datenquellen innerhalb derselben Gesamtstruktur, aber außerhalb der Domäne, in der sich der SSRS-Server befindet, durchführen müssen, konfigurieren Sie für das SSRS-Dienstkonto einfache Delegierung statt eingeschränkter Delegierung. Dazu wählen Sie die Option Computer bei Delegierungen aller Dienste vertrauen. Denken Sie daran, dass eine gesamtstrukturübergreifende Kerberos-Delegierung nicht möglich ist.

Überprüfen des MSSQLSVC-Dienstprinzipalnamens für das Dienstkonto, unter dem der Dienst auf dem Server mit SQL Server ausgeführt wird (Szenario 2)

Stellen Sie sicher, dass der Dienstprinzipalname für das Analysis Services-Dienstkonto (vmlab\svcSQL) vorhanden ist, indem Sie den folgenden SetSPN-Befehl verwenden:

SetSPN -L vmlab\svcSQL

Sie sollten folgende Ausgabe sehen:

MSSQLSVC/MySqlCluster MSSQLSVC/MySqlCluster.vmlab.local:1433

Überprüfen des MSOLAPSvc.3-Dienstprinzipalnamens für das Dienstkonto, unter dem der SSAS-Dienst auf dem Server mit SQL Server Analysis Services ausgeführt wird (Szenario 3)

Stellen Sie sicher, dass der Dienstprinzipalname für das SQL Server-Dienstkonto (vmlab\svcSQLAS) vorhanden ist, indem Sie den folgenden SetSPN-Befehl verwenden:

SetSPN -L vmlab\svcSQLAS

Sie sollten folgende Ausgabe sehen:

MSOLAPSvc.3/MySqlCluster MSOLAPSvc.3/MySqlCluster.vmlab.local

SQL Server Reporting Services

Installieren von SharePoint Server 2010

Für SQL Server Reporting Services muss SharePoint Server 2010 auf jedem SSRS-Server installiert sein, damit SSRS im integrierten SharePoint-Modus ausgeführt wird. Installieren Sie SharePoint Server 2010 auf jedem Berichtsserver, und fügen Sie jeden Server der SharePoint Server-Farm hinzu.

Installieren und konfigurieren von SSRS im Modus für horizontale Skalierung mit Lastenausgleich

Eine detaillierte Schritt-für-Schritt-Anleitung zum Konfigurieren von SQL Server Reporting Services im Modus für horizontale Skalierung mit Lastenausgleich würde den Rahmen dieses Dokuments sprengen. Ausführliche Anweisungen zum Installieren von SSRS finden Sie unter Bereitstellungstopologien für Reporting Services im integrierten SharePoint-Modus. Führen Sie nach der Installation von SSRS die unten beschriebenen zusätzlichen Schritte zur Konfiguration von SSRS aus, um die Installation abzuschließen.

Ändern von "Web.config" auf den SSRS-Servern

Die folgenden Änderungen müssen an den web.config-Dateien auf jedem SSRS-Server vorgenommen werden. Die Datei web.config befindet sich im Verzeichnis Programme, in dem SSRS installiert ist:

Hinzufügen des "<machineKey>"-Elements

Für SSRS-Server in einer Konfiguration mit Lastenausgleich muss auf allen Servern der gleiche Computerschlüssel festgelegt sein. Fügen Sie das Computerschlüsselelement als untergeordnetes Element des <system.web>-Elements in der Datei web.config hinzu. Im Folgenden ein Beispiel für einen Computerschlüssel:

<machineKey
validationKey="54AEBD3BC893726E9B84D30F4970CB58F2086C2DAEE2F8D34A65A0632F4676DDBBC38779F2972C6596931E
13BD07A772BD4B9395BE38A43E461079E45D594E53"
decryptionKey=""
validation="SHA1"
decryption="AES"
/>

Wichtig

VERWENDEN SIE DEN BEISPIELCOMPUTERSCHLÜSSEL NICHT IN IHRER UMGEBUNG. Generieren Sie für Ihre Umgebung eigene Schlüsselwerte.

Ändern von "ReportingServer.config"

Die folgenden Änderungen müssen an den ReportingServer.config-Dateien auf jedem SSRS-Server vorgenommen werden. Die Datei ReportingServer.config befindet sich im Verzeichnis Programme, in dem SSRS installiert ist:

Aktivieren der Kerberos-Authentifizierung

Zum Aktivieren der Kerberos-Authentifizierung legen Sie den Authentifizierungstyp auf RSWindowsNegotiate fest. Ändern Sie das <AuthenticationTypes/>-Element, und fügen Sie <RSWindowsNegotiate/> hinzu:

<AuthenticationTypes>
    <RSWindowsNegotiate/>
</AuthenticationTypes>

Ändern des URL-Stamms

Fügen Sie die URL für den Berichtsserver dem <UrlRoot>-Tag im <service>-Tag von ReportingServer.Config hinzu.

<UrlRoot>http://FarmReports/reportserver</UrlRoot>

Konfigurieren von "BackConnectionHostNames" in der Registrierung

Damit SQL Server Reporting Services sich gegenseitig auf einem einzigen Computer authentifizieren können, muss NTLM-Loopbackerkennung adressiert werden. Es empfiehlt sich, anstatt die Loopbackerkennung zu deaktivieren, den BackConnectionHostNames-Wert in der Registrierung jedes SSRS-Servers zu konfigurieren. Weitere Informationen zu BackConnectionHostNames finden Sie unter Wenn Sie SQL Server 2008 Reporting Services verwenden, wird die folgende Fehlermeldung angezeigt:.

Im aktuellen Beispiel konfigurieren wir die folgenden Werte für BackConnectionHostNames:

  • FarmReports

  • FarmReports.vmlab.local

Nachdem Sie die BackConnectionHostNames-Werte festgelegt haben, starten Sie den SSRS-Server neu.

Konfigurieren von SharePoint Server

In der Zentraladministration finden Sie die Farmkonfigurationsoptionen für SSRS. Beachten Sie, dass Sie in SharePoint Server 2010 keine separate SSRS-Komponenteninstallation für SSRS-Administration und Webparts installieren müssen. Die SSRS-Farmoptionen finden Sie in der Zentraladministration im Abschnitt Allgemeine Anwendungseinstellungen unter Reporting Services.

Erteilen von Berechtigungen zur Inhaltsdatenbank der Webanwendung für das Reporting Services-Dienstkonto

Ein erforderlicher Schritt beim Konfigurieren von SQL Server Reporting Services im integrierten SharePoint-Modus besteht darin, dem Reporting Services-Dienstkonto Zugriff auf die Inhaltsdatenbanken für Webanwendungen zu gewähren, die Berichte hosten. In unserem Beispiel erteilten wir dem Reporting Services-Konto mithilfe von Windows PowerShell Zugriff auf die Inhaltsdatenbank der "Portal"-Webanwendung.

Führen Sie in der SharePoint 2010-Verwaltungsshell den folgenden Befehl aus:

$w = Get-SPWebApplication -Identity http://portal

$w.GrantAccessToProcessIdentity("vmlab\svcSQLRS")

Konfigurieren der Integration von Reporting Services

Geben Sie im Dialogfeld Reporting Services-Integration die Lastenausgleichs-URL des Berichtsservers an. Wählen Sie außerdem die Option Feature in allen vorhandenen Sammlungen aktivieren, damit das Reporting Services-Feature automatisch in den Websitesammlungen aktiviert wird.

Hinzufügen der einzelnen Berichtsserver zur Integration

Geben Sie im Dialogfeld Berichtsserver zur Integration hinzufügen jeden Knoten der Reporting Services-NLB-Gruppe an. Sie müssen dieses Dialogfeld für jeden Server öffnen, den Sie der Integration hinzufügen. Es besteht keine Möglichkeit, mehrere Server in einem einzigen Arbeitsschritt hinzuzufügen.

Festlegen von Standardwerten für Server

Die SSRS-Integration sollte jetzt konfiguriert sein. Zum Überprüfen der Konfiguration öffnen Sie die Seite Serverstandardwerte. Für das Beispiel im vorliegenden Dokument sind keine Änderungen erforderlich.

Überprüfen der Konfiguration

Erstellen einer Dokumentbibliothek für Berichte

Erstellen Sie eine Dokumentbibliothek zum Hosten von SSRS-Berichten in der SharePoint-Website. Im aktuellen Beispiel wird davon ausgegangen, dass eine Dokumentbibliothek namens "Reports" unter http://portal/reports vorhanden ist.

Validieren der Websitesammlungseinstellungen für Reporting Services

Navigieren Sie im Browser zu den Websiteeinstellungen der Website, von der die Dokumentbibliothek für SSRS-Berichte gehostet wird. In den Websiteeinstellungen sollte eine neue Kategorie namens Reporting Services angezeigt werden.

Wenn Sie das Feature Reporting Services nicht in der Liste der Websitesammlungsfeatures sehen, müssen Sie es u. U. über die Zentraladministration aktivieren. Weitere Informationen finden Sie unter Vorgehensweise: Aktivieren der Berichtsserverfunktion in der SharePoint-Zentraladministration (https://go.microsoft.com/fwlink/?linkid=196878&clcid=0x407).

Klicken Sie auf den Link für die Websiteeinstellungen für Reporting Services, um sich zu vergewissern, dass Sie auf die Einstellungen zugreifen können.

Hinweis

Für die vorliegende Demo sind keine Änderungen an den Reporting Services-Websiteeinstellungen erforderlich.

Erstellen und Veröffentlichen eines Testberichts in SQL Server Business Intelligence Development Studio

Nachdem Sie SSRS und die Integration in SharePoint Server konfiguriert haben, erstellen Sie einen Testbericht, um sicherzustellen, dass die Identitätsdelegierung ordnungsgemäß funktioniert.

  1. Öffnen Sie SQL Server Business Intelligence Development Studio. Klicken Sie auf Datei, zeigen Sie auf Neu, und klicken Sie dann auf Projekt.

  2. Wählen Sie Berichtsserverprojekt-Assistent aus, und geben Sie einen Projektnamen ein.

  3. Konfigurieren Sie als Nächstes eine neue Datenquelle. Wählen Sie den Typ Microsoft SQL Server aus, und klicken Sie auf die Schaltfläche Bearbeiten.

  4. Geben Sie unter Verbindungseigenschaften die Informationen zum Herstellen der Verbindung zum Demo-SQL Server-Cluster ein, der in Szenario 2 erstellt wurde.

  5. Öffnen Sie den Abfrage-Designer, klicken Sie mit der rechten Maustaste in das Abfragefenster, und wählen Sie Tabelle hinzufügen aus.

  6. Wählen Sie die Tabelle Sales aus (in Szenario 2 erstellt) und dann Alle Spalten.

  7. Wählen Sie einen tabellarischen Berichtstyp aus.

  8. Im aktuellen Beispiel wird nach Region gruppiert. Diesen Schritt können Sie überspringen, wenn Sie möchten.

  9. Sobald das Projekt erstellt ist, öffnen Sie über das Menü Projekt die Projekteigenschaften.

  10. Konfigurieren Sie die folgenden Projekteigenschaften:

    1. TargetDatasetFolder – auf den zuvor erstellten Testberichtordner festlegen

    2. TargetReportFolder – auf den zuvor erstellten Testberichtordner festlegen

    3. TargetReportPartFolder – auf den zuvor erstellten Testberichtordner festlegen

    4. TargetServerURL – auf die URL der Webanwendung festlegen, die den Bericht hostet

  11. Stellen Sie den Bericht in der SharePoint-Bibliothek bereit. Wählen Sie im Menü Erstellen den Befehl <Projektname> bereitstellen aus.

  12. Wenn das Projekt erfolgreich bereitgestellt wurde, wird im Fenster Ausgabe eine entsprechende Meldung angezeigt.

Anzeigen des Testberichts in Internet Explorer

Öffnen Sie die Berichtsdokumentbibliothek, die Sie in den vorherigen Schritten dieses Szenarios erstellt haben, im Browser. Sie sollten die Berichtsdatei sehen, die Sie soeben veröffentlicht haben. Wird der Bericht nicht angezeigt, müssen Sie das Reporting Services-Feature u. U. in der Websitesammlung aktivieren. Weitere Informationen finden Sie unter Vorgehensweise: Aktivieren der Berichtsserverfunktion in der SharePoint-Zentraladministration (https://go.microsoft.com/fwlink/?linkid=196878&clcid=0x407).

Klicken Sie auf den Bericht. Der Bericht wird im Browser gerendert.

Zur weiteren Überprüfung der Delegierung und der Datenverbindung ändern Sie die Quelldaten in SQL Server Management Studio und aktualisieren die Datenverbindung für den SSRS-Bericht im Browser. Die Datenänderungen sollten im Bericht wiedergegeben werden.

SSL-Konfiguration für Reporting Services

In manchen Umgebungen ist es möglicherweise erforderlich, die Kommunikation zwischen den Front-End-Webservern und den SSRS-Servern mit SSL zu schützen. Eine detaillierte Schritt-für-Schritt-Anleitung zum Konfigurieren von für Reporting Services übersteigt den Rahmen dieses Artikels. Deshalb sei hier nur eine Zusammenfassung der erforderlichen Schritte gegeben:

  1. Konfigurieren Sie jeden Berichtsserver für SSL. Siehe Konfigurieren eines Berichtsservers für SSL-Verbindungen (Secure Sockets Layer) (https://go.microsoft.com/fwlink/?linkid=196881&clcid=0x407).

  2. Aktualisieren Sie die Datei ReportingServer.config. Ändern Sie den <UrlRoot> in die neue https://-URL.

  3. Starten Sie den SQL Server Reporting Services-Dienst neu.

  4. Ändern Sie in der Zentraladministration die Einstellungen für die Reporting Services-Integration, und ändern Sie die URL für den Berichtsserver-Webdienst in die neue https://-URL.

  5. Starten Sie Internetinformationsdienste (IIS) in jeder Instanz von SharePoint Server neu, in der der Webanwendungsdienst ausgeführt wird.

Sie müssen keinen der Dienstprinzipalnamen ändern, die Sie beim Konfigurieren von Reporting Services mit HTTP in den vorherigen Schritten erstellt haben. Der Dienstprinzipalname für einen HTTP-Dienst über SSL bleibt HTTP/<Dienst>. Dies sehen Sie, wenn Sie NetMon verwenden, um den Front-End-Webserver anzuzeigen, der mit dem Reporting Services-Server kommuniziert.