Übersicht über Sicherheitserweiterungen
Eine Reporting Services-Sicherheitserweiterung ermöglicht die Authentifizierung und Autorisierung von Benutzern oder Gruppen. Das heißt, verschiedene Benutzer können sich bei einem Berichtsserver anmelden und anhand ihrer Identitäten verschiedene Aufgaben oder Vorgänge ausführen. Standardmäßig verwendet Reporting Services eine Windows-basierte Authentifizierungserweiterung, die mit Windows-Kontoprotokollen die Identitäten der Benutzer überprüft, die ihrer Aussage nach Konten auf dem System haben. Reporting Services verwendet zur Autorisierung der Benutzer ein rollenbasiertes Sicherheitssystem. Das rollenbasierte Sicherheitsmodul von Reporting Services ähnelt den rollenbasierten Sicherheitsmodellen anderer Technologien.
Da Sicherheitserweiterungen auf einer offenen und erweiterbaren API beruhen, können Sie neue Authentifizierungs- und Autorisierungserweiterungen in Reporting Services erstellen. Im Folgenden sehen Sie ein Beispiel einer typischen Sicherheitserweiterungsimplementierung, die mit formularbasierter Authentifizierung und Autorisierung arbeitet:
Wie in der Abbildung dargestellt, treten Authentifizierung und Autorisierung folgendermaßen auf:
Ein Benutzer versucht über eine URL auf den Berichts-Manager zuzugreifen und wird zu einem Formular umgeleitet, das Anmeldeinformationen von Benutzern für die Clientanwendung sammelt.
Der Benutzer gibt die Anmeldeinformationen an das Formular.
Die Anmeldeinformationen des Benutzers werden mithilfe der LogonUser-Methode an den Berichtsserver-Webdienst übermittelt.
Der Webdienst ruft die vom Benutzer angegebene Sicherheitserweiterung auf und überprüft, ob der Benutzername und das Kennwort in der benutzerdefinierten Sicherheitsinstanz vorhanden sind.
Nach der Authentifizierung erstellt der Webdienst für die Startseite des Berichts-Managers ein Authentifizierungsticket (auch "Cookie" genannt), verwaltet das Ticket und überprüft die Rolle des Benutzers.
Der Webdienst gibt das Cookie an den Browser zurück und zeigt die entsprechende Benutzeroberfläche im Berichts-Manager an.
Nachdem der Benutzer authentifiziert wurde, sendet der Browser Anforderungen an den Berichts-Manager, während das Cookie im HTTP-Header übertragen wird. Diese Anforderungen sind Reaktionen auf Benutzeraktionen im Berichts-Manager.
Das Cookie wird zusammen mit der angeforderten Benutzeroperation im HTTP-Header an den Webdienst übertragen.
Das Cookie wird überprüft. Wenn es gültig ist, gibt der Berichtsserver die Sicherheitsbeschreibung und andere im Zusammenhang mit der angeforderten Operation stehende Informationen aus der Berichtsserver-Datenbank zurück.
Wenn das Cookie gültig ist, ruft der Berichtsserver die Sicherheitserweiterung auf und überprüft, ob der Benutzer zur Ausführung der bestimmten Operation autorisiert ist.
Wenn der Benutzer autorisiert ist, führt der Berichtsserver die angeforderte Operation aus und gibt die Steuerung an den Aufrufer zurück.
Nach der Authentifizierung des Benutzers verwendet der URL-Zugriff des Berichtsservers dasselbe Cookie. Das Cookie wird im HTTP-Header übertragen.
Der Benutzer fordert so lange Operationen auf dem Berichtsserver an, bis die Sitzung beendet ist.
Sinnvolles Implementieren von Sicherheitserweiterungen
Sie sollten nach Möglichkeit immer die Windows-Authentifizierung verwenden. In den folgenden Fällen ist jedoch möglicherweise eine benutzerdefinierte Authentifizierung und Autorisierung für Reporting Services angemessener:
Sie haben eine Internet- oder Extranetanwendung, die keine Windows-Konten nutzen kann.
Sie haben benutzerdefinierte Benutzer und Rollen, die ein übereinstimmendes Autorisierungsschema in Reporting Services bereitstellen müssen.