SPN-Registrierung für eine Analysis Services-Instanz

Gilt für: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Ein Dienstprinzipalname (Service Principal Name, SPN) identifiziert eindeutig einen Dienst instance in einer Active Directory-Domäne, wenn Kerberos zur gegenseitigen Authentifizierung von Client- und Dienstidentitäten verwendet wird. Ein SPN ist dem Anmeldekonto zugeordnet, unter dem die Dienstinstanz ausgeführt wird.

Bei Clientanwendungen, die über die Kerberos-Authentifizierung eine Verbindung mit Analysis Services herstellen, wird von den Analysis Services-Clientbibliotheken ein SPN erstellt. Dieser basiert auf der Verbindungszeichenfolge und anderen bekannten Variablen wie der Dienstklasse, die in der jeweiligen Analysis Services-Version fest definiert sind.

Damit die gegenseitige Authentifizierung funktioniert, müssen die vom Client erstellten SPNs einem SPN-Objekt für einen Active Directory-Domänencontroller (DC) entsprechen. Deshalb müssen möglicherweise mehrere SPNs für eine einzelne Analysis Services-Instanz registriert werden, um sämtliche Varianten abzudecken, wie der Hostname in einer Verbindungszeichenfolge von einem Benutzer angegeben werden kann. Beispielsweise benötigen Sie wahrscheinlich zwei SPNs, um sowohl den vollqualifizierten Domänennamen (FQDN) eines Servers als auch den kürzeren Computernamen zu unterstützen. Die richtige Registrierung des Analysis Services-SPNs ist wichtig für eine erfolgreiche Verbindung. Wenn der SPN nicht oder doppelt vorhanden ist bzw. ein falsches Format aufweist, tritt ein Verbindungsfehler auf.

Die SPN-Registrierung wird manuell vom Analysis Services-Administrator ausgeführt. Im Gegensatz zur SQL Server-Datenbank-Engine wird der SPN von Analysis Services beim Dienststart nie automatisch registriert. Die manuelle Registrierung ist erforderlich, wenn Analysis Services unter dem virtuellen Standardkonto, einem Domänenbenutzerkonto oder einem integriertem Konto (einschließlich einer Pro-Dienst-SID) ausgeführt wird.

Die SPN-Registrierung ist nicht erforderlich, wenn der Dienst unter einem vordefinierten, verwalteten Dienstkonto ausgeführt wird, das von einem Domänenadministrator erstellt wird. Je nach Funktionsumfang der Domäne können für die Registrierung eines SPNs Domänenadministratorberechtigungen erforderlich sein.

Tipp

Microsoft Kerberos Configuration Manager for SQL Server ist ein Diagnosetool zur Behebung Kerberos-bezogener Probleme mit der Verbindung mit SQL Server. Weitere Informationen finden Sie unter Microsoft Kerberos-Konfigurations-Manager für SQL Server.

Dieses Thema enthält folgende Abschnitte:

Wenn eine SPN-Registrierung erforderlich ist

SPN-Format für Analysis Services

SPN-Registrierung für ein virtuelles Konto

SPN-Registrierung für ein Domänenkonto

SPN-Registrierung für ein integriertes Konto

SPN-Registrierung für eine benannte Instanz

SPN-Registrierung für einen SSAS-Cluster

SPN-Registrierung für SSAS-Instanzen, die für den HTTP-Zugriff konfiguriert sind

SPN-Registrierung für SSAS-Instanzen, die an festen Ports lauschen

Wann die SPN-Registrierung erforderlich ist

Jede Clientverbindung, die "SSPI=Kerberos" für die Verbindungszeichenfolge angibt, führt zu SPN-Registrierungsanforderungen für eine Analysis Services-instance.

