Vorgehensweise: Registrieren eines Dienstprinzipalnamens (SPN) für einen Berichtsserver

Wenn Sie Reporting Services in einem Netzwerk bereitstellen, in dem das Kerberos-Protokoll zur gegenseitigen Authentifizierung verwendet wird, müssen Sie einen Dienstprinzipalnamen (SPN) für den Berichtsserverdienst erstellen, wenn Sie diesen als Domänenbenutzerkonto konfigurieren. Beim Konfigurieren eines Domänenbenutzers als Dienstkonto müssen Sie den Berichtsserver außerdem für die Verwendung der NTLM-Authentifizierung 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 einem 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 im Microsoft Windows Server TechCenter unter Setspn Overview.

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

Syntax

Die Befehlssyntax für die Verwendung des Hilfsprogramms SetSPN zum Erstellen eines SPN für den Berichtsserver kann z. B. wie folgt lauten:

Setspn -a http/<computername>.<domainname>:<port> <domain-user-account>

SetSPN ist in den Supporttools von Windows Server 2003 Service Pack 1 enthalten, das separat heruntergeladen werden muss. Das -a-Argument wird verwendet, um einen Dienstprinzipalnamen bei einem besonderen Konto zu registrieren.

HTTP ist die Dienstklasse. Der Report Server-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>, <domainname> und <port> bezeichnen die eindeutige Netzwerkadresse des Computers, der den Berichtsserver hostet. Dies kann ein lokaler Hostname oder ein vollqualifizierter Domänenname (FQDN) sein. Wenn Sie nur über eine Domäne verfügen und Port 80 verwenden, ist eine Angabe von <domainname> und <port> 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.

HinweisHinweis

HINWEIS: Wenn Sie Internet Explorer und die Kerberos-Authentifizierung verwenden, wird empfohlen, den Port nicht als Teil der Befehlszeile anzugeben. Weitere Informationen finden Sie unter Internet Explorer kann nicht das Kerberos-Authentifizierungsprotokoll verwenden, um eine Verbindung zu einer Website herzustellen.

Registrieren eines SPNs für ein Domänenbenutzerkonto

So registrieren Sie einen 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. Laden Sie die Supporttools in Windows Server 2003 Service Pack 1 aus dem Download Center herunter, und installieren Sie diese.

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

  4. Öffnen Sie ein Eingabeaufforderungsfenster.

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

    Setspn -a http/<computer-name>.<domain-name>:<port> <domain-user-account>
    
  6. Führen Sie den Befehl aus.

  7. Öffnen Sie die Datei RsReportServer.config, und suchen Sie den Abschnitt <AuthenticationTypes>. Fügen Sie <RSWindowsNegotiate/> als ersten Eintrag in diesem Abschnitt hinzu, um NTLM zu aktivieren.