Registrieren eines Dienstprinzipalnamens (SPN) für einen Berichtsserver

Wenn Sie Reporting Services in einem Netzwerk bereitstellen, das das Kerberos-Protokoll für die gegenseitige Authentifizierung verwendet, müssen Sie einen Dienstprinzipalnamen (Service Principal Name, SPN) für den Report Server-Dienst erstellen. Sie müssen den Namen erstellen, wenn Sie ihn für die Ausführung als Domänenbenutzerkonto konfigurieren.

Informationen zu SPNs

Ein SPN ist ein eindeutiger Bezeichner für einen Dienst in einem Netzwerk mit Kerberos-Authentifizierung. SPNs bestehen aus einer Dienstklasse, einem Hostnamen und (manchmal) einem Port. HTTP-SPNs erfordern keinen Port. In einem Netzwerk mit Kerberos-Authentifizierung muss ein SPN für den Server unter einem integrierten Computerkonto wie NetworkService oder LocalSystem oder unter einem Benutzerkonto registriert sein. SPNs werden automatisch für integrierte Konten registriert. Wenn Sie einen Dienst unter einem Domänenbenutzerkonto ausführen, müssen Sie den SPN manuell für das Konto registrieren, das Sie verwenden möchten.

Um einen SPN zu erstellen, können Sie das Befehlszeilen-Hilfsprogramm SetSPN verwenden. Weitere Informationen finden Sie unter:

Sie müssen Domänenadministrator sein, um das Hilfsprogramm auf dem Domänencontroller auszuführen.

Syntax

Wenn Sie SPNs mit SetSPN bearbeiten, muss der entsprechende SPN im richtigen Format eingegeben werden. Das Format von HTTP-SPNs ist: http/host. Die Befehlssyntax für die Verwendung des Hilfsprogramms SetSPN zum Erstellen eines SPN für den Berichtsserver kann z. B. wie folgt lauten:

Setspn -s http/<computer-name>.<domain-name> <domain-user-account>

SetSPN ist in Windows Server verfügbar. Mit dem -s-Argument wird ein SPN hinzugefügt, nachdem überprüft wurde, dass kein doppelter Name vorhanden ist.

Hinweis

-s ist in Windows Server ab Windows Server 2008 verfügbar.

HTTP ist die Dienstklasse. Der Berichtsserver-Webdienst wird in HTTP.SYS ausgeführt. Wenn Sie einen SPN für HTTP erstellen, werden allen Webanwendungen auf dem gleichen Computer, die in HTTP.SYS ausgeführt werden (einschließlich der Anwendungen, die in IIS gehostet werden), Tickets auf der Basis des Domänenbenutzerkontos zugewiesen. Wenn diese Dienste unter einem anderen Konto ausgeführt werden, können Authentifizierungsanforderungen nicht ordnungsgemäß verarbeitet werden. Konfigurieren Sie deshalb alle HTTP-Anwendungen zur Ausführung unter dem gleichen Konto, oder erstellen Sie Hostheader für jede Anwendung und anschließend je einen SPN pro Hostheader. Wenn Sie Hostheader konfigurieren, sind DNS-Änderungen unabhängig von der Reporting Services -Konfiguration erforderlich.

Die Werte für <computername> und <domainname> geben die eindeutige Netzwerkadresse des Computers an, der den Berichtsserver hostet. Dieser Wert kann ein lokaler Hostname oder ein vollqualifizierter Domänenname (FQDN) sein. Wenn Sie über nur eine Domäne verfügen, ist <domainname> in der Befehlszeile nicht erforderlich. <domain-user-account> ist das Benutzerkonto, unter dem der Berichtsserverdienst ausgeführt wird und für das der SPN registriert sein muss.

Registrieren eines SPN für einen Berichtsserverdienst, der als Domänenbenutzer ausgeführt wird

  1. Installieren Sie Reporting Services , und konfigurieren Sie den Berichtsserverdienst zur Ausführung als Domänenbenutzerkonto. Erst wenn Sie die folgenden Schritte ausgeführt haben, können Benutzer eine Verbindung mit dem Berichtsserver herstellen.

  2. Melden Sie sich als Domänenadministrator beim Domänencontroller an.

  3. Öffnen Sie eine Eingabeaufforderung.

  4. Kopieren Sie den folgenden Befehl, um Platzhalterwerte durch gültige Werte für das Netzwerk zu ersetzen:

    Setspn -s http/<computer-name>.<domain-name> <domain-user-account>
    

    Beispiel: Setspn -s http/MyReportServer.MyDomain.com MyDomainUser

  5. Führen Sie den Befehl aus.

  6. Öffnen Sie die Datei RsReportServer.config und suchen Sie den Abschnitt <AuthenticationTypes>.

  7. Fügen Sie <RSWindowsNegotiate> als ersten Eintrag in diesem Abschnitt hinzu, um Kerberos zu aktivieren.