Die SPN-Registrierung ist in folgenden Situationen erforderlich. Ausführlichere Informationen finden Sie unter Configure Analysis Services for Kerberos constrained delegation.

  • Die Identitätsdelegierung ist erforderlich, um die Benutzeridentität von der Clientanwendung oder dem Dienst der mittleren Ebene an Analysis Services zu übertragen. Die Identitätsdelegierung wird normalerweise verwendet, wenn benutzerspezifische Berechtigungen oder Filter für bestimmte Objekte definiert werden.

    Ein häufiges Szenario für die Identitätsdelegierung besteht darin, Dienste mittlerer Ebene, z. B. Excel Services oder Reporting Services, für die eingeschränkte Delegierung konfigurieren, damit beim Abrufen von Daten in Analysis Services eine Benutzeridentität angenommen werden kann. Um dieses Verhalten zu unterstützen, müssen Sie einen Analysis Services-SPN als Zieldienst bereitstellen, wenn Sie Excel Services oder Reporting Services für die eingeschränkte Delegierung konfigurieren.

  • Analysis Services delegiert eine Benutzeridentität, wenn Daten aus einer relationalen SQL Server-Datenbank mithilfe des DirectQuery-Modus für tabellarische Datenbanken abgerufen werden. Dies ist das einzige Szenario, bei dem Analysis Services die Benutzeridentität an einen anderen Dienst delegiert.

SPN-Format für Analysis Services

Verwenden Sie setspn , um einen SPN zu registrieren. Unter neueren Betriebssystemen wird setspn als Systemhilfsprogramm installiert. Weitere Informationen finden Sie unter SetSPN.

In der folgenden Tabelle werden die einzelnen Bestandteile des Analysis Services-SPNs beschrieben.

Element BESCHREIBUNG
Dienstklasse MSOLAPSvc.3 identifiziert den Dienst als Analysis Services-Instanz. Die " .3" ist ein Verweis auf die Version des XMLA-over-TCP/IP Protokolls, das für Analysis Services-Übertragungen verwendet wird. Dies steht in keinem Zusammenhang mit der Produktfreigabe. Daher ist MSOLAPSvc.3 die richtige Dienstklasse für SQL Server 2005, 2008, 2008 R2, 2012 und jede zukünftige Version von Analysis Services, bis das Protokoll selbst überarbeitet wird.
Hostname Identifiziert den Computer, auf dem der Dienst ausgeführt wird. Das kann ein vollqualifizierter Domänenname oder ein NetBIOS-Name sein. Sie sollten einen SPN für beide Namen registrieren.

Wenn Sie einen SPN für den NetBIOS-Namen eines Servers registrieren, sollten Sie anhand von SetupSPN -S doppelte Registrierungseinträge suchen. NetBIOS-Namen sind in einer Gesamtstruktur nicht eindeutig, und eine doppelte SPN-Registrierung führt dazu, dass die Verbindung fehlschlägt.

Bei Analysis Services-Clustern mit Lastenausgleich sollte der Hostname dem virtuellen Namen entsprechen, der dem Cluster zugewiesen ist.

Ein SPN sollte nie anhand der IP-Adresse erstellt werden. Kerberos verwendet die DNS-Auflösungsfunktionen der Domäne. Das wird umgangen, indem eine IP-Adresse angegeben wird.
Portnummer Obwohl die Portnummer Teil der SPN-Syntax ist, geben Sie bei der Registrierung eines Analysis Services-SPNs nie eine Portnummer an. Der Doppelpunkt (:), der in der SPN-Standardsyntax normalerweise zur Angabe einer Portnummer dient, wird von Analysis Services für den Instanznamen verwendet. Bei einer Analysis Services-Instanz wird davon ausgegangen, dass der Port dem Standardport (TCP 2383) oder einem Port entspricht, der vom SQL Server-Browserdienst (TCP 2382) zugewiesen wird.
Instanzname Analysis Services ist ein replizierbarer Dienst, der mehrmals auf demselben Computer installiert werden kann. Jede Instanz wird über den Instanznamen identifiziert.

Dem Instanznamen wird ein Doppelpunkt (:) vorangestellt. Bei einem Hostcomputer mit dem Namen "SRV01" und der benannten Instanz "SSAS-Tabular" sollte der SPN beispielsweise "SRV01:SSAS-Tabular" lauten.

Beachten Sie, dass sich die Syntax zum Angeben einer benannten Analysis Services-Instanz von der Syntax unterscheidet, die von anderen SQL Server-Instanzen verwendet wird. Andere Dienste verwenden einen umgekehrten Schrägstrich (\), um den Instanznamen in einem SPN anzufügen.
Dienstkonto Dies ist das Startkonto des Windows-Diensts MSSQLServerOLAPService . Es kann sich um ein Windows-Domänenbenutzerkonto, ein virtuelles Konto, ein verwaltetes Dienstkonto (MSA) oder ein integriertes Konto handeln, wie z. B. Pro-Dienst-SID, NetworkService oder LocalSystem. Ein Windows-Domänenbenutzerkonto kann das folgende Format aufweisen: Domäne\Benutzer oder Benutzer@Domäne.

SPN-Registrierung für ein virtuelles Konto

Virtuelle Konten sind der Standardkontotyp für SQL Server-Dienste. Das virtuelle Konto ist NT Service\MSOLAPService für eine Standard-instance und NT Service\MSOLAP$<instance-name> für einen benannten instance.

Wie der Name bereits aussagt, sind diese Konten nicht in Active Directory enthalten. Ein virtuelles Konto ist nur auf dem lokalen Computer vorhanden. Bei der Verbindung mit externen Diensten, Anwendungen oder Geräten wird die Verbindung über das lokale Computerkonto hergestellt. Wenn der SPN also für eine Analysis Services-Instanz registriert wird, die unter einem virtuellen Konto ausgeführt wird, handelt es sich tatsächlich um eine SPN-Registrierung für das Computerkonto.

Beispielsyntax für eine Standardinstanz, die als "NT Service\MSOLAPService" ausgeführt wird

In diesem Beispiel wird die setspn -Syntax für eine Analysis Services-Standardinstanz veranschaulicht, die unter dem virtuellen Standardkonto ausgeführt wird. In diesem Beispiel lautet der Computerhostname AW-SRV01. Wie bereits erwähnt, muss für die SPN-Registrierung das Computerkonto und nicht das virtuelle Konto NT Service\MSOLAPServiceangegeben werden.

Setspn -s MSOLAPSvc.3/AW-SRV01.AdventureWorks.com AW-SRV01  

Hinweis

Denken Sie daran, zwei SPN-Registrierungen zu erstellen, eine für den NetBIOS-Hostnamen und einen zweiten für einen vollqualifizierten Domänennamen des Hosts. Unterschiedliche Clientanwendungen verwenden verschiedene Hostnamenskonventionen, wenn sie eine Verbindung mit Analysis Services herstellen. Durch die Erstellung beider SPN-Registrierungen wird sichergestellt, dass beide Versionen des Hostnamens berücksichtigt werden.

Beispielsyntax für eine benannte instance, die als NT Service\MSOLAP$<instance-name ausgeführt wird>

In diesem Beispiel wird die setspn -Syntax für eine benannte Instanz veranschaulicht, die unter dem virtuellen Standardkonto ausgeführt wird. Der Computerhostname lautet in diesem Fall AW-SRV02 und der Instanzname AW-FINANCE. Auch hier ist es das Computerkonto, das für den SPN angegeben ist, und nicht das virtuelle Konto NT Service\MSOLAP$<instance-name>.

Setspn -s MSOLAPSvc.3/AW-SRV02.AdventureWorks.com:AW-FINANCE AW-SRV02  

SPN-Registrierung für ein Domänenkonto

Üblicherweise wird zum Ausführen einer Analysis Services-Instanz ein Domänenkonto verwendet.

Für Analysis Services-Instanzen, die in einem Netzwerk oder Cluster mit Hardwarelastenausgleich ausgeführt werden, ist ein Domänenkonto erforderlich, wobei jede Instanz des Clusters unter demselben Domänenkonto ausgeführt wird.

Beispielsyntax für eine Standardinstanz, die als Domänenbenutzer ausgeführt wird

In diesem Beispiel wird die setspn -Syntax für eine Analysis Services-Standardinstanz veranschaulicht, die in der Domäne AdventureWorks unter dem Domänenbenutzerkonto SSAS-Serviceausgeführt wird.

Setspn -s msolapsvc.3/AW-SRV01.Adventureworks.com AdventureWorks\SSAS-Service  

Tipp

Überprüfen Sie, ob der SPN für den Analysis Services-Server erstellt wurde, indem Sie je nach SPN-Registrierung Setspn -L <domain account> oder Setspn -L <machinename>ausführen. In der Liste sollte MSOLAPSVC.3/<hostname> angezeigt werden.

SPN-Registrierung für ein integriertes Konto

Obwohl diese Vorgehensweise nicht empfohlen wird, sind ältere Analysis Services-Installationen manchmal für die Ausführung unter integrierten Konten wie Netzwerkdienst, Lokaler Dienst oder Lokales System konfiguriert.

Beispielsyntax für eine Standardinstanz, die unter einem integrierten Konto ausgeführt wird

Die SPN-Registrierung für einen Dienst, der unter einem integrierten Konto oder einer Pro-Dienst-SID ausgeführt wird, weist die gleiche SPN-Syntax wie für das virtuelle Konto auf. Verwenden Sie anstelle des Kontonamens das Computerkonto:

Setspn -s MSOLAPSvc.3/AW-SRV01.AdventureWorks.com AW-SRV01  

SPN-Registrierung für eine benannte Instanz

Standardmäßig verwenden benannte Instanzen von Analysis Services dynamische Portzuweisungen, die vom SQL Server Browserdienst erkannt werden. Sie müssen nur eine NetBIOS- und FQDN-SPN für die benannte instance erstellen, um Kerberos-Verbindungen zu aktivieren.

Beispielsyntax für einen benannten instance, der als Domänenbenutzer ausgeführt wird

Das folgende Beispiel zeigt die setspn Syntax für Analysis Services namens instanceAW-FINANCE, die unter einem Domänenbenutzerkonto (SSAS-Service) in der AdventureWorks-Domäne ausgeführt wird. In diesem Beispiel lautet der Computerhostname AW-SRV01.

FQDN SPN: Setspn -s MSOLAPSvc.3/AW-SRV01.AdventureWorks.com:AW-FINANCE AdventureWorks\SSAS-Service 

NetBIOS SPN: Setspn -s MSOLAPSvc.3/AW-SRV01:AW-FINANCE AdventureWorks\SSAS-Service 

Hinweis

Wenn Sie Ihre benannte instance für die Überwachung an einem festen Port konfiguriert haben, führen Sie die folgenden Schritte aus, um Kerberos-Verbindungen von Ihrer Clientanwendung zu verwenden:

  1. Starten des SQL-Browserdiensts.
  2. Wenn Sie eine Portnummer in Ihrem Verbindungszeichenfolge verwenden, entfernen Sie die Portnummer, fügen Sie den namen der instance hinzu, und lassen Sie die Anwendung die Portnummer über den SQL Server Browserdienst erhalten.

Tipp

Überprüfen Sie, ob der SPN für den SQL-Instance erstellt wurde, indem Sie den Setspn -L <domain account> Befehl oder Setspn -L <machinename> ausführen, je nachdem, wie der SPN registriert wurde.

Microsoft Kerberos Configuration Manager for SQL Server ist ein Diagnosetool zur Behebung Kerberos-bezogener Probleme mit der Verbindung mit SQL Server. Dieses Tool kann dabei helfen, potenzielle Probleme in SPNs und Delegierungen zu identifizieren und automatisierte Verfahren zum Beheben der identifizierten Probleme bereitzustellen. Weitere Informationen finden Sie unter Microsoft Kerberos-Konfigurations-Manager für SQL Server.

SPN-Registrierung für einen SSAS-Cluster

Bei Analysis Services-Failoverclustern sollte der Hostname dem virtuellen Namen entsprechen, der dem Cluster zugewiesen ist. Dies ist der SQL Server-Netzwerkname, der während des Setups von SQL Server angegeben wurde, wenn Sie Analysis Services auf einem vorhandenen WSFC installiert haben. Sie finden diesen Namen in Active Directory. Sie finden sie auch auf der RegisterkarteRollenressourcen | des Failovercluster-Managers | . Der Servername auf der Registerkarte Ressourcen sollte als "virtueller Name" im SPN-Befehl verwendet werden.

SPN-Syntax für einen Analysis Services-Cluster

Setspn -s msolapsvc.3/<virtualname.FQDN > <domain user account>  

Beachten Sie, dass für Knoten in einem Analysis Services-Cluster der Standardport (TCP 2383) verwendet werden muss und dass die Knoten unter demselben Domänenbenutzerkonto ausgeführt werden müssen, sodass jeder Knoten über dieselbe SID verfügt. Weitere Informationen finden Sie unter How to Cluster SQL Server Analysis Services (in englischer Sprache).

SPN-Registrierung für SSAS-Instanzen, die für den HTTP-Zugriff konfiguriert sind

Je nach den Anforderungen der Lösung kann es erforderlich sein, Analysis Services für den HTTP-Zugriff zu konfigurieren. Wenn die Lösung IIS als Komponente der mittleren Ebene umfasst und die Kerberos-Authentifizierung von der Lösung vorausgesetzt wird, muss ein SPN ggf. manuell für IIS registriert werden. Weitere Informationen finden Sie unter Konfigurieren der Einstellungen auf dem Computer, auf dem IIS ausgeführt wird, unter Konfigurieren SQL Server 2008 Analysis Services und SQL Server 2005 Analysis Services für die Verwendung der Kerberos-Authentifizierung.

Bei der SPN-Registrierung für die Analysis Services-Instanz macht es keinen Unterschied, ob eine Instanz für TCP oder HTTP konfiguriert ist. Wenn von IIS mithilfe der MSMDPUMP-ISAPI-Erweiterung eine Verbindung mit Analysis Services hergestellt wird, basiert diese immer auf TCP.

Das bedeutet, dass Sie bei der SPN-Registrierung die Anweisungen der vorherigen Abschnitte für Standardinstanzen oder benannte Instanzen verwenden können. Achten Sie beim Angeben des Hostnamens darauf, den Hostnamen zu verwenden, den Sie bei der Konfiguration des Dienstes für den HTTP-Zugriff in der Datei msmdpump.ini angegeben haben.

Weitere Informationen zum HTTP-Zugriff finden Sie unter Konfigurieren des HTTP-Zugriffs auf Analysis Services unter Internetinformationsdienste (IIS) 8.0.

SPN-Registrierung für SSAS-Instanzen, die an festen Ports lauschen

Sie können keine Portnummer für eine Analysis Services-SPN-Registrierung angeben. Die Analysis Services-SPN-Registrierung kann nur instance Namen verwenden. Wenn Sie Analysis Services als Standard-instance installiert und für die Überwachung an einem nicht standardmäßigen Port konfiguriert haben, können Sie mithilfe von Kerberos keine Verbindung mit diesem instance herstellen. Sie müssen ihn so konfigurieren, dass er am Standardport (TCP 2383) lauscht, um Kerberos-Verbindungen mit diesem instance zu aktivieren. Ein standardbasierter instance von Analysis Services, der an einem nicht standardmäßigen Port lauscht, kann nur NTLM-Verbindungen akzeptieren. Für benannte Instanzen müssen Sie SQL Server Browserdienst starten und instance Namen in Ihren Verbindungszeichenfolgen anstelle von Portnummern verwenden.

Eine Analysis Services-Instanz kann nur an einem einzelnen Port lauschen. Die Verwendung mehrerer Ports wird nicht unterstützt. Weitere Informationen zur Portkonfiguration finden Sie unter Configure the Windows Firewall to Allow Analysis Services Access.

Weitere Informationen

Microsoft-BI-Authentifizierung und Identitätsdelegierung
Gegenseitige Authentifizierung mithilfe von Kerberos
SetSPN-Syntax (Setspn.exe) für Dienstprinzipalnamen (SPN)
Setspn
Schrittweise Anleitung zu Dienstkonten
Konfigurieren von Windows-Dienstkonten und -Berechtigungen
Verwenden von Dienstprinzipalnamen bei der Konfiguration von in Internetinformationsdienste (IIS) gehosteten Webanwendungen
Neuerungen in Dienstkonten
Konfigurieren der Kerberos-Authentifizierung für SharePoint 2010-Produkte (Whitepaper)